From 50b87c9d8f03f76a02a2b976241478231d3973b8 Mon Sep 17 00:00:00 2001 From: Joaquin Ossa Date: Wed, 6 Nov 2024 10:25:04 +0000 Subject: [PATCH] Revert "Merged PR 3430: Weekly aggregated guest journey metrics # Description Here I created a weekly aggregated model for guest journey metrics. I changed the daily_dimension week start and end to iso so it matches the week date obtained by Postgres for this aggregation # Checklist - [x] The edited models and dependants run properly with production data. - [x] The edited models are sufficiently documented. - [x] The edited models contain PK tests, and I've ran and passed them. - [x] I have checked for DRY opportunities with other models and docs. - [x] I've picked the right materialization for the affected models. # Other - [ ] Check if a full-refresh is required after this PR is merged. Related work items: #23373" --- ...kly_check_in_attributed_guest_journeys.sql | 38 --- .../kpis/int_kpis__dimension_dates.sql | 4 +- ...kly_check_in_attributed_guest_journeys.sql | 35 --- models/intermediate/kpis/schema.yml | 289 ------------------ 4 files changed, 2 insertions(+), 364 deletions(-) delete mode 100644 models/intermediate/kpis/int_kpis__agg_weekly_check_in_attributed_guest_journeys.sql delete mode 100644 models/intermediate/kpis/int_kpis__metric_weekly_check_in_attributed_guest_journeys.sql diff --git a/models/intermediate/kpis/int_kpis__agg_weekly_check_in_attributed_guest_journeys.sql b/models/intermediate/kpis/int_kpis__agg_weekly_check_in_attributed_guest_journeys.sql deleted file mode 100644 index 80e451e..0000000 --- a/models/intermediate/kpis/int_kpis__agg_weekly_check_in_attributed_guest_journeys.sql +++ /dev/null @@ -1,38 +0,0 @@ -{% set dimensions = get_kpi_dimensions_per_model("CHECK_IN_ATTRIBUTED_GUEST_JOURNEYS") %} - -{{ - config( - materialized="table", unique_key=["end_date", "dimension", "dimension_value"] - ) -}} - - -{% for dimension in dimensions %} - select - -- Unique Key -- - start_date, - end_date, - week, - {{ dimension.dimension }} as dimension, - {{ dimension.dimension_value }} as dimension_value, - -- Metrics -- - sum( - created_guest_journeys_not_cancelled - ) as created_guest_journeys_not_cancelled, - sum( - started_guest_journeys_not_cancelled - ) as started_guest_journeys_not_cancelled, - sum( - completed_guest_journeys_not_cancelled - ) as completed_guest_journeys_not_cancelled, - sum(created_guest_journeys) as created_guest_journeys, - sum(started_guest_journeys) as started_guest_journeys, - sum(completed_guest_journeys) as completed_guest_journeys, - sum(count_csat_score) as count_csat_score, - sum(count_csat_score * average_csat_score) / nullif(sum(count_csat_score), 0) as average_csat_score - from {{ ref("int_kpis__metric_weekly_check_in_attributed_guest_journeys") }} - group by 1, 2, 3, 4, 5 - {% if not loop.last %} - union all - {% endif %} -{% endfor %} diff --git a/models/intermediate/kpis/int_kpis__dimension_dates.sql b/models/intermediate/kpis/int_kpis__dimension_dates.sql index 5421af7..ed011f7 100644 --- a/models/intermediate/kpis/int_kpis__dimension_dates.sql +++ b/models/intermediate/kpis/int_kpis__dimension_dates.sql @@ -13,8 +13,8 @@ with id.date_day as date, id.month_start_date as first_day_month, id.month_end_date as last_day_month, - id.iso_week_start_date as first_day_week, - id.iso_week_end_date as last_day_week, + id.week_start_date as first_day_week, + id.week_end_date as last_day_week, now()::date as today from int_dates id ) diff --git a/models/intermediate/kpis/int_kpis__metric_weekly_check_in_attributed_guest_journeys.sql b/models/intermediate/kpis/int_kpis__metric_weekly_check_in_attributed_guest_journeys.sql deleted file mode 100644 index 0192e2c..0000000 --- a/models/intermediate/kpis/int_kpis__metric_weekly_check_in_attributed_guest_journeys.sql +++ /dev/null @@ -1,35 +0,0 @@ -{{ - config( - materialized="view", - unique_key=["end_date", "id_deal", "has_payment", "has_id_check", "active_accommodations_per_deal_segmentation"], - ) -}} - -select - -- Unique Key -- - d.first_day_week as start_date, - d.date as end_date, - d.week, - b.id_deal, - b.has_payment, - b.has_id_check, - -- Dimensions -- - b.active_accommodations_per_deal_segmentation, - b.main_billing_country_iso_3_per_deal, - -- Metrics -- - sum(b.created_guest_journeys_not_cancelled) as created_guest_journeys_not_cancelled, - sum(b.started_guest_journeys_not_cancelled) as started_guest_journeys_not_cancelled, - sum( - b.completed_guest_journeys_not_cancelled - ) as completed_guest_journeys_not_cancelled, - sum(b.created_guest_journeys) as created_guest_journeys, - sum(b.started_guest_journeys) as started_guest_journeys, - sum(b.completed_guest_journeys) as completed_guest_journeys, - sum(b.count_csat_score) as count_csat_score, - sum(b.count_csat_score * b.average_csat_score) / nullif(sum(b.count_csat_score), 0) as average_csat_score -from {{ ref("int_kpis__dimension_dates") }} d -left join - {{ ref("int_kpis__metric_daily_check_in_attributed_guest_journeys") }} b - on date_trunc('week', b.date)::date = d.first_day_week -where d.is_end_of_week = true and b.id_deal is not null -group by 1, 2, 3, 4, 5, 6, 7, 8 diff --git a/models/intermediate/kpis/schema.yml b/models/intermediate/kpis/schema.yml index 403dcd9..ebe61d2 100644 --- a/models/intermediate/kpis/schema.yml +++ b/models/intermediate/kpis/schema.yml @@ -3518,295 +3518,6 @@ models: max_value: 5 strictly: false - - name: int_kpis__metric_weekly_check_in_attributed_guest_journeys - description: | - This model computes the Weekly metrics associated with Guest Journeys - attributed to Check-In date at the deepest granularity. - - The unique key corresponds to: - - end_date, - - id_deal, - - has_payment, - - has_id_check, - - active_accommodations_per_deal_segmentation. - - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - end_date - - id_deal - - has_payment - - has_id_check - - active_accommodations_per_deal_segmentation - - columns: - - name: start_date - data_type: date - description: | - The start date of the time range considered for the metrics in this record. - tests: - - not_null - - - name: end_date - data_type: date - description: | - The end date of the time range considered for the metrics in this record. - tests: - - not_null - - - name: week - data_type: int - description: ISO week number of the given date. - tests: - - not_null - - - name: id_deal - data_type: character varying - description: Unique identifier of an account. - tests: - - not_null - - - name: has_payment - data_type: string - description: Has there been any guest payments on the guest journey. - tests: - - not_null - - accepted_values: - values: - - W/O Payment - - With Payment - - - name: has_id_check - data_type: string - description: Does the verification in the guest journey - include Government Id Check for the bookings. - tests: - - not_null - - accepted_values: - values: - - W/O Id Check - - With Id Check - - - name: active_accommodations_per_deal_segmentation - data_type: text - description: | - Segment value based on the number of listings booked in 12 months - for a given deal and date. - tests: - - not_null - - accepted_values: - values: - - "0" - - "01-05" - - "06-20" - - "21-60" - - "61+" - - "UNSET" - - - name: main_billing_country_iso_3_per_deal - data_type: character varying - description: | - Main billing country of the host aggregated at Deal level. - tests: - - not_null - - - name: created_guest_journeys_not_cancelled - data_type: numeric - description: | - Weekly accumulated count of daily guest journeys created, excluding cancelled - bookings, in a given date and per specified dimension. - tests: - - not_null - - - name: started_guest_journeys_not_cancelled - data_type: numeric - description: | - Weekly accumulated count of daily guest journeys started, excluding cancelled - bookings, in a given date and per specified dimension. - tests: - - not_null - - - name: completed_guest_journeys_not_cancelled - data_type: numeric - description: | - Weekly accumulated count of daily guest journeys completed, excluding cancelled - bookings, in a given date and per specified dimension. - tests: - - not_null - - - name: created_guest_journeys - data_type: numeric - description: | - Weekly accumulated count of daily guest journeys created in a given date and - per specified dimension. - tests: - - not_null - - - name: started_guest_journeys - data_type: numeric - description: | - Weekly accumulated count of daily guest journeys started in a given date and - per specified dimension. - tests: - - not_null - - - name: completed_guest_journeys - data_type: numeric - description: | - Weekly accumulated count of daily guest journeys completed in a given date and - per specified dimension. - tests: - - not_null - - - name: count_csat_score - data_type: numeric - description: | - Weekly accumulated count of guest journeys with CSAT - (customer satisfaction score) in a given date, dimension, and value. - - - name: average_csat_score - data_type: numeric - description: | - Weekly accumulated average CSAT score in a given date, dimension, and value. - tests: - - dbt_expectations.expect_column_values_to_be_between: - min_value: 0 - max_value: 5 - strictly: false - - - name: int_kpis__agg_weekly_check_in_attributed_guest_journeys - description: | - This model computes the dimension aggregation for Weekly metrics associated - to Guest Journeys attributed to Check-In date. - - tests: - - dbt_utils.unique_combination_of_columns: - combination_of_columns: - - end_date - - dimension - - dimension_value - - columns: - - name: start_date - data_type: date - description: | - The start date of the time range considered for the metrics in this record. - tests: - - not_null - - - name: end_date - data_type: date - description: | - The end date of the time range considered for the metrics in this record. - tests: - - not_null - - - name: week - data_type: int - description: Week number of the given date. - tests: - - not_null - - - name: dimension - data_type: text - description: | - The dimension or granularity of the metrics. - tests: - - assert_dimension_completeness: - metric_column_name: created_guest_journeys_not_cancelled - - assert_dimension_completeness: - metric_column_name: started_guest_journeys_not_cancelled - - assert_dimension_completeness: - metric_column_name: completed_guest_journeys_not_cancelled - - assert_dimension_completeness: - metric_column_name: created_guest_journeys - - assert_dimension_completeness: - metric_column_name: started_guest_journeys - - assert_dimension_completeness: - metric_column_name: completed_guest_journeys - - assert_dimension_completeness: - metric_column_name: count_csat_score - - accepted_values: - values: - - global - - by_deal - - by_has_payment - - by_has_id_check - - by_billing_country - - by_number_of_listings - - - name: dimension_value - data_type: text - description: | - The value or segment available for the selected dimension. - tests: - - not_null - - - name: created_guest_journeys_not_cancelled - data_type: numeric - description: | - Weekly aggregated count of guest journeys created, excluding - cancelled bookings, for a given date, dimension, and value. - tests: - - not_null - - - name: started_guest_journeys_not_cancelled - data_type: numeric - description: | - Weekly aggregated count of guest journeys started, excluding - cancelled bookings, for a given date, dimension, and value. - tests: - - not_null - - - name: completed_guest_journeys_not_cancelled - data_type: numeric - description: | - Weekly aggregated count of guest journeys completed, excluding - cancelled bookings, for a given date, dimension, and value. - tests: - - not_null - - - name: created_guest_journeys - data_type: numeric - description: | - Weekly aggregated count of guest journeys created for a given date, - dimension, and value. - tests: - - not_null - - - name: started_guest_journeys - data_type: numeric - description: | - Weekly aggregated count of guest journeys started for a given date, - dimension, and value. - tests: - - not_null - - - name: completed_guest_journeys - data_type: numeric - description: | - Weekly aggregated count of guest journeys completed for a given date, - dimension, and value. - tests: - - not_null - - - name: count_csat_score - data_type: numeric - description: | - Weekly aggregated count of guest journeys with CSAT - (customer satisfaction score) in a given date, dimension, and value. - - - name: average_csat_score - data_type: numeric - description: | - Weekly aggregated average CSAT score in a given date, - dimension, and value. - tests: - - dbt_expectations.expect_column_values_to_be_between: - min_value: 0 - max_value: 5 - strictly: false - - name: int_kpis__metric_mtd_check_in_attributed_guest_journeys description: | This model computes the Month-To-Date metrics associated with Guest Journeys