Merged PR 3599: New Dash KPIs skeleton with Created Services
# Description This PR handles the computation of KPIs for New Dash, focusing on Created Services. New dimensions configured in `business_kpis_configuration` and applied in this new models for `NEW_DASH_CREATED_SERVICES`: * `dim_host`, * `dim_has_upgraded_service`, * `dim_new_dash_version`, * `dim_pricing_service` New daily metric model `int_kpis__metric_daily_new_dash_created_services` * Follows a similar pattern as for the rest of daily metric models. The only difference is that is aggregated to `id_booking` to ensure we can handle count distinct of bookings per different time granularities. * Reads from the new pricing tables `int_core__booking_summary` and `int_core__booking_service_detail`. The main filters applied are selecting only new dash users and only services created after the user move timestamp to new dash. An additional metric model at monthly level is created `int_kpis__metric_monthly_new_dash_created_services` These finally go to a dimension aggregated model (`dimension`, `dimension_value`), respectively: * Daily: `int_kpis__agg_daily_new_dash_created_services` * Monthly: `int_kpis__agg_monthly_new_dash_created_services` A final model aims to aggregate the different dimension aggregated metrics for New Dash: `int_kpis__product_new_dash_agg_metrics` * It computes a `time_granularity` aggregation * Here I will add additional metrics (such as revenue) once we have them. A final model reading from the previous is exposed to reporting: `kpis__product_new_dash_agg_metrics` # 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: #20809
This commit is contained in:
parent
d73ca6555c
commit
86c81c1f21
9 changed files with 662 additions and 2 deletions
12
models/reporting/kpis/kpis__product_new_dash_agg_metrics.sql
Normal file
12
models/reporting/kpis/kpis__product_new_dash_agg_metrics.sql
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
with
|
||||
int_kpis__product_new_dash_agg_metrics as (
|
||||
select * from {{ ref("int_kpis__product_new_dash_agg_metrics") }}
|
||||
)
|
||||
select
|
||||
date as date,
|
||||
time_granularity as time_granularity,
|
||||
dimension as dimension,
|
||||
dimension_value as dimension_value,
|
||||
created_services as created_services,
|
||||
booking_with_created_services_count as booking_with_created_services_count
|
||||
from int_kpis__product_new_dash_agg_metrics
|
||||
|
|
@ -203,3 +203,68 @@ models:
|
|||
description: |
|
||||
Sum of total payments paid by guests, excluding taxes, in GBP
|
||||
on the same date in the previous year, segmented by the specified dimension.
|
||||
|
||||
- name: kpis__product_new_dash_agg_metrics
|
||||
description: |
|
||||
Reporting model for New Dash specific KPIs. It's an aggregated version
|
||||
of time granularity, dimension, dimension value and list of metrics
|
||||
with their value.
|
||||
|
||||
tests:
|
||||
- dbt_utils.unique_combination_of_columns:
|
||||
combination_of_columns:
|
||||
- date
|
||||
- time_granularity
|
||||
- dimension
|
||||
- dimension_value
|
||||
|
||||
columns:
|
||||
- name: date
|
||||
data_type: date
|
||||
description: |
|
||||
The end date of the time range specified in the time_granularity
|
||||
for the dimension, dimension_value and metrics in this record.
|
||||
tests:
|
||||
- not_null
|
||||
|
||||
- name: time_granularity
|
||||
data_type: string
|
||||
description: The time dimension.
|
||||
tests:
|
||||
- accepted_values:
|
||||
values:
|
||||
- daily
|
||||
- monthly
|
||||
|
||||
- name: dimension
|
||||
data_type: string
|
||||
description: The dimension or granularity of the metrics.
|
||||
tests:
|
||||
- accepted_values:
|
||||
values:
|
||||
- global
|
||||
- by_number_of_listings
|
||||
- by_billing_country
|
||||
- by_deal
|
||||
- by_new_dash_version
|
||||
- by_has_upgraded_service
|
||||
- by_service
|
||||
- by_host
|
||||
|
||||
- name: dimension_value
|
||||
data_type: string
|
||||
description: The value or segment available for the selected dimension.
|
||||
tests:
|
||||
- not_null
|
||||
|
||||
- name: created_services
|
||||
data_type: bigint
|
||||
description: The daily created services for a given date, dimension and value.
|
||||
|
||||
- name: booking_with_created_services_count
|
||||
data_type: bigint
|
||||
description: |
|
||||
The daily bookings with created services for a given date, dimension and value.
|
||||
This is an approximation to booking count since different services can
|
||||
apply to the same booking and these do not need to be created in the same
|
||||
time period. Therefore, it's not an additive metric.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue