Merged PR 4400: Adds Billable Bookings split per scope
# Description Changes: * Adds Business Scope split on Billable Bookings + propagates towards Agg/Metric Monthly/MTD models This is a temporary modification until the ticket on Billable Bookings for New Dash is handled. # 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. - [ ] I have checked for DRY opportunities with other models and docs. - [ ] 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: #27356
This commit is contained in:
parent
4b94d5f70b
commit
a690ca6eac
5 changed files with 79 additions and 9 deletions
|
|
@ -1,8 +1,24 @@
|
|||
{{ config(materialized="table", unique_key=["date", "id_deal"]) }}
|
||||
{{ config(materialized="table", unique_key=["date", "id_deal", "business_scope"]) }}
|
||||
select
|
||||
-- Unique Key --
|
||||
icb.booking_fee_charge_date_utc as date,
|
||||
coalesce(icuh.id_deal, 'UNSET') as id_deal,
|
||||
-- ORP here: I'm expecting this to change according to the definition of Billable
|
||||
-- Bookings expected for New Dash. This is just a temporary placeholder in the
|
||||
-- same fashion as Booking metrics.
|
||||
case
|
||||
-- New Dash users with a booking and a deal
|
||||
when
|
||||
icbs.id_booking is not null
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
then 'New Dash'
|
||||
-- Old Dash users if there is no booking or the user is not in the new dash
|
||||
when icbs.id_booking is null or icbs.is_user_in_new_dash = false
|
||||
then 'Old Dash'
|
||||
-- Rest of the cases, includes KYG Lite users
|
||||
else 'UNSET'
|
||||
end as business_scope,
|
||||
-- Dimensions --
|
||||
coalesce(
|
||||
icd.main_billing_country_iso_3_per_deal, 'UNSET'
|
||||
|
|
@ -20,5 +36,7 @@ left join
|
|||
{{ ref("int_kpis__dimension_daily_accommodation") }} as icmas
|
||||
on icuh.id_deal = icmas.id_deal
|
||||
and icb.booking_fee_charge_date_utc = icmas.date
|
||||
where icb.booking_fee_charge_date_utc is not null
|
||||
group by 1, 2, 3, 4
|
||||
left join
|
||||
{{ ref("int_core__booking_summary") }} as icbs on icb.id_booking = icbs.id_booking
|
||||
where icb.is_duplicate_booking = false and icb.booking_fee_charge_date_utc is not null
|
||||
group by 1, 2, 3, 4, 5
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
"end_date",
|
||||
"id_deal",
|
||||
"active_accommodations_per_deal_segmentation",
|
||||
"business_scope",
|
||||
],
|
||||
)
|
||||
}}
|
||||
|
|
@ -14,6 +15,7 @@ select
|
|||
d.first_day_month as start_date,
|
||||
d.date as end_date,
|
||||
b.id_deal,
|
||||
b.business_scope,
|
||||
b.active_accommodations_per_deal_segmentation,
|
||||
-- Dimensions --
|
||||
b.main_billing_country_iso_3_per_deal,
|
||||
|
|
@ -24,4 +26,4 @@ left join
|
|||
{{ ref("int_kpis__metric_daily_billable_bookings") }} b
|
||||
on date_trunc('month', b.date)::date = d.first_day_month
|
||||
where d.is_end_of_month = true and b.id_deal is not null
|
||||
group by 1, 2, 3, 4, 5
|
||||
group by 1, 2, 3, 4, 5, 6
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@
|
|||
"end_date",
|
||||
"id_deal",
|
||||
"active_accommodations_per_deal_segmentation",
|
||||
"business_scope",
|
||||
],
|
||||
)
|
||||
}}
|
||||
|
|
@ -14,6 +15,7 @@ select
|
|||
d.first_day_month as start_date,
|
||||
d.date as end_date,
|
||||
b.id_deal,
|
||||
b.business_scope,
|
||||
b.active_accommodations_per_deal_segmentation,
|
||||
-- Dimensions --
|
||||
b.main_billing_country_iso_3_per_deal,
|
||||
|
|
@ -25,4 +27,4 @@ left join
|
|||
on date_trunc('month', b.date)::date = d.first_day_month
|
||||
and extract(day from b.date) <= d.day
|
||||
where d.is_month_to_date = true and b.id_deal is not null
|
||||
group by 1, 2, 3, 4, 5
|
||||
group by 1, 2, 3, 4, 5, 6
|
||||
|
|
|
|||
|
|
@ -3304,13 +3304,15 @@ models:
|
|||
The unique key corresponds to the deepest granularity of the model,
|
||||
in this case:
|
||||
- date,
|
||||
- id_deal.
|
||||
- id_deal,
|
||||
- business_scope.
|
||||
|
||||
data_tests:
|
||||
- dbt_utils.unique_combination_of_columns:
|
||||
combination_of_columns:
|
||||
- date
|
||||
- id_deal
|
||||
- business_scope
|
||||
|
||||
columns:
|
||||
- name: date
|
||||
|
|
@ -3325,6 +3327,19 @@ models:
|
|||
data_tests:
|
||||
- not_null
|
||||
|
||||
- name: business_scope
|
||||
data_type: string
|
||||
description: |
|
||||
Business scope identifying the metric source.
|
||||
data_tests:
|
||||
- not_null
|
||||
- accepted_values:
|
||||
values:
|
||||
- "Old Dash"
|
||||
- "New Dash"
|
||||
- "API"
|
||||
- "UNSET"
|
||||
|
||||
- name: active_accommodations_per_deal_segmentation
|
||||
data_type: string
|
||||
description: |
|
||||
|
|
@ -3364,6 +3379,7 @@ models:
|
|||
The unique key corresponds to:
|
||||
- end_date,
|
||||
- id_deal,
|
||||
- business_scope,
|
||||
- active_accommodations_per_deal_segmentation.
|
||||
|
||||
data_tests:
|
||||
|
|
@ -3371,6 +3387,7 @@ models:
|
|||
combination_of_columns:
|
||||
- end_date
|
||||
- id_deal
|
||||
- business_scope
|
||||
- active_accommodations_per_deal_segmentation
|
||||
|
||||
columns:
|
||||
|
|
@ -3394,6 +3411,19 @@ models:
|
|||
data_tests:
|
||||
- not_null
|
||||
|
||||
- name: business_scope
|
||||
data_type: string
|
||||
description: |
|
||||
Business scope identifying the metric source.
|
||||
data_tests:
|
||||
- not_null
|
||||
- accepted_values:
|
||||
values:
|
||||
- "Old Dash"
|
||||
- "New Dash"
|
||||
- "API"
|
||||
- "UNSET"
|
||||
|
||||
- name: active_accommodations_per_deal_segmentation
|
||||
data_type: string
|
||||
description: |
|
||||
|
|
@ -3434,6 +3464,7 @@ models:
|
|||
The unique key corresponds to:
|
||||
- end_date,
|
||||
- id_deal,
|
||||
- business_scope,
|
||||
- active_accommodations_per_deal_segmentation.
|
||||
|
||||
data_tests:
|
||||
|
|
@ -3441,6 +3472,7 @@ models:
|
|||
combination_of_columns:
|
||||
- end_date
|
||||
- id_deal
|
||||
- business_scope
|
||||
- active_accommodations_per_deal_segmentation
|
||||
|
||||
columns:
|
||||
|
|
@ -3464,6 +3496,19 @@ models:
|
|||
data_tests:
|
||||
- not_null
|
||||
|
||||
- name: business_scope
|
||||
data_type: string
|
||||
description: |
|
||||
Business scope identifying the metric source.
|
||||
data_tests:
|
||||
- not_null
|
||||
- accepted_values:
|
||||
values:
|
||||
- "Old Dash"
|
||||
- "New Dash"
|
||||
- "API"
|
||||
- "UNSET"
|
||||
|
||||
- name: active_accommodations_per_deal_segmentation
|
||||
data_type: string
|
||||
description: |
|
||||
|
|
@ -3535,6 +3580,7 @@ models:
|
|||
- global
|
||||
- by_number_of_listings
|
||||
- by_billing_country
|
||||
- by_business_scope
|
||||
- by_deal
|
||||
|
||||
- name: dimension_value
|
||||
|
|
@ -3589,6 +3635,7 @@ models:
|
|||
- global
|
||||
- by_number_of_listings
|
||||
- by_billing_country
|
||||
- by_business_scope
|
||||
- by_deal
|
||||
|
||||
- name: dimension_value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue