data-dwh-dbt-project/models/reporting/general/mtd_aggregated_metrics.sql

47 lines
1.8 KiB
MySQL
Raw Normal View History

with
int_mtd_aggregated_metrics as (
select * from {{ ref("int_mtd_aggregated_metrics") }}
)
select
year as year,
month as month,
day as day,
is_end_of_month as is_end_of_month,
is_current_month as is_current_month,
first_day_month as first_day_month,
date as date,
previous_year_date as previous_year_date,
order_by as order_by,
number_format as number_format,
metric as metric,
value as value,
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%')