Merged PR 4304: Adds Cancelled and Not Cancelled Created Bookings

# Description

First commit - should be an exact replica of the previous PR on Check-Out:

Adds Cancelled and Not Cancelled Created Bookings as absolute figures. Adds Cancellation Rate only for aggregated models.
I also added the removal of duplicate bookings. Otherwise the rates might be affected, and this should be cleaner anyway.

Second commit:
Small changes on the unique key description of the model for check-out, doesn't impact the model output.

# 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: #24637
This commit is contained in:
Oriol Roqué Paniagua 2025-02-06 13:13:02 +00:00
parent 736d615075
commit cc86565b02
8 changed files with 104 additions and 5 deletions

View file

@ -15,7 +15,11 @@
{{ dimension.dimension }} as dimension,
{{ dimension.dimension_value }} as dimension_value,
-- Metrics --
sum(created_bookings) as created_bookings
sum(created_bookings) as created_bookings,
sum(cancelled_created_bookings) as cancelled_created_bookings,
sum(not_cancelled_created_bookings) as not_cancelled_created_bookings,
sum(cancelled_created_bookings)
/ sum(created_bookings) as cancelled_created_bookings_rate
from {{ ref("int_kpis__metric_monthly_created_bookings") }}
group by 1, 2, 3, 4
{% if not loop.last %}

View file

@ -15,7 +15,11 @@
{{ dimension.dimension }} as dimension,
{{ dimension.dimension_value }} as dimension_value,
-- Metrics --
sum(created_bookings) as created_bookings
sum(created_bookings) as created_bookings,
sum(cancelled_created_bookings) as cancelled_created_bookings,
sum(not_cancelled_created_bookings) as not_cancelled_created_bookings,
sum(cancelled_created_bookings)
/ sum(created_bookings) as cancelled_created_bookings_rate
from {{ ref("int_kpis__metric_mtd_created_bookings") }}
group by 1, 2, 3, 4
{% if not loop.last %}

View file

@ -14,7 +14,21 @@ select
icmas.active_accommodations_per_deal_segmentation, 'UNSET'
) as active_accommodations_per_deal_segmentation,
-- Metrics --
count(distinct icb.id_booking) as created_bookings
count(distinct icb.id_booking) as created_bookings,
count(
distinct case
when upper(icb.booking_state) = {{ var("cancelled_booking_state") }}
then icb.id_booking
else null
end
) as cancelled_created_bookings,
count(
distinct case
when not upper(icb.booking_state) = {{ var("cancelled_booking_state") }}
then icb.id_booking
else null
end
) as not_cancelled_created_bookings
from {{ ref("int_core__bookings") }} as icb
left join
{{ ref("int_core__user_host") }} as icuh on icb.id_user_host = icuh.id_user_host
@ -26,4 +40,5 @@ left join
left join
{{ ref("int_core__booking_to_product_bundle") }} as icbtpb
on icb.id_booking = icbtpb.id_booking
where icb.is_duplicate_booking = false
group by 1, 2, 3, 4, 5

View file

@ -4,6 +4,7 @@
unique_key=[
"end_date",
"id_deal",
"dash_source",
"active_accommodations_per_deal_segmentation",
],
)

View file

@ -20,7 +20,9 @@ select
-- Dimensions --
b.main_billing_country_iso_3_per_deal,
-- Metrics --
sum(b.created_bookings) as created_bookings
sum(b.created_bookings) as created_bookings,
sum(b.cancelled_created_bookings) as cancelled_created_bookings,
sum(b.not_cancelled_created_bookings) as not_cancelled_created_bookings
from {{ ref("int_kpis__dimension_dates") }} d
left join
{{ ref("int_kpis__metric_daily_created_bookings") }} b

View file

@ -4,6 +4,7 @@
unique_key=[
"end_date",
"id_deal",
"dash_source",
"active_accommodations_per_deal_segmentation",
],
)

