refactor booking metrics children to use new models

This commit is contained in:
Pablo Martin 2024-09-16 13:02:42 +02:00
parent 4140f5b917
commit aa06b28a69

View file

@ -2,11 +2,19 @@
This model pivots the data of the different mtd metrics models to get This model pivots the data of the different mtd metrics models to get
previous year for each line & computing relative increment. -- previous year for each line & computing relative increment. --
*/ */
{{ config(materialized="table", unique_key=["date", "dimension", "dimension_value"]) }} {{ config(materialized="table", unique_key=["date", "dimension", "dimension_value"]) }}
with with
int_core__mtd_booking_metrics as ( int_core__mtd_created_bookings_metric as (
select * from {{ ref("int_core__mtd_booking_metrics") }} select * from {{ ref("int_core__mtd_created_bookings_metric") }}
),
int_core__mtd_check_out_bookings_metric as (
select * from {{ ref("int_core__mtd_check_out_bookings_metric") }}
),
int_core__mtd_cancelled_bookings_metric as (
select * from {{ ref("int_core__mtd_cancelled_bookings_metric") }}
),
int_core__mtd_billable_bookings_metric as (
select * from {{ ref("int_core__mtd_billable_bookings_metric") }}
), ),
int_core__mtd_guest_journey_metrics as ( int_core__mtd_guest_journey_metrics as (
select * from {{ ref("int_core__mtd_guest_journey_metrics") }} select * from {{ ref("int_core__mtd_guest_journey_metrics") }}
@ -23,7 +31,9 @@ with
int_xero__mtd_invoicing_metrics as ( int_xero__mtd_invoicing_metrics as (
select * from {{ ref("int_xero__mtd_invoicing_metrics") }} select * from {{ ref("int_xero__mtd_invoicing_metrics") }}
), ),
int_dates_mtd_by_dimension as (select * from {{ ref("int_dates_mtd_by_dimension") }}), int_dates_mtd_by_dimension as (
select * from {{ ref("int_dates_mtd_by_dimension") }}
),
plain_kpi_combination as ( plain_kpi_combination as (
@ -39,10 +49,10 @@ with
d.dimension_value, d.dimension_value,
-- BOOKINGS -- -- BOOKINGS --
bookings.created_bookings, created_bookings.created_bookings,
bookings.check_out_bookings, check_out_bookings.check_out_bookings,
bookings.cancelled_bookings, cancelled_bookings.cancelled_bookings,
bookings.billable_bookings, billable_bookings.billable_bookings,
-- GUEST JOURNEYS -- -- GUEST JOURNEYS --
guest_journeys.created_guest_journeys, guest_journeys.created_guest_journeys,
@ -147,8 +157,9 @@ with
+ coalesce(invoicing.xero_waiver_paid_back_to_host_in_gbp, 0) + coalesce(invoicing.xero_waiver_paid_back_to_host_in_gbp, 0)
+ coalesce(invoicing.xero_operator_net_fees_in_gbp, 0) + coalesce(invoicing.xero_operator_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_apis_net_fees_in_gbp, 0) + coalesce(invoicing.xero_apis_net_fees_in_gbp, 0)
) ) / nullif(
/ nullif(bookings.created_bookings, 0) as total_revenue_per_created_booking, created_bookings.created_bookings, 0
) as total_revenue_per_created_booking,
( (
coalesce(guest_payments.total_guest_payments_in_gbp, 0) coalesce(guest_payments.total_guest_payments_in_gbp, 0)
+ coalesce(invoicing.xero_waiver_paid_back_to_host_in_gbp, 0) + coalesce(invoicing.xero_waiver_paid_back_to_host_in_gbp, 0)
@ -175,11 +186,26 @@ with
) as total_revenue_per_listings_booked_in_month ) as total_revenue_per_listings_booked_in_month
from int_dates_mtd_by_dimension d from int_dates_mtd_by_dimension d
left join left join
int_core__mtd_booking_metrics bookings int_core__mtd_created_bookings_metric created_bookings
on d.date = bookings.date on d.date = created_bookings.date
and d.dimension = bookings.dimension and d.dimension = created_bookings.dimension
and d.dimension_value = bookings.dimension_value and d.dimension_value = created_bookings.dimension_value
left join
int_core__mtd_check_out_bookings_metric check_out_bookings
on d.date = check_out_bookings.date
and d.dimension = check_out_bookings.dimension
and d.dimension_value = check_out_bookings.dimension_value
left join
int_core__mtd_cancelled_bookings_metric cancelled_bookings
on d.date = cancelled_bookings.date
and d.dimension = cancelled_bookings.dimension
and d.dimension_value = cancelled_bookings.dimension_value
left join
int_core__mtd_billable_bookings_metric billable_bookings
on d.date = billable_bookings.date
and d.dimension = billable_bookings.dimension
and d.dimension_value = billable_bookings.dimension_value
left join left join
int_core__mtd_guest_journey_metrics guest_journeys int_core__mtd_guest_journey_metrics guest_journeys
on d.date = guest_journeys.date on d.date = guest_journeys.date
@ -190,18 +216,18 @@ with
on d.date = accommodations.date on d.date = accommodations.date
and d.dimension = accommodations.dimension and d.dimension = accommodations.dimension
and d.dimension_value = accommodations.dimension_value and d.dimension_value = accommodations.dimension_value
left join left join
int_core__mtd_deal_metrics deals int_core__mtd_deal_metrics deals
on d.date = deals.date on d.date = deals.date
and d.dimension = deals.dimension and d.dimension = deals.dimension
and d.dimension_value = deals.dimension_value and d.dimension_value = deals.dimension_value
left join left join
int_core__mtd_guest_payments_metrics guest_payments int_core__mtd_guest_payments_metrics guest_payments
on d.date = guest_payments.date on d.date = guest_payments.date
and d.dimension = guest_payments.dimension and d.dimension = guest_payments.dimension
and d.dimension_value = guest_payments.dimension_value and d.dimension_value = guest_payments.dimension_value
left join left join
int_xero__mtd_invoicing_metrics invoicing int_xero__mtd_invoicing_metrics invoicing
on d.date = invoicing.date on d.date = invoicing.date
and d.dimension = invoicing.dimension and d.dimension = invoicing.dimension
and d.dimension_value = invoicing.dimension_value and d.dimension_value = invoicing.dimension_value
@ -308,7 +334,7 @@ select
from plain_kpi_combination current from plain_kpi_combination current
left join left join
plain_kpi_combination previous_year plain_kpi_combination previous_year
on current.dimension = previous_year.dimension on current.dimension = previous_year.dimension
and current.dimension_value = previous_year.dimension_value and current.dimension_value = previous_year.dimension_value
and current.month = previous_year.month and current.month = previous_year.month
and current.year = previous_year.year + 1 and current.year = previous_year.year + 1