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,
    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%')
