Merged PR 2257: Expose guest revenue and guest journey payment metrics

This PR aims to expose the new metrics to the business KPIs report.
The new metrics exposed are, for the global and the by deal view:
- Guest Revenue
- Guest Revenue per Guest Journey Completed
- Guest Revenue per Guest Journey with Payment
- Guest Payments
- Guest Payments per Guest Journey Completed
- Guest Payments per Guest Journey with Payment
- Guest Journey with Payment
- Guest Journey Payment Rate

Changes:
- Silly change on the naming in the by deal view of `payment_rate_guest_journey` to be consistent with the global view.
- Silly change that I miss some GJ payment metric for the view by deal id.
- Added a new number format called `currency_gbp` - only for monetary metrics, available in the schema files
- Usual procedure to publish metrics: for global metrics, add them in the `int_mtd_aggregated_metrics`. I also changed the order of display.
- **Important**: to avoid displaying revenue figures until Xero invoicing is handled, I created a macro called `is_date_before_previous_month` that is called in the reporting equivalent models: `mtd_aggregated_metrics` in the where section and in the `monthly_aggregated_metrics_history_by_deal` as a case-when.

This should allow to expose all new metrics, and enable the publishing of a new update of the business kpis!

Related work items: #18107
This commit is contained in:
Oriol Roqué Paniagua 2024-07-10 14:17:05 +00:00
parent d39bc02ae1
commit 3b75d9eefb
8 changed files with 171 additions and 39 deletions

View file

@ -18,3 +18,28 @@ select
previous_year_value as previous_year_value,
relative_increment as relative_increment
from int_mtd_aggregated_metrics
/*
The following where condition is applied to avoid displaying revenue metrics
in the MTD for the current month and the previous month. The main reason is
that we have a time delay between when the guest does a payment vs. when we
invoice or credit hosts (Xero).
This is specially tricky for the Host-takes-waiver revenue: guests payments
happen in a timely fashion, and we get all waiver money from the guests. Once
the month is finished, Finance will start to invoice hosts, and in this case,
all hosts that have the Host-takes-waiver need to be payed back the amount
coming from the guest.
Not having this filter would mean that, in the current month, the figures
displayed of guest revenue would be much larger than they actually will be
because we still need to pay back to the hosts these waivers.
For a more current-month evaluation, Guest Payments should be a good proxy
metric to follow.
*/
where
(
-- Not show current + previous month if revenue metric
-- we need to pass +1 day to date since it's the last day of the month
lower(metric) like '%revenue%'
and {{ is_date_before_previous_month("date") }}
)
-- Keep all history for the rest of metrics
or (lower(metric) not like '%revenue%')