From 525c12dc831b30226ec54bdbcc6f11ff0de324f5 Mon Sep 17 00:00:00 2001 From: Joaquin Date: Tue, 25 Mar 2025 16:47:26 +0100 Subject: [PATCH] Commit wip --- ...ew_dash_accommodation_offered_services.sql | 44 ++++++++ models/intermediate/kpis/schema.yml | 102 ++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 models/intermediate/kpis/int_kpis__metric_daily_new_dash_accommodation_offered_services.sql diff --git a/models/intermediate/kpis/int_kpis__metric_daily_new_dash_accommodation_offered_services.sql b/models/intermediate/kpis/int_kpis__metric_daily_new_dash_accommodation_offered_services.sql new file mode 100644 index 0000000..2f1c292 --- /dev/null +++ b/models/intermediate/kpis/int_kpis__metric_daily_new_dash_accommodation_offered_services.sql @@ -0,0 +1,44 @@ +{{ + config( + materialized="table", + unique_key=[ + "date", + "id_accommodation", + "id_user_product_bundle", + "service_name", + "service_business_type", + ], + ) +}} +select + -- Unique Key -- + dd.date, + apb.id_accommodation, + bs.id_user_product_bundle, + bs.service_name, + bs.service_business_type, + -- Dimensions -- + coalesce(uh.id_deal, 'UNSET') as id_deal, + case when bs.is_default_service then 'NO' else 'YES' end as is_upgraded_service, + coalesce(uh.new_dash_version, 'UNSET') as new_dash_version, + coalesce( + uh.main_billing_country_iso_3_per_deal, 'UNSET' + ) as main_billing_country_iso_3_per_deal, + coalesce( + icmas.active_accommodations_per_deal_segmentation, 'UNSET' + ) as active_accommodations_per_deal_segmentation +from {{ ref("int_kpis__dimension_dates") }} as dd +inner join + {{ ref("int_core__user_host") }} as uh + on dd.date >= uh.user_in_new_dash_since_date_utc +inner join + {{ ref("int_core__user_product_bundle_contains_services") }} as bs + on uh.id_user_host = bs.id_user_host +inner join + {{ ref("int_core__accommodation_to_product_bundle") }} as apb + on bs.id_user_product_bundle = apb.id_user_product_bundle + and date between apb.effective_start_date_utc and apb.effective_end_date_utc +left join + {{ ref("int_kpis__dimension_daily_accommodation") }} as icmas + on uh.id_deal = icmas.id_deal + and dd.date = icmas.date diff --git a/models/intermediate/kpis/schema.yml b/models/intermediate/kpis/schema.yml index 0cd1468..82f7495 100644 --- a/models/intermediate/kpis/schema.yml +++ b/models/intermediate/kpis/schema.yml @@ -7482,6 +7482,108 @@ models: - "61+" - "UNSET" + - name: main_billing_country_iso_3_per_deal + data_type: string + description: | + Main billing country of the host aggregated at Deal level. + data_tests: + - not_null + + - name: int_kpis__metric_daily_new_dash_accommodation_offered_services + description: | + This model computes the Daily Offered Services by Listings at the deepest granularity. + It only retrieves services that come from users that are in New Dash, as well + as it only considers services created after the user has moved to New Dash. + The unique key corresponds to the deepest granularity of the model, + in this case: + - date, + - id_accommodation, + - id_user_product_bundle, + - service_name, + - service_business_type + data_tests: + - dbt_utils.unique_combination_of_columns: + combination_of_columns: + - date + - id_accommodation + - id_user_product_bundle + - service_name + - service_business_type + columns: + - name: date + data_type: date + description: Date of when user has a bundle with service active. + data_tests: + - not_null + - name: id_accommodation + data_type: bigint + description: Unique identifier of an accommodation, or listing. + data_tests: + - not_null + - name: id_user_product_bundle + data_type: bigint + description: Unique identifier of the User Product Bundle. + data_tests: + - not_null + - name: service_name + data_type: string + description: Name of the created service. + data_tests: + - not_null + - name: service_business_type + data_type: string + description: | + Identifies the service type (Screening, Deposit Management, Protection + or Guest Agreement) according to New Pricing documentation. + Cannot be null. + data_tests: + - not_null + - accepted_values: + values: + - "SCREENING" + - "PROTECTION" + - "DEPOSIT_MANAGEMENT" + - "GUEST_AGREEMENT" + - "UNKNOWN" + - "UNSET" + - name: id_deal + data_type: string + description: Unique identifier of an account. + data_tests: + - not_null + - name: is_upgraded_service + data_type: string + description: | + Whether the service is an upgraded version of the + default. In other words, if it's not Basic Screening. + data_tests: + - not_null + - accepted_values: + values: + - "YES" + - "NO" + - name: new_dash_version + data_type: string + description: | + The version of the New Dash. It corresponds to the + release or migration phase from user point of view. + data_tests: + - not_null + - name: active_accommodations_per_deal_segmentation + data_type: string + description: | + Segment value based on the number of listings booked in 12 months + for a given deal and date. + data_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: string description: |