data-dwh-dbt-project/models/intermediate/kpis/int_kpis__agg_mtd_guest_payments.sql
Oriol Roqué Paniagua 0e1741ad9d 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
2025-05-23 10:33:26 +00:00

28 lines
905 B
SQL

{% set dimensions = get_kpi_dimensions_per_model("GUEST_PAYMENTS") %}
{{
config(
materialized="table", unique_key=["end_date", "dimension", "dimension_value"]
)
}}
{% for dimension in dimensions %}
select
-- Unique Key --
start_date,
end_date,
{{ dimension.dimension }} as dimension,
{{ dimension.dimension_value }} as dimension_value,
-- Metrics --
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
{% if not loop.last %}
union all
{% endif %}
{% endfor %}