Merged PR 3437: Revert 'Weekly aggregated guest journey metrics'

# Description

_Describe your motivation and changes here._

# Checklist

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

# Other

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

# Description

Here I created a weekly aggregated model for guest journey metrics.
I changed the daily_dimension week start and end to iso so it matches the week date obtained by Postgres for this aggregation

# 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.

Reverts !3430

Related work items: #23373
This commit is contained in:
Joaquin Ossa 2024-11-06 10:27:37 +00:00
commit 8c7b4bcf94
4 changed files with 2 additions and 364 deletions

View file

@ -1,38 +0,0 @@
{% set dimensions = get_kpi_dimensions_per_model("CHECK_IN_ATTRIBUTED_GUEST_JOURNEYS") %}
{{
config(
materialized="table", unique_key=["end_date", "dimension", "dimension_value"]
)
}}
{% for dimension in dimensions %}
select
-- Unique Key --
start_date,
end_date,
week,
{{ dimension.dimension }} as dimension,
{{ dimension.dimension_value }} as dimension_value,
-- Metrics --
sum(
created_guest_journeys_not_cancelled
) as created_guest_journeys_not_cancelled,
sum(
started_guest_journeys_not_cancelled
) as started_guest_journeys_not_cancelled,
sum(
completed_guest_journeys_not_cancelled
) as completed_guest_journeys_not_cancelled,
sum(created_guest_journeys) as created_guest_journeys,
sum(started_guest_journeys) as started_guest_journeys,
sum(completed_guest_journeys) as completed_guest_journeys,
sum(count_csat_score) as count_csat_score,
sum(count_csat_score * average_csat_score) / nullif(sum(count_csat_score), 0) as average_csat_score
from {{ ref("int_kpis__metric_weekly_check_in_attributed_guest_journeys") }}
group by 1, 2, 3, 4, 5
{% if not loop.last %}
union all
{% endif %}
{% endfor %}

View file

@ -13,8 +13,8 @@ with
id.date_day as date,
id.month_start_date as first_day_month,
id.month_end_date as last_day_month,
id.iso_week_start_date as first_day_week,
id.iso_week_end_date as last_day_week,
id.week_start_date as first_day_week,
id.week_end_date as last_day_week,
now()::date as today
from int_dates id
)

View file

@ -1,35 +0,0 @@
{{
config(
materialized="view",
unique_key=["end_date", "id_deal", "has_payment", "has_id_check", "active_accommodations_per_deal_segmentation"],
)
}}
select
-- Unique Key --
d.first_day_week as start_date,
d.date as end_date,
d.week,
b.id_deal,
b.has_payment,
b.has_id_check,
-- Dimensions --
b.active_accommodations_per_deal_segmentation,
b.main_billing_country_iso_3_per_deal,
-- Metrics --
sum(b.created_guest_journeys_not_cancelled) as created_guest_journeys_not_cancelled,
sum(b.started_guest_journeys_not_cancelled) as started_guest_journeys_not_cancelled,
sum(
b.completed_guest_journeys_not_cancelled
) as completed_guest_journeys_not_cancelled,
sum(b.created_guest_journeys) as created_guest_journeys,
sum(b.started_guest_journeys) as started_guest_journeys,
sum(b.completed_guest_journeys) as completed_guest_journeys,
sum(b.count_csat_score) as count_csat_score,
sum(b.count_csat_score * b.average_csat_score) / nullif(sum(b.count_csat_score), 0) as average_csat_score
from {{ ref("int_kpis__dimension_dates") }} d
left join
{{ ref("int_kpis__metric_daily_check_in_attributed_guest_journeys") }} b
on date_trunc('week', b.date)::date = d.first_day_week
where d.is_end_of_week = true and b.id_deal is not null
group by 1, 2, 3, 4, 5, 6, 7, 8

View file