View file

@ -20,7 +20,9 @@ select
-- Dimensions --
b.main_billing_country_iso_3_per_deal,
-- Metrics --
sum(b.created_bookings) as created_bookings
sum(b.created_bookings) as created_bookings,
sum(b.cancelled_created_bookings) as cancelled_created_bookings,
sum(b.not_cancelled_created_bookings) as not_cancelled_created_bookings
from {{ ref("int_kpis__dimension_dates") }} d
left join
{{ ref("int_kpis__metric_daily_created_bookings") }} b

View file

@ -616,6 +616,18 @@ models:
description: |
Count of daily bookings created in a given date and per specified dimension.
- name: cancelled_created_bookings
data_type: bigint
description: |
Count of daily bookings created in a given date and per specified dimension
that have been cancelled.
- name: not_cancelled_created_bookings
data_type: bigint
description: |
Count of daily bookings created in a given date and per specified dimension
that have not been cancelled.
- name: int_kpis__metric_monthly_created_bookings
description: |
This model computes the Monthly Created Bookings at the
@ -698,6 +710,18 @@ models:
Count of accumulated bookings created in a given month
and per specified dimension.
- name: cancelled_created_bookings
data_type: bigint
description: |
Count of accumulated bookings created in a given month
and per specified dimension that have been cancelled.
- name: not_cancelled_created_bookings
data_type: bigint
description: |
Count of accumulated bookings created in a given month
and per specified dimension that have not been cancelled.
- name: int_kpis__metric_mtd_created_bookings
description: |
This model computes the Month-To-Date Created Bookings at the
@ -780,6 +804,18 @@ models:
Count of accumulated bookings created in a given month up to the
given date and per specified dimension.
- name: cancelled_created_bookings
data_type: bigint
description: |
Count of accumulated bookings created in a given month up to the
given date and per specified dimension that have been cancelled.
- name: not_cancelled_created_bookings
data_type: bigint
description: |
Count of accumulated bookings created in a given month up to the
given date and per specified dimension that have not been cancelled.
- name: int_kpis__agg_monthly_created_bookings
description: |
This model computes the dimension aggregation for
@ -817,6 +853,8 @@ models:
- assert_dimension_completeness:
metric_column_names:
- created_bookings
- cancelled_created_bookings
- not_cancelled_created_bookings
- accepted_values:
values:
- global
@ -835,6 +873,21 @@ models:
data_type: bigint
description: The monthly created bookings for a given date, dimension and value.
- name: cancelled_created_bookings
data_type: bigint
description: |
The monthly cancelled created bookings for a given date, dimension and value.
- name: not_cancelled_created_bookings
data_type: bigint
description: |
The monthly not cancelled created bookings for a given date, dimension and value.
- name: cancelled_created_bookings_rate
data_type: decimal
description: |
The monthly rate of cancelled created bookings for a given date, dimension and value.
- name: int_kpis__agg_mtd_created_bookings
description: |
This model computes the dimension aggregation for
@ -872,6 +925,8 @@ models:
- assert_dimension_completeness:
metric_column_names:
- created_bookings
- cancelled_created_bookings
- not_cancelled_created_bookings
- accepted_values:
values:
- global
@ -890,6 +945,21 @@ models:
data_type: bigint
description: The month-to-date created bookings for a given date, dimension and value.
- name: cancelled_created_bookings
data_type: bigint
description: |
The month-to-date cancelled created bookings for a given date, dimension and value.
- name: not_cancelled_created_bookings
data_type: bigint
description: |
The month-to-date not cancelled created bookings for a given date, dimension and value.
- name: cancelled_created_bookings_rate
data_type: decimal
description: |
The month-to-date rate of cancelled created bookings for a given date, dimension and value.
- name: int_kpis__metric_daily_created_guest_journeys
description: |
This model computes the Daily Created Guest Journeys at the deepest granularity.