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
This commit is contained in:
Oriol Roqué Paniagua 2025-05-23 10:33:26 +00:00
parent 14c099b6b2
commit 0e1741ad9d
6 changed files with 45 additions and 0 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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: |