Commit graph

987 commits

Author SHA1 Message Date
Oriol Roqué Paniagua
a67e3f46ba Merged PR 4948: Reporting model for mtd aggregated metrics by deal
# Description

Creates a new model for reporting. It includes any relevant metric at Deal level in a similar format as we do for `mtd_aggregated_metrics`. Additionally, there's few Deal attributes - from Hubspot, segmentations, lifecycles, etc.

In order to dynamically choose which metrics are relevant on a Deal level, I modified the configuration in `int_mtd_aggregated_metrics` so the extraction is under control.

# 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. **Worth discussing the possibilities to include indexes in the future**

# Other

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

Related work items: #28998
2025-04-08 10:04:11 +00:00
Oriol Roqué Paniagua
ca5db795a3 Merged PR 4946: Allows By Deal dimension to be propagated within intermediate
# Description

To be able to compute By Deal KPIs  similarly as we do for Main KPIs we need to propagate the "By Deal" dimension first in intermediate. This does not impact reporting since there's a macro that already cuts the dimensions to be displayed, but I modified the name so it's clearer.

Changes:
* In `int_mtd_vs_previous_year_metrics`, I added a new `dimension_list`. This is applied to all initial CTEs that filter by dimension. Note that I added here the `by_deal` dimension.
* Modified the name of `get_kpi_dimensions_for_production` to `get_main_kpis_dimensions_for_production`. Now it's more explicit that this is the configuration for Main KPIs reporting. This affects both `business_kpis_configuration` and it's usage in `mtd_aggregated_metrics`.
* Modified the tests in `int_mtd_vs_previous_year_metrics` and `int_mtd_aggregated_metrics` to include the new dimension `by_deal`.
* It seems by adding this now autoformatting works again on this model! I'll tag all cases that are just because of autoformatting.

MD5 trick has been applied in `reporting.mtd_aggregated_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: #28998
2025-04-08 05:37:53 +00:00
Oriol Roqué Paniagua
17f38b2106 Merged PR 4942: KPIs Refactor Stage 4 - Remove old onboarding mrr models
# Description

Removes old onboarding mrr models, that are no longer used.

dbt compiles correctly and no deprecated warning is showing anymore.

This finishes the refactor

Related work items: #28949
2025-04-07 14:30:08 +00:00
Oriol Roqué Paniagua
34ac83b3ec Merged PR 4941: KPIs refactor Stage 4: Switch onboarding MRR to new KPIs model
# Description

Puts in production the new KPIs model for Onboarding MRR.

The change has been validated with MD5 trick.

# 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: #28949
2025-04-07 14:07:00 +00:00
Oriol Roqué Paniagua
dc8eee7128 Merged PR 4935: KPIs Refactor Stage 4 - Onboarding MRR model in KPIs
# Description

Creates a single model in KPIs, aggregated by dimension/dimension value, in a monthly basis; named: `int_kpis__agg_monthly_onboarding_mrr`.

Attention! This substitutes both current models, namely `int_monthly_onboarding_mrr_per_deal` and `int_mtd_agg_onboarding_mrr_revenue`. However, both models are currently used to retrieve data for Main KPIs. I just combined both into one, so it will simplify also the gathering of data later on.

Note that this model is special in the sense that the onboarding mrr per deal is computed for global, listing segmentation and billing country dimensions; while the total onboarding mrr is only done for global and listing segmentation (as it's based on the number of listings segmentation for the total compute).

This has been tested with dbt audit helper and md5. This has been a bit more complex since it's comparing 1 new model vs 2 existing models. For reference, this is the md5 comparison used:

```
SELECT md5(array_agg(md5((t1.*)::varchar))::varchar)
  FROM (
        SELECT
        	mrr.date,
        	mrr.dimension,
        	mrr.dimension_value,
        	mrr.expected_mrr_per_deal,
        	total.number_of_new_deals,
        	total.expected_mrr as total_expected_mrr
          FROM intermediate.int_monthly_onboarding_mrr_per_deal mrr
          left join intermediate.int_mtd_agg_onboarding_mrr_revenue total
          on mrr.date = total.date
          and mrr.dimension = total.dimension
          and mrr.dimension_value = total.dimension_value
         ORDER BY date, dimension, dimension_value
       ) AS t1
union all
SELECT md5(array_agg(md5((t2.*)::varchar))::varchar)
  FROM (
        SELECT *
          FROM intermediate.int_kpis__agg_monthly_onboarding_mrr
         ORDER BY date, dimension, dimension_value
       ) AS t2
```

# 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: #27120, #28949
2025-04-07 12:27:28 +00:00
Oriol Roqué Paniagua
446bd7f7d3 Merged PR 4932: KPIs Refactor Stage 4 - Tag Onboarding MRR models as deprecated
# Description

Tags as deprecated the following models:
* `int_monthly_onboarding_mrr_per_deal`
* `int_mtd_agg_onboarding_mrr_revenue`

Project compiles.

Related work items: #28949
2025-04-07 06:47:40 +00:00
Oriol Roqué Paniagua
63aebf4220 Merged PR 4931: KPIs Refactor Stage 3 - Remove previous Churn models
# Description

Removes the models:
* int_monthly_12m_window_contribution_by_deal
* int_monthly_churn_metrics

as well as their entries in the schema files.

Project compiles and KPIs run works.

This closes stage 3 of the refactor.

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

Remove previous Churn models

Related work items: #28948
2025-04-07 06:41:07 +00:00
Oriol Roqué Paniagua
4b9babf6b4 Merged PR 4928: KPIs Refactor Stage 3 - Expose Churn from KPIs
# Description

Small but important change.

Churn metrics will be propagated in production by sourcing intermediate/kpis rather than the cross models.

# 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: #28948
2025-04-04 14:49:43 +00:00
Oriol Roqué Paniagua
e8a2fb1ae5 Merged PR 4926: KPIs Refactor Stage 3 - Creates dedicated Churn model in KPIs
# Description

Creates a new model in intermediate/kpis called `int_kpis__agg_monthly_churn_contribution`. This follows the convention (aggregated = by dimension and dimension value) and monthly (1 dimension value per dimension per date where date is unique in month).

This single model aims to substitute, in the future, the 2 churn models simultaneously:
* `int_monthly_12m_window_contribution_by_deal`
* `int_monthly_churn_metrics`

Main changes:
* There's no longer a dependency with `int_monthly_aggregated_metrics_history_by_deal`. Rather, it gets the metrics and dimensions from wherever needed and nothing else.
* I also took the opportunity to clean any code that was not needed after combining both models, resulting in dropping a whole CTE.
* Updated schema description for clarification purposes.

The output of the new model is identical to the 2nd model, `int_monthly_churn_metrics`, confirmed with the md5 trick. Model runs in 1.45 seconds in my laptop so no performance issue (it's technically faster than running the 2 current models which is around 6.3 seconds but whatever).

Note that this has NO effect yet on production. The switch 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.
- [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: #28948
2025-04-04 14:02:32 +00:00
Oriol Roqué Paniagua
0bf8cac41a Merged PR 4918: Adds Integration Type from Hubspot Deals
# Description

Extracts Integration Type (OSL, PMS, AutoHost, other API stuff) from Hubspot Deals.

This is needed for the categorisation of Deals in the scope of Old Dash to New Dash migration.

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

Related work items: #28987
2025-04-04 08:40:38 +00:00
Joaquin Ossa
0cec376e49 Merged PR 4912: Update to listing count in new dash overview
# Description

According to our previous conversation, modified the values for active listings and how they will be shown on the report's funnel.
_This changes will crash the report for now, I was thinking on adding a **work in progress** warning to both Overview and User Details tab in the meantime. After this the report should be soon ready_
Now we are going to have:
- **total_listings**
- **total_active_listings**
- **total_active_listings_with_active_product_bundle**
- **total_active_listings_with_active_product_bundle_with_paid_service**

![image.png](https://guardhog.visualstudio.com/4148d95f-4b6d-4205-bcff-e9c8e0d2ca65/_apis/git/repositories/54ac356f-aad7-46d2-b62c-e8c5b3bb8ebf/pullRequests/4912/attachments/image.png)

Also fixed an aggregation mishap I had with the created bookings aggregated models

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

Update to listing count in new dash overview

Related work items: #28640
2025-04-04 07:07:24 +00:00
Oriol Roqué Paniagua
5a5bdd82d5 Merged PR 4916: Deprecation of Churn Models
# Description

Churn models being tagged as deprecated for next week, for information.

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

Deprecation of Churn Models

Related work items: #28948
2025-04-03 15:58:44 +00:00
Joaquin
82d6870aba Fixed weekly model 2025-04-03 17:44:09 +02:00
Joaquin
2637d68398 Addressed comments 2025-04-03 16:23:58 +02:00
Joaquin
82829db3d2 Update to listing count in new dash overview 2025-04-03 16:00:43 +02:00
Oriol Roqué Paniagua
f6d25f681f Merged PR 4907: KPIs Refactor Stage 2 - Decouple AM - Churn/Account Margin
# Description

Decouples Churn/Account Margin model of `int_monthly_aggregated_metrics_history_by_deal_by_time_window` from the model `int_monthly_aggregated_metrics_history_by_deal`.

Changes:
* Removes dependency and reads from KPIs models.
* Removes unused deal stage variable
* Jinja template for time windows with dynamic selection to DRY

This has been tested with dbt audit tools and the md5 for pure refactoring, so output is exactly the same.

# 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: #28947
2025-04-03 13:00:04 +00:00
uri
80f14c7b72 Refactor growth score by deal to stop depending on cross models 2025-04-02 16:57:19 +02:00
Oriol Roqué Paniagua
0fd9b2ce06 Merged PR 4887: Adds audit helper + finishes KPIs Refactor Stage 1
# Description

Adds audit helper.
Removes computation of Total and Retained Revenue from cross models.

I've tested audit helper and the trick with the hashes, as discussed in the demo.

# 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. **Except for today's outlier detector!**
- [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: #28946
2025-04-02 14:03:33 +00:00
Joaquin
4c011d7063 Changed loop 2025-04-02 12:55:04 +02:00
Joaquin
e8da311463 Readded schema 2025-04-02 12:07:39 +02:00
Joaquin
ab179577b1 removed macro and kept all logic inside the model 2025-04-02 12:05:01 +02:00
Joaquin
78e2474a87 Update reporting model 2025-04-02 12:05:01 +02:00
Joaquin
60dfae5cf4 Addressed comments 2025-04-02 12:04:26 +02:00
Joaquin
264ce4e203 Fixed model aggregations 2025-04-02 12:04:26 +02:00
Joaquin
2a797ce0e8 New dash bookings agg models 2025-04-02 12:04:26 +02:00
Joaquin
fb2b2def52 New created bookings with services model 2025-04-02 12:04:26 +02:00
Oriol Roqué Paniagua
ce723b335e Merged PR 4878: Adds Monthly/MTD and Aggregated/Metric models for Total and Retained Revenue
# Description

Adds 4 models for Total and Retained Revenue:
* 2 Metric models on Monthly and MTD
* 2 Aggregated models on Monthly and MTD

This follows the standard for KPIs. First manual checks vs data look ok, although I'll run the proper test analysis with the dbt audit tool in the next PR when merging into the current production tables.

# 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: #28946
2025-04-02 08:53:49 +00:00
Oriol Roqué Paniagua
0b75afbe39 Merged PR 4882: Fix Business Targets
# Description

Fixes Blank stuff

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

Fix Business Targets

Related work items: #28958
2025-04-02 07:32:11 +00:00
uri
547069ede0 Adds Monthly/MTD and Aggregated/Metric models for Total and Retained Revenue 2025-04-01 17:41:56 +02:00
Joaquin Ossa
7a09fd344d Merged PR 4875: Adding total_listings_with_active_product_bundle_with_paid_service
# Description

Adding total_listings_with_active_product_bundle_with_paid_service which weirdly enough it was already on the schemas but not in the model.
This is the same value that's going to be displayed on the new offered services tab

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

Adding total_listings_with_active_product_bundle_with_paid_service

Related work items: #28640
2025-04-01 14:04:32 +00:00
Oriol Roqué Paniagua
adcb8d2231 Merged PR 4874: Daily model for Total and Retained Revenue
# Description

Daily model for Total and Retained Revenue metrics.

I opted for keeping both Total Revenue alongside of Revenue Retained and Revenue Retained Post-Resolutions within the same model.

Please, verify that you're happy with the naming of `total_and_retained_revenue`, before continuing with the usual monthly/mtd metric/aggregated models.

# 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: #28946
2025-04-01 13:44:30 +00:00
Joaquin
9750fa9e14 Adding total_listings_with_active_product_bundle_with_paid_service 2025-04-01 15:37:41 +02:00
Joaquin
b4a4925bc1 removed test of not_null 2025-03-31 12:10:26 +02:00
Joaquin
454d7648f6 Fixed weekly and monthly granularity 2025-03-28 11:53:32 +01:00
Joaquin Ossa
e4fb1af349 Merged PR 4833: Added current deal lifecycle to new dash overview
# Description

Added current deal lifecycle to new dash overview

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

Added current deal lifecycle to new dash overview

Related work items: #28873
2025-03-28 08:20:58 +00:00
Joaquin
b138e0c626 Added boolean 2025-03-28 09:02:12 +01:00
Joaquin
3833f3e92d Added current deal lifecycle to new dash overview 2025-03-27 17:56:36 +01:00
Joaquin
7696585a6b third fix 2025-03-27 16:41:11 +01:00
Joaquin
684c233ff9 second fix 2025-03-27 16:30:22 +01:00
Joaquin
d353e852cd Fixing model 2025-03-27 14:38:53 +01:00
Joaquin
c902ae2dff Commit wip test 2025-03-27 14:27:38 +01:00
Joaquin
6287b57171 Addressed comments 2025-03-27 12:31:52 +01:00
Joaquin
83dd419e19 Aggregated models 2025-03-27 11:40:08 +01:00
Joaquin
9d99fd6088 commit wip 2025-03-27 11:37:15 +01:00
Joaquin
6dcc32b907 Commit wip 2025-03-27 11:37:15 +01:00
Joaquin
d0bc64b868 commit wip 2025-03-27 11:37:15 +01:00
Joaquin
2e984aa61b fixed tests 2025-03-27 11:37:15 +01:00
Joaquin
18988eadde Committing for testing 2025-03-27 11:37:15 +01:00
Joaquin
c60bfc6ccb Addressed comments 2025-03-27 11:24:17 +01:00
Joaquin
3f08229256 New Dash Listings with services 2025-03-26 17:01:23 +01:00