Merged PR 3482: Adapts date dimension skeleton for Main KPIs

# Description

New model:
* int_kpis__agg_dates_main_kpis - Serves as the skeleton of dates and dimensions for Main KPIs. It's aggregated since it follows a similar aggregation strategy. It's a single model to feed both Main KPIs visualisations. Note boolean fields are real booleans (true/false) while before these were integers (1/0). This also affects downstream models.

Main KPIs flow adaptations to new skeleton model:
* int_monthly_aggregated_metrics_history_by_deal
* int_monthly_churn_metrics - additionally, calls usual KPIs macro instead of old one
* int_mtd_vs_previous_year_metrics

Reporting changes to ensure report is not down:
* mtd_aggregated_metrics - adaptations on booleans (true-1, false-0)

Cleaning:
* get_kpi_dimensions macro is no longer used
* int_dates_by_deal model and schema entry
* int_dates_mtd_by_dimension model and schema entry
* int_dates_mtd model and schema entry

# Checklist

- [X] The edited models and dependants run properly with production data.
- [X] The edited models are sufficiently documented.
- [X] The edited models contain PK tests, and I've ran and passed them.
- [X] I have checked for DRY opportunities with other models and docs.
- [X] I've picked the right materialization for the affected models.

# Other

- [ ] Check if a full-refresh is required after this PR is merged.

Related work items: #23763
This commit is contained in:
Oriol Roqué Paniagua 2024-11-11 15:57:37 +00:00
parent 2f80642f6c
commit 9ba0edb82d
12 changed files with 197 additions and 416 deletions

View file

@ -24,8 +24,8 @@ 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,
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,
first_day_month as first_day_month,
date as date,
dimension_display as dimension,
@ -80,4 +80,4 @@ where
)
)
-- If metric is Churn Rate, do not show month in progress
and not (lower(metric) like '%churn rate%' and is_current_month = 1)
and not (lower(metric) like '%churn rate%' and is_current_month = true)

View file

@ -358,7 +358,7 @@ models:
- name: first_day_month
data_type: date
description: |
First day of the month correspoding to the date field.
First day of the month corresponding to the date field.
It comes from int_dates_mtd logic.
tests:
- not_null