Merged PR 2381: Adding submetrics of guest revenue

Adding submetrics of guest revenue:
- deposit fees
- checkin cover fees
- waiver payments

all of this adds up to
- guest income

and the revenue is computed by subtracting waivers paid to hosts

Related work items: #18787
This commit is contained in:
Oriol Roqué Paniagua 2024-07-23 13:50:03 +00:00
parent ee13eda5f3
commit fbd2bdd7f4
2 changed files with 63 additions and 40 deletions

View file

@ -92,12 +92,21 @@ with
invoicing.xero_host_resolution_payment_count,
-- GUEST REVENUE AND PAYMENTS --
guest_revenue.deposit_fees_in_gbp,
guest_revenue.waiver_payments_in_gbp,
guest_revenue.checkin_cover_fees_in_gbp,
guest_revenue.total_guest_payments_in_gbp,
guest_revenue.total_guest_revenue_in_gbp,
guest_revenue.total_guest_income_in_gbp,
nullif(
coalesce(guest_revenue.total_guest_income_in_gbp, 0)
+ coalesce(invoicing.xero_waiver_net_fees_in_gbp, 0),
0
) as total_guest_revenue_in_gbp,
-- TOTAL REVENUE --
nullif(
coalesce(guest_revenue.total_guest_revenue_in_gbp, 0)
coalesce(guest_revenue.total_guest_income_in_gbp, 0)
+ coalesce(invoicing.xero_waiver_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_operator_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_apis_net_fees_in_gbp, 0),
0
@ -110,36 +119,48 @@ with
guest_revenue.total_guest_payments_in_gbp / nullif(
guest_journeys.paid_guest_journeys, 0
) as guest_payments_per_paid_guest_journey,
guest_revenue.total_guest_revenue_in_gbp / nullif(
nullif(
coalesce(guest_revenue.total_guest_income_in_gbp, 0)
+ coalesce(invoicing.xero_waiver_net_fees_in_gbp, 0),
0
) / nullif(
guest_journeys.completed_guest_journeys, 0
) as guest_revenue_per_completed_guest_journey,
guest_revenue.total_guest_revenue_in_gbp / nullif(
nullif(
coalesce(guest_revenue.total_guest_income_in_gbp, 0)
+ coalesce(invoicing.xero_waiver_net_fees_in_gbp, 0),
0
) / nullif(
guest_journeys.paid_guest_journeys, 0
) as guest_revenue_per_paid_guest_journey,
-- TOTAL REVENUE WEIGHTED METRICS --
(
coalesce(guest_revenue.total_guest_revenue_in_gbp, 0)
coalesce(guest_revenue.total_guest_income_in_gbp, 0)
+ coalesce(invoicing.xero_waiver_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_operator_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_apis_net_fees_in_gbp, 0)
)
/ nullif(bookings.created_bookings, 0) as total_revenue_per_created_booking,
(
coalesce(guest_revenue.total_guest_revenue_in_gbp, 0)
coalesce(guest_revenue.total_guest_income_in_gbp, 0)
+ coalesce(invoicing.xero_waiver_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_operator_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_apis_net_fees_in_gbp, 0)
) / nullif(
guest_journeys.created_guest_journeys, 0
) as total_revenue_per_created_guest_journey,
(
coalesce(guest_revenue.total_guest_revenue_in_gbp, 0)
coalesce(guest_revenue.total_guest_income_in_gbp, 0)
+ coalesce(invoicing.xero_waiver_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_operator_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_apis_net_fees_in_gbp, 0)
) / nullif(
deals.deals_booked_in_month, 0
) as total_revenue_per_deals_booked_in_month,
(
coalesce(guest_revenue.total_guest_revenue_in_gbp, 0)
coalesce(guest_revenue.total_guest_income_in_gbp, 0)
+ coalesce(invoicing.xero_waiver_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_operator_net_fees_in_gbp, 0)
+ coalesce(invoicing.xero_apis_net_fees_in_gbp, 0)
) / nullif(
@ -226,7 +247,11 @@ select
{{ calculate_safe_relative_increment("xero_host_resolution_payment_count") }},
-- GUEST REVENUE AND PAYMENTS --
{{ calculate_safe_relative_increment("deposit_fees_in_gbp") }},
{{ calculate_safe_relative_increment("waiver_payments_in_gbp") }},
{{ calculate_safe_relative_increment("checkin_cover_fees_in_gbp") }},
{{ calculate_safe_relative_increment("total_guest_payments_in_gbp") }},
{{ calculate_safe_relative_increment("total_guest_income_in_gbp") }},
{{ calculate_safe_relative_increment("total_guest_revenue_in_gbp") }},
-- TOTAL REVENUE --