From 0e1741ad9dcdba5d8b67855883e672be35415ba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oriol=20Roqu=C3=A9=20Paniagua?= Date: Fri, 23 May 2025 10:33:26 +0000 Subject: [PATCH] Merged PR 5285: Adds Stay Disrupt (Confident Stay) Fees in KPIs Guest Payments flow # Description Propagates Stay Disrupt Guest Product in KPIs flow, within Guest Payments. This is done by: * Adding a new measure on `stay_disrupt_fees_in_gbp` in the daily model `int_kpis__metric_daily_guest_payments` * Adding stay_disrupt_fees_in_gbp in the `total_guest_payments_in_gbp` measure in the daily model `int_kpis__metric_daily_guest_payments` Afterwards this gets propagated downstream. No changes in the `total_guest_payments_in_gbp` measure in following models. However, a new measure for `stay_disrupt_fees_in_gbp` is created in the 4 Guest Payments related models of: * `int_kpis__metric_monthly_guest_payments` * `int_kpis__agg_monthly_guest_payments` * `int_kpis__metric_mtd_guest_payments` * `int_kpis__agg_mtd_guest_payments` Note that this also affects the schema entry of KPIs for both description and completion tests, in the case of aggregation models. Considering the almost non-existent usage of Guest KPIs report, I will not bother propagating Confident Stay in Product Guest KPIs, nor the report itself: ![image.png](https://guardhog.visualstudio.com/4148d95f-4b6d-4205-bcff-e9c8e0d2ca65/_apis/git/repositories/54ac356f-aad7-46d2-b62c-e8c5b3bb8ebf/pullRequests/5285/attachments/image.png) However, total Guest Revenue would include Confident Stay in Guest KPIs as well. Next steps, in a separated PR: * Propagation of new measure `stay_disrupt_fees_in_gbp` so it's available in Main 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: #30278 --- .../int_kpis__agg_monthly_guest_payments.sql | 1 + .../kpis/int_kpis__agg_mtd_guest_payments.sql | 1 + .../int_kpis__metric_daily_guest_payments.sql | 9 ++++++ ...nt_kpis__metric_monthly_guest_payments.sql | 1 + .../int_kpis__metric_mtd_guest_payments.sql | 1 + models/intermediate/kpis/schema.yml | 32 +++++++++++++++++++ 6 files changed, 45 insertions(+) diff --git a/models/intermediate/kpis/int_kpis__agg_monthly_guest_payments.sql b/models/intermediate/kpis/int_kpis__agg_monthly_guest_payments.sql index 431ecb5..48e5e88 100644 --- a/models/intermediate/kpis/int_kpis__agg_monthly_guest_payments.sql +++ b/models/intermediate/kpis/int_kpis__agg_monthly_guest_payments.sql @@ -18,6 +18,7 @@ sum(deposit_fees_in_gbp) as deposit_fees_in_gbp, sum(waiver_payments_in_gbp) as waiver_payments_in_gbp, sum(checkin_cover_fees_in_gbp) as checkin_cover_fees_in_gbp, + sum(stay_disrupt_fees_in_gbp) as stay_disrupt_fees_in_gbp, sum(total_guest_payments_in_gbp) as total_guest_payments_in_gbp from {{ ref("int_kpis__metric_monthly_guest_payments") }} group by 1, 2, 3, 4 diff --git a/models/intermediate/kpis/int_kpis__agg_mtd_guest_payments.sql b/models/intermediate/kpis/int_kpis__agg_mtd_guest_payments.sql index c5684e4..55e9141 100644 --- a/models/intermediate/kpis/int_kpis__agg_mtd_guest_payments.sql +++ b/models/intermediate/kpis/int_kpis__agg_mtd_guest_payments.sql @@ -18,6 +18,7 @@ sum(deposit_fees_in_gbp) as deposit_fees_in_gbp, sum(waiver_payments_in_gbp) as waiver_payments_in_gbp, sum(checkin_cover_fees_in_gbp) as checkin_cover_fees_in_gbp, + sum(stay_disrupt_fees_in_gbp) as stay_disrupt_fees_in_gbp, sum(total_guest_payments_in_gbp) as total_guest_payments_in_gbp from {{ ref("int_kpis__metric_mtd_guest_payments") }} group by 1, 2, 3, 4 diff --git a/models/intermediate/kpis/int_kpis__metric_daily_guest_payments.sql b/models/intermediate/kpis/int_kpis__metric_daily_guest_payments.sql index 383aacb..39b27d4 100644 --- a/models/intermediate/kpis/int_kpis__metric_daily_guest_payments.sql +++ b/models/intermediate/kpis/int_kpis__metric_daily_guest_payments.sql @@ -1,6 +1,7 @@ {% set deposit_fees_product_payment_items = "('FEE')" %} {% set waiver_fees_product_payment_items = "('WAIVER')" %} {% set checkin_cover_fees_product_payment_items = "('CHECKINCOVER')" %} +{% set stay_disrupt_fees_product_payment_items = "('STAYDISRUPT')" %} {% set id_check_verification = "('GOVERNMENTID')" %} {{ @@ -59,12 +60,20 @@ select else null end ) as checkin_cover_fees_in_gbp, + sum( + case + when icgjp.product_name in {{ stay_disrupt_fees_product_payment_items }} + then icgjp.amount_without_taxes_in_gbp + else null + end + ) as stay_disrupt_fees_in_gbp, sum( case when icgjp.product_name in {{ checkin_cover_fees_product_payment_items }} or icgjp.product_name in {{ waiver_fees_product_payment_items }} or icgjp.product_name in {{ deposit_fees_product_payment_items }} + or icgjp.product_name in {{ stay_disrupt_fees_product_payment_items }} then icgjp.amount_without_taxes_in_gbp else null end diff --git a/models/intermediate/kpis/int_kpis__metric_monthly_guest_payments.sql b/models/intermediate/kpis/int_kpis__metric_monthly_guest_payments.sql index 46e760e..b991b0e 100644 --- a/models/intermediate/kpis/int_kpis__metric_monthly_guest_payments.sql +++ b/models/intermediate/kpis/int_kpis__metric_monthly_guest_payments.sql @@ -25,6 +25,7 @@ select sum(gp.deposit_fees_in_gbp) as deposit_fees_in_gbp, sum(gp.waiver_payments_in_gbp) as waiver_payments_in_gbp, sum(gp.checkin_cover_fees_in_gbp) as checkin_cover_fees_in_gbp, + sum(gp.stay_disrupt_fees_in_gbp) as stay_disrupt_fees_in_gbp, sum(gp.total_guest_payments_in_gbp) as total_guest_payments_in_gbp from {{ ref("int_kpis__dimension_dates") }} d left join diff --git a/models/intermediate/kpis/int_kpis__metric_mtd_guest_payments.sql b/models/intermediate/kpis/int_kpis__metric_mtd_guest_payments.sql index d088794..f7f8771 100644 --- a/models/intermediate/kpis/int_kpis__metric_mtd_guest_payments.sql +++ b/models/intermediate/kpis/int_kpis__metric_mtd_guest_payments.sql @@ -25,6 +25,7 @@ select sum(gp.deposit_fees_in_gbp) as deposit_fees_in_gbp, sum(gp.waiver_payments_in_gbp) as waiver_payments_in_gbp, sum(gp.checkin_cover_fees_in_gbp) as checkin_cover_fees_in_gbp, + sum(gp.stay_disrupt_fees_in_gbp) as stay_disrupt_fees_in_gbp, sum(gp.total_guest_payments_in_gbp) as total_guest_payments_in_gbp from {{ ref("int_kpis__dimension_dates") }} d left join diff --git a/models/intermediate/kpis/schema.yml b/models/intermediate/kpis/schema.yml index ccc08e0..cdb0106 100644 --- a/models/intermediate/kpis/schema.yml +++ b/models/intermediate/kpis/schema.yml @@ -2538,6 +2538,12 @@ models: Sum of checkin cover fees paid by guests, without taxes, in GBP in a given date and per specified dimension. + - name: stay_disrupt_fees_in_gbp + data_type: decimal + description: | + Sum of stay disrupt fees paid by guests, without taxes, in GBP + in a given date and per specified dimension. + - name: total_guest_payments_in_gbp data_type: decimal description: | @@ -2654,6 +2660,12 @@ models: Sum of accumulated checkin cover fees by guests, without taxes, in GBP in a given month and per specified dimension. + - name: stay_disrupt_fees_in_gbp + data_type: decimal + description: | + Sum of accumulated stay disrupt fees by guests, without taxes, + in GBP in a given month and per specified dimension. + - name: total_guest_payments_in_gbp data_type: decimal description: | @@ -2770,6 +2782,12 @@ models: Sum of accumulated checkin cover fees by guests, without taxes, in GBP in a given month up to the given date and per specified dimension. + - name: stay_disrupt_fees_in_gbp + data_type: decimal + description: | + Sum of accumulated stay disrupt fees by guests, without taxes, + in GBP in a given month up to the given date and per specified dimension. + - name: total_guest_payments_in_gbp data_type: decimal description: | @@ -2815,6 +2833,7 @@ models: - deposit_fees_in_gbp - waiver_payments_in_gbp - checkin_cover_fees_in_gbp + - stay_disrupt_fees_in_gbp - total_guest_payments_in_gbp - accepted_values: values: @@ -2849,6 +2868,12 @@ models: The monthly checkin cover fees paid by guests, without taxes, in GBP for a given range date, dimension and value. + - name: stay_disrupt_fees_in_gbp + data_type: decimal + description: | + The monthly stay disrupt fees paid by guests, without taxes, in GBP + for a given range date, dimension and value. + - name: total_guest_payments_in_gbp data_type: decimal description: | @@ -2894,6 +2919,7 @@ models: - deposit_fees_in_gbp - waiver_payments_in_gbp - checkin_cover_fees_in_gbp + - stay_disrupt_fees_in_gbp - total_guest_payments_in_gbp - accepted_values: values: @@ -2928,6 +2954,12 @@ models: The month-to-date checkin cover fees paid by guests, without taxes, in GBP for a given range date, dimension and value. + - name: stay_disrupt_fees_in_gbp + data_type: decimal + description: | + The month-to-date stay disrupt fees paid by guests, without taxes, in GBP + for a given range date, dimension and value. + - name: total_guest_payments_in_gbp data_type: decimal description: |