data-dwh-dbt-project/models/intermediate/kpis/int_kpis__metric_daily_host_resolutions.sql
Oriol Roqué Paniagua 3fe9ac140e Merged PR 4031: Host Resolutions KPIs bugfix
# Description

Ensure only Authorised states are selected in bank transactions for Host Resolutions KPIs.

Waiting for final confirmation from Suzannah but I'm pretty sure about this since it's consistent with the P&L (and does not make sense to consider DELETED bank transactions anyway)

For reference, here's the current values in prod for `xero_host_resolution_amount_paid_in_gbp` (top3):
* 2024-12-31	-74318
* 2024-11-30	-87935
* 2024-10-31	-73840

and here the same with this fix. Note that the difference is mostly in November:
* 2024-12-31	-73581
* 2024-11-30	-74803
* 2024-10-31	-72473

# 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: #26247
2025-01-13 09:19:24 +00:00

31 lines
1.4 KiB
SQL

{% set resolutions_host_payment_account_name = "('RESOLUTIONS - HOST PAYMENT')" %}
{% set relevant_transaction_status = "('AUTHORISED')" %}
{{ config(materialized="table", unique_key=["date", "id_deal"]) }}
select
-- Unique Key --
ixbt.transaction_date_utc as date,
coalesce(ixc.id_deal, 'UNSET') as id_deal,
-- Dimensions --
coalesce(
icd.main_billing_country_iso_3_per_deal, 'UNSET'
) as main_billing_country_iso_3_per_deal,
coalesce(
icmas.active_accommodations_per_deal_segmentation, 'UNSET'
) as active_accommodations_per_deal_segmentation,
-- Metrics --
sum(ixbtli.line_amount_wo_taxes_in_gbp) as xero_host_resolution_amount_paid_in_gbp,
count(distinct ixbt.id_bank_transaction) as xero_host_resolution_payment_count
from {{ ref("int_xero__bank_transactions") }} as ixbt
inner join
{{ ref("int_xero__bank_transaction_line_items") }} as ixbtli
on ixbt.id_bank_transaction = ixbtli.id_bank_transaction
and upper(ixbtli.account_name) in {{ resolutions_host_payment_account_name }}
and upper(ixbt.transaction_status) in {{ relevant_transaction_status }}
left join {{ ref("int_xero__contacts") }} as ixc on ixc.id_contact = ixbt.id_contact
left join {{ ref("int_core__deal") }} as icd on ixc.id_deal = icd.id_deal
left join
{{ ref("int_kpis__dimension_daily_accommodation") }} as icmas
on ixc.id_deal = icmas.id_deal
and ixbt.transaction_date_utc = icmas.date
group by 1, 2, 3, 4