Merged PR 4303: Adds Cancelled and Not Cancelled Check-out Bookings

# Description

Adds Cancelled and Not Cancelled Check-Out Bookings as absolute figures. Adds Cancellation Rate only for aggregated models.

Edit: I also added the removal of duplicate bookings. Otherwise the rates might be affected, and this should be cleaner anyway. Will do the same for Created Bookings.

This won't make these new metrics appear in KPIs.

# 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 12:01:24 +00:00
parent b569db3468
commit 736d615075
6 changed files with 102 additions and 5 deletions

View file

@ -15,7 +15,11 @@
{{ dimension.dimension }} as dimension,
{{ dimension.dimension_value }} as dimension_value,
-- Metrics --
sum(check_out_bookings) as check_out_bookings
sum(check_out_bookings) as check_out_bookings,
sum(cancelled_check_out_bookings) as cancelled_check_out_bookings,
sum(not_cancelled_check_out_bookings) as not_cancelled_check_out_bookings,
sum(cancelled_check_out_bookings)
/ sum(check_out_bookings) as cancelled_check_out_bookings_rate
from {{ ref("int_kpis__metric_monthly_check_out_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(check_out_bookings) as check_out_bookings
sum(check_out_bookings) as check_out_bookings,
sum(cancelled_check_out_bookings) as cancelled_check_out_bookings,
sum(not_cancelled_check_out_bookings) as not_cancelled_check_out_bookings,
sum(cancelled_check_out_bookings)
/ sum(check_out_bookings) as cancelled_check_out_bookings_rate
from {{ ref("int_kpis__metric_mtd_check_out_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 check_out_bookings
count(distinct icb.id_booking) as check_out_bookings,
count(
distinct case
when upper(icb.booking_state) = {{ var("cancelled_booking_state") }}
then icb.id_booking
else null
end
) as cancelled_check_out_bookings,
count(
distinct case
when not upper(icb.booking_state) = {{ var("cancelled_booking_state") }}
then icb.id_booking
else null
end
) as not_cancelled_check_out_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

@ -19,7 +19,9 @@ select
-- Dimensions --
b.main_billing_country_iso_3_per_deal,
-- Metrics --
sum(b.check_out_bookings) as check_out_bookings
sum(b.check_out_bookings) as check_out_bookings,
sum(b.cancelled_check_out_bookings) as cancelled_check_out_bookings,
sum(b.not_cancelled_check_out_bookings) as not_cancelled_check_out_bookings
from {{ ref("int_kpis__dimension_dates") }} d
left join
{{ ref("int_kpis__metric_daily_check_out_bookings") }} b

View file

@ -19,7 +19,9 @@ select
-- Dimensions --
b.main_billing_country_iso_3_per_deal,
-- Metrics --
sum(b.check_out_bookings) as check_out_bookings
sum(b.check_out_bookings) as check_out_bookings,
sum(b.cancelled_check_out_bookings) as cancelled_check_out_bookings,
sum(b.not_cancelled_check_out_bookings) as not_cancelled_check_out_bookings
from {{ ref("int_kpis__dimension_dates") }} d
left join
{{ ref("int_kpis__metric_daily_check_out_bookings") }} b

View file

@ -2805,6 +2805,18 @@ models:
description: |
Count of daily bookings checked-out in a given date and per specified dimension.
- name: cancelled_check_out_bookings
data_type: bigint
description: |
Count of daily bookings checked-out in a given date and per specified dimension
that have been cancelled.
- name: not_cancelled_check_out_bookings
data_type: bigint
description: |
Count of daily bookings checked-out in a given date and per specified dimension
that have not been cancelled.
- name: int_kpis__metric_monthly_check_out_bookings
description: |
This model computes the Monthly Check-out Bookings at the
@ -2887,6 +2899,18 @@ models:
Count of accumulated bookings checked-out in a given month
and per specified dimension.
- name: cancelled_check_out_bookings
data_type: bigint
description: |
Count of accumulated bookings checked-out in a given month
and per specified dimension that have been cancelled.
- name: not_cancelled_check_out_bookings
data_type: bigint
description: |
Count of accumulated bookings checked-out in a given month
and per specified dimension that have not been cancelled.
- name: int_kpis__metric_mtd_check_out_bookings
description: |
This model computes the Month-To-Date Check-out Bookings at the
@ -2969,6 +2993,18 @@ models:
Count of accumulated bookings checked-out in a given month up to the
given date and per specified dimension.
- name: cancelled_check_out_bookings
data_type: bigint
description: |
Count of accumulated bookings checked-out in a given month up to the
given date and per specified dimension that have been cancelled.
- name: not_cancelled_check_out_bookings
data_type: bigint
description: |
Count of accumulated bookings checked-out in a given month up to the
given date and per specified dimension that have not been cancelled.
- name: int_kpis__agg_monthly_check_out_bookings
description: |
This model computes the dimension aggregation for
@ -3006,6 +3042,8 @@ models:
- assert_dimension_completeness:
metric_column_names:
- check_out_bookings
- cancelled_check_out_bookings
- not_cancelled_check_out_bookings
- accepted_values:
values:
- global
@ -3024,6 +3062,21 @@ models:
data_type: bigint
description: The monthly checked-out bookings for a given date, dimension and value.
- name: cancelled_check_out_bookings
data_type: bigint
description: |
The monthly cancelled checked-out bookings for a given date, dimension and value.
- name: not_cancelled_check_out_bookings
data_type: bigint
description: |
The monthly not cancelled checked-out bookings for a given date, dimension and value.
- name: cancelled_check_out_bookings_rate
data_type: decimal
description: |
The monthly rate of cancelled checked-out bookings for a given date, dimension and value.
- name: int_kpis__agg_mtd_check_out_bookings
description: |
This model computes the dimension aggregation for
@ -3061,6 +3114,8 @@ models:
- assert_dimension_completeness:
metric_column_names:
- check_out_bookings
- cancelled_check_out_bookings
- not_cancelled_check_out_bookings
- accepted_values:
values:
- global
@ -3079,6 +3134,21 @@ models:
data_type: bigint
description: The month-to-date checked-out bookings for a given date, dimension and value.
- name: cancelled_check_out_bookings
data_type: bigint
description: |
The month-to-date cancelled checked-out bookings for a given date, dimension and value.
- name: not_cancelled_check_out_bookings
data_type: bigint
description: |
The month-to-date not cancelled checked-out bookings for a given date, dimension and value.
- name: cancelled_check_out_bookings_rate
data_type: decimal
description: |
The month-to-date rate of cancelled checked-out bookings for a given date, dimension and value.
- name: int_kpis__metric_daily_billable_bookings
description: |
This model computes the Daily Billable Bookings at the deepest granularity.