@ -3518,295 +3518,6 @@ models:
max_value: 5
strictly: false
- name: int_kpis__metric_weekly_check_in_attributed_guest_journeys
description: |
This model computes the Weekly metrics associated with Guest Journeys
attributed to Check-In date at the deepest granularity.
The unique key corresponds to:
- end_date,
- id_deal,
- has_payment,
- has_id_check,
- active_accommodations_per_deal_segmentation.
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- end_date
- id_deal
- has_payment
- has_id_check
- active_accommodations_per_deal_segmentation
columns:
- name: start_date
data_type: date
description: |
The start date of the time range considered for the metrics in this record.
tests:
- not_null
- name: end_date
data_type: date
description: |
The end date of the time range considered for the metrics in this record.
tests:
- not_null
- name: week
data_type: int
description: ISO week number of the given date.
tests:
- not_null
- name: id_deal
data_type: character varying
description: Unique identifier of an account.
tests:
- not_null
- name: has_payment
data_type: string
description: Has there been any guest payments on the guest journey.
tests:
- not_null
- accepted_values:
values:
- W/O Payment
- With Payment
- name: has_id_check
data_type: string
description: Does the verification in the guest journey
include Government Id Check for the bookings.
tests:
- not_null
- accepted_values:
values:
- W/O Id Check
- With Id Check
- name: active_accommodations_per_deal_segmentation
data_type: text
description: |
Segment value based on the number of listings booked in 12 months
for a given deal and date.
tests:
- not_null
- accepted_values:
values:
- "0"
- "01-05"
- "06-20"
- "21-60"
- "61+"
- "UNSET"
- name: main_billing_country_iso_3_per_deal
data_type: character varying
description: |
Main billing country of the host aggregated at Deal level.
tests:
- not_null
- name: created_guest_journeys_not_cancelled
data_type: numeric
description: |
Weekly accumulated count of daily guest journeys created, excluding cancelled
bookings, in a given date and per specified dimension.
tests:
- not_null
- name: started_guest_journeys_not_cancelled
data_type: numeric
description: |
Weekly accumulated count of daily guest journeys started, excluding cancelled
bookings, in a given date and per specified dimension.
tests:
- not_null
- name: completed_guest_journeys_not_cancelled
data_type: numeric
description: |
Weekly accumulated count of daily guest journeys completed, excluding cancelled
bookings, in a given date and per specified dimension.
tests:
- not_null
- name: created_guest_journeys
data_type: numeric
description: |
Weekly accumulated count of daily guest journeys created in a given date and
per specified dimension.
tests:
- not_null
- name: started_guest_journeys
data_type: numeric
description: |
Weekly accumulated count of daily guest journeys started in a given date and
per specified dimension.
tests:
- not_null
- name: completed_guest_journeys
data_type: numeric
description: |
Weekly accumulated count of daily guest journeys completed in a given date and
per specified dimension.
tests:
- not_null
- name: count_csat_score
data_type: numeric
description: |
Weekly accumulated count of guest journeys with CSAT
(customer satisfaction score) in a given date, dimension, and value.
- name: average_csat_score
data_type: numeric
description: |
Weekly accumulated average CSAT score in a given date, dimension, and value.
tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 5
strictly: false
- name: int_kpis__agg_weekly_check_in_attributed_guest_journeys
description: |
This model computes the dimension aggregation for Weekly metrics associated
to Guest Journeys attributed to Check-In date.
tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- end_date
- dimension
- dimension_value
columns:
- name: start_date
data_type: date
description: |
The start date of the time range considered for the metrics in this record.
tests:
- not_null
- name: end_date
data_type: date
description: |
The end date of the time range considered for the metrics in this record.
tests:
- not_null
- name: week
data_type: int
description: Week number of the given date.
tests:
- not_null
- name: dimension
data_type: text
description: |
The dimension or granularity of the metrics.
tests:
- assert_dimension_completeness:
metric_column_name: created_guest_journeys_not_cancelled
- assert_dimension_completeness:
metric_column_name: started_guest_journeys_not_cancelled
- assert_dimension_completeness:
metric_column_name: completed_guest_journeys_not_cancelled
- assert_dimension_completeness:
metric_column_name: created_guest_journeys
- assert_dimension_completeness:
metric_column_name: started_guest_journeys
- assert_dimension_completeness:
metric_column_name: completed_guest_journeys
- assert_dimension_completeness:
metric_column_name: count_csat_score
- accepted_values:
values:
- global
- by_deal
- by_has_payment
- by_has_id_check
- by_billing_country
- by_number_of_listings
- name: dimension_value
data_type: text
description: |
The value or segment available for the selected dimension.
tests:
- not_null
- name: created_guest_journeys_not_cancelled
data_type: numeric
description: |
Weekly aggregated count of guest journeys created, excluding
cancelled bookings, for a given date, dimension, and value.
tests:
- not_null
- name: started_guest_journeys_not_cancelled
data_type: numeric
description: |
Weekly aggregated count of guest journeys started, excluding
cancelled bookings, for a given date, dimension, and value.
tests:
- not_null
- name: completed_guest_journeys_not_cancelled
data_type: numeric
description: |
Weekly aggregated count of guest journeys completed, excluding
cancelled bookings, for a given date, dimension, and value.
tests:
- not_null
- name: created_guest_journeys
data_type: numeric
description: |
Weekly aggregated count of guest journeys created for a given date,
dimension, and value.
tests:
- not_null
- name: started_guest_journeys
data_type: numeric
description: |
Weekly aggregated count of guest journeys started for a given date,
dimension, and value.
tests:
- not_null
- name: completed_guest_journeys
data_type: numeric
description: |
Weekly aggregated count of guest journeys completed for a given date,
dimension, and value.
tests:
- not_null
- name: count_csat_score
data_type: numeric
description: |
Weekly aggregated count of guest journeys with CSAT
(customer satisfaction score) in a given date, dimension, and value.
- name: average_csat_score
data_type: numeric
description: |
Weekly aggregated average CSAT score in a given date,
dimension, and value.
tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 5
strictly: false
- name: int_kpis__metric_mtd_check_in_attributed_guest_journeys
description: |
This model computes the Month-To-Date metrics associated with Guest Journeys