2025-04-08 05:37:53 +00:00
|
|
|
{% set production_dimensions = get_main_kpis_dimensions_for_production() %}
|
2024-08-20 15:42:27 +00:00
|
|
|
|
2025-02-10 13:14:31 +00:00
|
|
|
{{
|
|
|
|
|
config(
|
|
|
|
|
materialized="table",
|
|
|
|
|
indexes=[
|
|
|
|
|
{"columns": ["dimension"]},
|
|
|
|
|
{"columns": ["dimension", "date"]},
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
}}
|
2024-07-09 15:14:50 +00:00
|
|
|
with
|
2024-08-21 14:42:05 +00:00
|
|
|
dimensions as (
|
|
|
|
|
{% for dimension in production_dimensions %}
|
2024-09-20 14:53:43 +02:00
|
|
|
select
|
2024-08-21 14:42:05 +00:00
|
|
|
{{ dimension.dimension }} as dimension,
|
|
|
|
|
{{ dimension.dimension_display }} as dimension_display
|
|
|
|
|
{% if not loop.last %}
|
|
|
|
|
union all
|
|
|
|
|
{% endif %}
|
|
|
|
|
{% endfor %}
|
|
|
|
|
),
|
2024-07-09 15:14:50 +00:00
|
|
|
int_mtd_aggregated_metrics as (
|
2024-09-20 14:53:43 +02:00
|
|
|
select m.*, d.dimension_display
|
2024-08-21 14:42:05 +00:00
|
|
|
from {{ ref("int_mtd_aggregated_metrics") }} m
|
2024-08-20 15:42:27 +00:00
|
|
|
-- The following clause limits the display execution
|
|
|
|
|
-- to only include those dimensions configured to
|
|
|
|
|
-- appear for production purposes
|
2024-09-20 14:53:43 +02:00
|
|
|
inner join dimensions d on m.dimension = d.dimension
|
2024-07-09 15:14:50 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
select
|
|
|
|
|
year as year,
|
|
|
|
|
month as month,
|
|
|
|
|
day as day,
|
2024-11-11 15:57:37 +00:00
|
|
|
case when is_end_of_month then 1 else 0 end as is_end_of_month,
|
|
|
|
|
case when is_current_month then 1 else 0 end as is_current_month,
|
2024-12-09 16:13:52 +00:00
|
|
|
case
|
|
|
|
|
when is_end_of_month_or_yesterday then 1 else 0
|
|
|
|
|
end as is_end_of_month_or_yesterday,
|
2024-07-16 09:14:38 +00:00
|
|
|
first_day_month as first_day_month,
|
2024-07-09 15:14:50 +00:00
|
|
|
date as date,
|
2024-08-21 14:42:05 +00:00
|
|
|
dimension_display as dimension,
|
2024-08-20 15:42:27 +00:00
|
|
|
dimension_value as dimension_value,
|
2024-07-09 15:14:50 +00:00
|
|
|
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,
|
2024-08-08 17:06:11 +02:00
|
|
|
relative_increment as relative_increment,
|
|
|
|
|
relative_increment_with_sign_format as relative_increment_with_sign_format
|
2025-03-21 09:40:20 +00:00
|
|
|
from int_mtd_aggregated_metrics m
|
2024-07-10 14:17:05 +00:00
|
|
|
where
|
|
|
|
|
(
|
2024-10-22 08:08:03 +00:00
|
|
|
(
|
2025-03-21 09:40:20 +00:00
|
|
|
-- Not show current + previous month if the metric depends on
|
2025-05-15 14:10:27 +00:00
|
|
|
-- invoicing cycle and it is before the 12th of the month, if it
|
|
|
|
|
-- is the 12th of the month or after, only exclude the current
|
2025-03-21 09:40:20 +00:00
|
|
|
-- month.
|
|
|
|
|
display_exclusion = 'INVOICING'
|
2025-05-15 14:10:27 +00:00
|
|
|
and {{ is_date_before_12th_of_previous_month("date") }}
|
2024-10-22 08:08:03 +00:00
|
|
|
)
|
2025-03-21 09:40:20 +00:00
|
|
|
or (
|
|
|
|
|
-- Handle exclusion for Churn/MRR metrics: do not show them in the
|
|
|
|
|
-- current month.
|
|
|
|
|
display_exclusion = 'ONGOING_MONTH'
|
|
|
|
|
and date_trunc('month', m.date) < date_trunc('month', current_date)
|
2024-07-29 13:16:19 +00:00
|
|
|
)
|
2025-03-21 09:40:20 +00:00
|
|
|
-- Keep all history for the rest of metrics
|
|
|
|
|
or display_exclusion = 'NONE'
|
2025-01-30 16:30:03 +01:00
|
|
|
)
|