Merged PR 3810: Adds is_end_of_month_or_yesterday for Main KPIs

# Description

Adds `is_end_of_month_or_yesterday` for Main KPIs.
Apparently, the fact that we do not show the ongoing value of the month on some tabs of Main KPIs is the main blocker for Ben C to consistently use Main KPIs, which he actually retrieves from the SH legacy reporting. Since I'm sceptical about the data shown there, I want to remove this blocker.
It will require a small PR on PBI as well.

# 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.
- [NA] 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: #25342
This commit is contained in:
Oriol Roqué Paniagua 2024-12-09 16:13:52 +00:00
parent 8586dc2aec
commit 06603d01e2
8 changed files with 43 additions and 4 deletions

View file

@ -452,6 +452,7 @@ with
day,
is_end_of_month,
is_current_month,
is_end_of_month_or_yesterday,
first_day_month,
date,
dimension,

View file

@ -180,6 +180,7 @@ with
d.day,
d.is_end_of_month,
d.is_current_month,
d.is_end_of_month_or_yesterday,
d.first_day_month,
d.date,
d.dimension,
@ -390,6 +391,7 @@ select
current.day,
current.is_end_of_month,
current.is_current_month,
current.is_end_of_month_or_yesterday,
current.first_day_month,
current.date,
current.dimension,

View file

@ -212,7 +212,13 @@ models:
- name: is_end_of_month
data_type: boolean
description: is end of month, 1 for yes, 0 for no.
description: True if it's end of month.
tests:
- not_null
- name: is_end_of_month_or_yesterday
data_type: boolean
description: True if it's end of month or yesterday.
tests:
- not_null

View file

@ -20,7 +20,10 @@ with
ikdd.first_day_month,
ikdd.last_day_month,
ikdd.is_end_of_month,
ikdd.is_current_month
ikdd.is_current_month,
case
when ikdd.is_yesterday or ikdd.is_end_of_month then true else false
end as is_end_of_month_or_yesterday
from {{ ref("int_kpis__dimension_dates") }} as ikdd
left join
{{ ref("int_core__user_host") }} as icuh
@ -44,7 +47,8 @@ with
first_day_month,
last_day_month,
is_end_of_month,
is_current_month
is_current_month,
is_end_of_month_or_yesterday
from daily_dim
where {{ dimension.dimension_value }} <> 'UNSET'
{% if not loop.last %}

View file

@ -49,7 +49,8 @@ select distinct
when date_trunc('week', rd.date) = date_trunc('week', rd.today)
then true
else false
end as is_current_week
end as is_current_week,
case when rd.today - rd.date = 1 then true else false end as is_yesterday
from raw_dates rd
where
-- include only up-to yesterday

View file

@ -103,6 +103,13 @@ models:
tests:
- not_null
- name: is_yesterday
data_type: boolean
description: |
True if the date is yesterday, false otherwise.
tests:
- not_null
- name: int_kpis__agg_dates_main_kpis
description: |
This model provides the skeleton of dates and dimensions needed for Main KPIs display.
@ -188,6 +195,13 @@ models:
tests:
- not_null
- name: is_end_of_month_or_yesterday
data_type: boolean
description: |
True if the date is the end of the month OR yesterday, false otherwise.
tests:
- not_null
- name: int_kpis__lifecycle_daily_accommodation
description: |
This model computes the daily lifecycle segment for each accommodation, also known as

View file

@ -26,6 +26,9 @@ select
day as day,
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,
case
when is_end_of_month_or_yesterday then 1 else 0
end as is_end_of_month_or_yesterday,
first_day_month as first_day_month,
date as date,
dimension_display as dimension,

View file

@ -355,6 +355,14 @@ models:
tests:
- not_null
- name: is_end_of_month_or_yesterday
data_type: boolean
description: |
Checks if the date is end of month or yesterday,
1 for yes, 0 for no.
tests:
- not_null
- name: first_day_month
data_type: date
description: |