Commit graph

1822 commits

Author SHA1 Message Date
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
Pablo Martin
184ea4dec5 rename prd_pointer 2025-04-04 15:30:26 +02:00
Pablo Martin
8ea3f0b6a2 testing adjustmets 2025-04-04 14:46:31 +02: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
9cb3b9d1dc Fixed schema 2025-04-03 16:27:39 +02:00
Joaquin
87cd8e1ae4 fixed schema 2025-04-03 16:26:46 +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
Pablo Martin
901d39a045 change fetch size 2025-04-03 13:50:42 +02:00
Oriol Roqué Paniagua
a14de4fe3a Merged PR 4894: Refactor growth score by deal to stop depending on cross models
# Description

Starting 2nd stage of the refactor so Account Managers stops depending on int_monthly_aggregated_metrics_history_by_deal.

This has been tested with the audit and the differences only happen with the rank of cases that are equal (ex: there's 2 deals with 0 revenue, then who is the 1st and the 2nd is random).

There are other possibilities of refactoring here (including hubspot deals info in int_kpis__dimension_deals, for instance) but I feel like this is a separated line of work if we want to.

# 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 07:06:49 +00:00
Oriol Roqué Paniagua
5f92cf8948 Merged PR 4898: Small adaptations to KPIs Outlier detector test
# Description

Changes:
* If metric is null don't compute test.
* Use 1 year data to compare against.
* For debugging purposes, compute also the amount of days used in the comparison.

The metric is not null is a necessary feature to avoid raising errors while there's no Host Resolutions in month. Keep in mind the test will keep failing and this is EXPECTED because of a massive increase in New Listings:
![image.png](https://guardhog.visualstudio.com/4148d95f-4b6d-4205-bcff-e9c8e0d2ca65/_apis/git/repositories/54ac356f-aad7-46d2-b62c-e8c5b3bb8ebf/pullRequests/4898/attachments/image.png)

# Checklist

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

If metric is null don't compute test. 1y data to compare against.
2025-04-03 07:04:35 +00:00
uri
80f14c7b72 Refactor growth score by deal to stop depending on cross models 2025-04-02 16:57:19 +02:00
Pablo Martin
913f001465 add file inventory 2025-04-02 16:10:12 +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
Pablo Martin
38ee399156 more stuff in readme 2025-04-02 15:56:34 +02:00
Pablo Martin
db0d97d2e8 wip 2025-04-02 15:56:34 +02:00
Pablo Martín
4bef83f432 Merged PR 4888: Add FDW sync step
# Description

Changes the PR pipeline so that it syncs the FDW schemas.
2025-04-02 13:24:52 +00:00
Pablo Martin
b17e2a22ac add fdw sync step 2025-04-02 15:02:02 +02:00
Joaquin Ossa
ced7373fa9 Merged PR 4865: New dash created bookings models
# Description

New kpis model for created bookings in new dash.
I also correctly updated the joins in `int_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.
2025-04-02 12:30:02 +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
Oriol Roqué Paniagua
57626f266a Merged PR 4864: Removes incrementality in booking view to service
# Description

Removes incrementality in booking view to service

# Checklist

- [X] The edited models and dependants run properly with production data.
- [ ] 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

- [X] Check if a full-refresh is required after this PR is merged.
2025-04-01 06:51:40 +00:00
Joaquin Ossa
c6d8e10dd5 Merged PR 4852: removed test of not_null
# Description

Removing not_null test for `booking_source`

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

removed test of not_null
2025-03-31 10:40:48 +00:00
Joaquin
b4a4925bc1 removed test of not_null 2025-03-31 12:10:26 +02:00
Pablo Martin
b709938d71 remove unnecessary steps of master CI pipeline 2025-03-28 15:51:58 +01:00
Joaquin Ossa
e844762c23 Merged PR 4839: Fixed weekly and monthly granularity
# Description

Fixed weekly and monthly granularity where previously I wasn't filtering `end_of_week` or `end_of_month` dates for these granularities

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

Fixed weekly and monthly granularity

Related work items: #28640
2025-03-28 11:02:23 +00: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 Ossa
14f44e6949 Merged PR 4825: New_dash_agg_metrics update
# Description

Added deals and listings to New Dash metrics model

# 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.
- [ ] I've picked the right materialization for the affected models.

# Other

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

Commit wip test

Related work items: #28640
2025-03-27 16:57:14 +00:00