Merged PR 4104: Refactor Invoiced Revenue from Account Code + New Revenue Streams
# Description Changes: * Major changes on int_kpis__metric_daily_invoiced_revenue. Now data is retrieved from the account codes, following the previous analysis. This actually reads from a work done on Accounting Codes, with the default aggregations set as a seed. I've also included here new revenue streams for new dash, and the split of guesty fees between resolutions and real API fees. However, New Dash services are still not visible as final metrics. I'll do this separately. * Propagation of changes in intermediate models. This will affect currently displayed metrics, but not show any new metric. Since this is quite dense, let's discuss. # 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: #26531
This commit is contained in:
parent
151bb46182
commit
d12a7233c9
7 changed files with 598 additions and 91 deletions
|
|
@ -1,10 +1,5 @@
|
|||
-- Document Status --
|
||||
{% set relevant_document_statuses = "('PAID', 'AUTHORISED')" %}
|
||||
{% set booking_fee_items = "('EU BOOKING FEE','ZAR BOOKINGS','BOOKING FEE - NON-UK','USD BOOKINGS','CAD BOOKINGS','BOOKING FEE - UK','AUD BOOKINGS')" %}
|
||||
{% set listing_fee_items = "('USD LISTINGS','LISTING FEE - NON UK','ZAR LISTINGS','CAD LISTINGS','LISTING FEE - UK','AUD LISTINGS','EU LISTINGS')" %}
|
||||
{% set waiver_items = "('DAMAGE WAVER', 'DAMAGE WAIVER')" %}
|
||||
{% set verification_fee_items = "('VERIFICATION FEE')" %}
|
||||
{% set e_deposit_account_name = "('E-DEPOSIT FEES')" %}
|
||||
{% set guesty_account_name = "('GUESTY FEES', 'GUESTY ADMINISTRATION FEE')" %}
|
||||
|
||||
{{ config(materialized="table", unique_key=["date", "id_deal"]) }}
|
||||
select
|
||||
|
|
@ -21,79 +16,147 @@ select
|
|||
-- Metrics --
|
||||
sum(
|
||||
case
|
||||
when upper(ixsdm.item_code) in {{ booking_fee_items }}
|
||||
when ixsdm.accounting_root_aggregation = 'Basic Protection'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else null
|
||||
else 0
|
||||
end
|
||||
) as xero_basic_protection_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_root_aggregation = 'Waiver Pro'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_waiver_pro_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_root_aggregation = 'Id Verification'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_id_verification_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_root_aggregation = 'Protection Plus'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_protection_plus_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_root_aggregation = 'Screening Plus'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_screening_plus_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_root_aggregation = 'Sex Offenders Check'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_sex_offenders_check_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_root_aggregation = 'Protection Pro'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_protection_pro_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_root_aggregation = 'Basic Screening'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_basic_screening_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_root_aggregation = 'Booking Fees'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_booking_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when upper(ixsdm.item_code) in {{ listing_fee_items }}
|
||||
when ixsdm.accounting_root_aggregation = 'Listing Fees'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else null
|
||||
else 0
|
||||
end
|
||||
) as xero_listing_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when upper(ixsdm.item_code) in {{ verification_fee_items }}
|
||||
when ixsdm.accounting_root_aggregation = 'Verification Fees'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else null
|
||||
else 0
|
||||
end
|
||||
) as xero_verification_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when
|
||||
upper(ixsdm.item_code) in {{ booking_fee_items }}
|
||||
or upper(ixsdm.item_code) in {{ listing_fee_items }}
|
||||
or upper(ixsdm.item_code) in {{ verification_fee_items }}
|
||||
-- New Dash
|
||||
ixsdm.accounting_kpis_aggregation = 'Invoiced Operator Revenue'
|
||||
-- Prior to 1st January 2023 we didn't have the split of Booking
|
||||
-- Fees, Listing Fees and Verification Fees. Everything is considered
|
||||
-- as Other Invoiced Revenue.
|
||||
or (
|
||||
ixsdm.accounting_root_aggregation = 'Other Invoiced Revenue'
|
||||
and date_trunc('year', ixsdm.document_issued_date_utc)::date
|
||||
= '2022-01-01'::date
|
||||
)
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else null
|
||||
else 0
|
||||
end
|
||||
) as xero_operator_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when upper(ixsdm.item_code) in {{ waiver_items }}
|
||||
when ixsdm.accounting_root_aggregation = 'Damage Host-Waiver Payments'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else null
|
||||
else 0
|
||||
end
|
||||
) as xero_waiver_paid_back_to_host_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when upper(ixsdm.account_name) in {{ e_deposit_account_name }}
|
||||
when ixsdm.accounting_root_aggregation = 'E-Deposit API'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else null
|
||||
else 0
|
||||
end
|
||||
) as xero_e_deposit_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when upper(ixsdm.account_name) in {{ guesty_account_name }}
|
||||
when ixsdm.accounting_root_aggregation = 'Athena API'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else null
|
||||
else 0
|
||||
end
|
||||
) as xero_guesty_net_fees_in_gbp,
|
||||
) as xero_athena_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_root_aggregation = 'Guesty Resolutions'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_guesty_resolutions_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when ixsdm.accounting_kpis_aggregation = 'Invoiced API Revenue'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else 0
|
||||
end
|
||||
) as xero_apis_net_fees_in_gbp,
|
||||
sum(
|
||||
case
|
||||
when
|
||||
upper(ixsdm.account_name) in {{ e_deposit_account_name }}
|
||||
or upper(ixsdm.account_name) in {{ guesty_account_name }}
|
||||
ixsdm.accounting_root_aggregation = 'Guesty Resolutions'
|
||||
or ixsdm.accounting_root_aggregation = 'Athena API'
|
||||
then ixsdm.line_amount_wo_taxes_in_gbp
|
||||
else null
|
||||
else 0
|
||||
end
|
||||
) as xero_apis_net_fees_in_gbp
|
||||
) as xero_guesty_net_fees_in_gbp
|
||||
from {{ ref("int_xero__sales_denom_mart") }} as ixsdm
|
||||
left join {{ ref("int_core__deal") }} as icd on ixsdm.id_deal = icd.id_deal
|
||||
left join
|
||||
{{ ref("int_kpis__dimension_daily_accommodation") }} as icmas
|
||||
on ixsdm.id_deal = icmas.id_deal
|
||||
and ixsdm.document_issued_date_utc = icmas.date
|
||||
where
|
||||
upper(ixsdm.document_status) in {{ relevant_document_statuses }}
|
||||
and (
|
||||
upper(ixsdm.item_code) in {{ booking_fee_items }}
|
||||
or upper(ixsdm.item_code) in {{ listing_fee_items }}
|
||||
or upper(ixsdm.item_code) in {{ verification_fee_items }}
|
||||
or upper(ixsdm.item_code) in {{ waiver_items }}
|
||||
or upper(ixsdm.account_name) in {{ e_deposit_account_name }}
|
||||
or upper(ixsdm.account_name) in {{ guesty_account_name }}
|
||||
)
|
||||
where upper(ixsdm.document_status) in {{ relevant_document_statuses }}
|
||||
group by 1, 2, 3, 4
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue