Merged PR 3272: Expose Churn Rates into Main KPIs

# Description

Exposes Churn Rates into Main KPIs, specifically Revenue Churn Rate, Bookings Churn Rate and Listings Churn Rate. This is based on the average approach.

Additionally, it adds these 3 metrics in the kpis_additive_metrics_per_dimension_are_consistent test.
Additionally, it removes from int_mtd_vs_previous_year_metrics the computation of the additive Churn Rates. The removal of further unused code will be handled in a separated PR.

# 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.
- [NA] 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: #22691
This commit is contained in:
Oriol Roqué Paniagua 2024-10-22 08:08:03 +00:00
parent f230eb3af5
commit 6a90eb30f9
4 changed files with 46 additions and 25 deletions

View file

@ -224,6 +224,33 @@
"number_format": "percentage",
"increment_sign_format": "positive",
},
{
"order_by": 120,
"metric": "Revenue Churn Rate",
"value": "total_revenue_churn_average_contribution",
"previous_year_value": "previous_year_total_revenue_churn_average_contribution",
"relative_increment": "relative_increment_total_revenue_churn_average_contribution",
"number_format": "percentage",
"increment_sign_format": "negative",
},
{
"order_by": 121,
"metric": "Bookings Churn Rate",
"value": "created_bookings_churn_average_contribution",
"previous_year_value": "previous_year_created_bookings_churn_average_contribution",
"relative_increment": "relative_increment_created_bookings_churn_average_contribution",
"number_format": "percentage",
"increment_sign_format": "negative",
},
{
"order_by": 122,
"metric": "Listings Churn Rate",
"value": "listings_booked_in_month_churn_average_contribution",
"previous_year_value": "previous_year_listings_booked_in_month_churn_average_contribution",
"relative_increment": "relative_increment_listings_booked_in_month_churn_average_contribution",
"number_format": "percentage",
"increment_sign_format": "negative",
},
{
"order_by": 200,
"metric": "Total Revenue",

View file

@ -161,9 +161,6 @@ with
) as total_revenue_per_listings_booked_in_month,
-- CHURN --
churn.total_revenue_churn_additive_contribution,
churn.created_bookings_churn_additive_contribution,
churn.listings_booked_in_month_churn_additive_contribution,
churn.total_revenue_churn_average_contribution,
churn.created_bookings_churn_average_contribution,
churn.listings_booked_in_month_churn_average_contribution
@ -317,17 +314,6 @@ select
}},
-- CHURN --
{{ calculate_safe_relative_increment("total_revenue_churn_additive_contribution") }},
{{
calculate_safe_relative_increment(
"created_bookings_churn_additive_contribution"
)
}},
{{
calculate_safe_relative_increment(
"listings_booked_in_month_churn_additive_contribution"
)
}},
{{ calculate_safe_relative_increment("total_revenue_churn_average_contribution") }},
{{
calculate_safe_relative_increment(

View file

@ -57,7 +57,20 @@ from int_mtd_aggregated_metrics
*/
where
(
-- Not show current + previous month if the metric depends on invoicing cycle
(
-- Not show current + previous month if the metric depends on invoicing
-- cycle
(
lower(metric) like '%total revenue%'
or lower(metric) like '%resolutions%'
or lower(metric) like '%invoiced%'
or lower(metric) like '%retained%'
or lower(metric) like '%damage host%'
)
and {{ is_date_before_previous_month("date") }}
)
-- Keep all history for the rest of metrics
or not
(
lower(metric) like '%total revenue%'
or lower(metric) like '%resolutions%'
@ -65,14 +78,6 @@ where
or lower(metric) like '%retained%'
or lower(metric) like '%damage host%'
)
and {{ is_date_before_previous_month("date") }}
)
-- Keep all history for the rest of metrics
or not
(
lower(metric) like '%total revenue%'
or lower(metric) like '%resolutions%'
or lower(metric) like '%invoiced%'
or lower(metric) like '%retained%'
or lower(metric) like '%damage host%'
)
-- If metric is Churn Rate, do not show month in progress
and not (lower(metric) like '%churn rate%' and is_current_month = 1)