Commit graph

101 commits

Author SHA1 Message Date
Joaquin Ossa
7717ce3c53 Added billing_country 2024-11-26 12:36:54 +01:00
Oriol Roqué Paniagua
2251a45540 Merged PR 3654: New Dash KPIs - Chargeable Services (Revenue)
# Description

This PR aims to do 2 things:

1. Create the first metric daily model for New Dash - Chargeable Services
* PK at Booking, Date and Service. I added a few more dimensions such as Accommodation and Business Type. The idea is that while Daily Unique Bookings/Accommodations Charged will be close (if not the same) as Charged Services, by having the ID we can compute Monthly/Weekly Unique Bookings/Accommodations Charged in a proper manner. Besides this, we would still compute additive metrics in the future such as the sum of Charged Services and the sum of Service Total Price in GBP.
* `IMPORTANT`: as discussed in the daily, I changed New Pricing models containing "Charged" columns to "Chargeable". This affects the new model for New Dash KPIs, but also `int_core__booking_summary` and `int_core__booking_service_detail`.

2. Small fixes on New Dash - Created Services.
* Mainly, there were some inconsistencies with what was actually written (and really applied) in the schema entry as for what was the PK of the model vs. what was stated in the model. I just re-ordered the columns and re-specified correctly the PK.

# 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
2024-11-26 10:14:37 +00:00
Joaquin Ossa
0f5eb5fba2 Addressed comments 2024-11-26 10:16:08 +01:00
Oriol Roqué Paniagua
b0bed479c7 Merged PR 3625: Excludes new dash users without id deal
# Description

This PR has 2 commits:
- The first one handles the removal from the computation any user that has not an id deal properly set. I just created a boolean field in int_core__user_host that identifies if the host has no id_deal. Then apply the new condition in the 2 main usages of New Dash info.
- The second one cleans New Dash KPIs. Since we do not have anymore users without deals, it means that the identification of the host/account is going to be exactly the same if done by id_user_host or id_deal. I hated having id_user_host in KPIs so I've removed it :)

Lastly, this should speed up massively the execution. Not because there's improvements on the code but rather the reduction of data.

# 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
2024-11-21 16:30:47 +00:00
Oriol Roqué Paniagua
2e7c85d11b Merged PR 3616: Compute weekly new dash created services
# Description

Changes:
* Fixes weekly dates for KPIs. Before, joins were not working (but nothing was really used).
* Computes weekly new dash created services and exposes it to reporting

# 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.
- [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
2024-11-21 11:30:36 +00:00
Joaquin Ossa
77cfd36571 Removed guest metrics aggregated models 2024-11-21 09:14:37 +01:00
Oriol Roqué Paniagua
86c81c1f21 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
2024-11-20 09:43:30 +00:00
Joaquin Ossa
220e96749c Add week number to model 2024-11-18 11:23:25 +01:00
Joaquin Ossa
b2e9a3e0da Merged PR 3476: daily model for guest products
# Description

Replacement PR from the abandondes one for daily metrics for guest KPI 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.

daily model for guest products

Related work items: #23371
2024-11-12 07:50:45 +00:00
Oriol Roqué Paniagua
9ba0edb82d Merged PR 3482: Adapts date dimension skeleton for Main KPIs
# Description

New model:
* int_kpis__agg_dates_main_kpis - Serves as the skeleton of dates and dimensions for Main KPIs. It's aggregated since it follows a similar aggregation strategy. It's a single model to feed both Main KPIs visualisations. Note boolean fields are real booleans (true/false) while before these were integers (1/0). This also affects downstream models.

Main KPIs flow adaptations to new skeleton model:
* int_monthly_aggregated_metrics_history_by_deal
* int_monthly_churn_metrics - additionally, calls usual KPIs macro instead of old one
* int_mtd_vs_previous_year_metrics

Reporting changes to ensure report is not down:
* mtd_aggregated_metrics - adaptations on booleans (true-1, false-0)

Cleaning:
* get_kpi_dimensions macro is no longer used
* int_dates_by_deal model and schema entry
* int_dates_mtd_by_dimension model and schema entry
* int_dates_mtd model and schema entry

# 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: #23763
2024-11-11 15:57:37 +00:00
Joaquin Ossa
88083fc846 Addressed comments 2024-11-11 16:22:13 +01:00
Joaquin Ossa
eec21fe5da Commit saved model 2024-11-09 15:21:20 +01:00
Joaquin Ossa
98ba74481a daily model for guest products 2024-11-08 15:25:11 +01:00
Oriol Roqué Paniagua
335ba9a29b Merged PR 3461: Creates models for listing metrics
# Description

Adds listing metrics model. It's a bit similar as the Deal metrics, but here we can aggregate by deal :)

I'm aware that int_kpis__metric_daily_listings takes quite a bit (3 min). To be optimised later on.

# 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: #23567
2024-11-07 16:56:43 +00:00
Joaquin Ossa
11e1804db0 mtd and weekly agg guest payments 2024-11-07 12:15:52 +01:00
Joaquin Ossa
c89c72aace commit agg_monthly_guest_payments 2024-11-07 12:09:20 +01:00
Joaquin Ossa
cf553cfcb1 monthly and weekly metric models 2024-11-07 12:06:37 +01:00
Oriol Roqué Paniagua
8c23f91242 Merged PR 3451: Adds Deal Daily Lifecycle and metrics
# Description

Changes:
* Creates lifecycle_daily_deal, metric_daily_deals and agg_daily_deals. These follow a different strategy due to the nature of the metrics
* Modifies the dimension macro to ensure deal dimension is included in all models except these ones
* Fixes production issue on currently deployed deal lifecycle and 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: #23566
2024-11-07 10:49:06 +00:00
Joaquin Ossa
f33bc3a2ca removed new metrics 2024-11-06 16:24:57 +01:00
Joaquin Ossa
b9968c7a72 added new metrics for not cancelled bookings 2024-11-06 12:34:52 +01:00
Joaquin Ossa
51fabf9efb Changed test 2024-11-06 11:47:47 +01:00
Joaquin Ossa
50b87c9d8f Revert "Merged PR 3430: Weekly aggregated guest journey metrics
# 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.

Related work items: #23373"
2024-11-06 10:25:04 +00:00
Joaquin Ossa
60204b53e8 Merged PR 3430: Weekly aggregated guest journey metrics
# 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.

Related work items: #23373
2024-11-06 10:17:46 +00:00
Joaquin Ossa
4a2c478d8f update schema 2024-11-06 11:11:06 +01:00
Joaquin
079eaac870 Update invoice models 2024-11-06 08:35:30 +01:00
Joaquin
ca510f91a7 update assert_dimension_completeness test 2024-11-06 08:29:02 +01:00
Oriol Roqué Paniagua
f5311fa954 Merged PR 3431: Adds Invoicing metrics
# Description

Same old story: includes all metrics coming from Xero.
Adds a daily model, monthly, mtd + monthly agg and mtd agg
A test to compare values new vs. old
AND fixes the issue I mentioned with the timestamp - an issue in the old KPIs.

# 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.
- [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: #23565
2024-11-05 16:57:23 +00:00
Joaquin
7e786649cc Weekly aggregated model 2024-11-05 16:04:41 +01:00
Joaquin
d8a064fd06 commit wip 2024-11-05 15:50:23 +01:00
Joaquin Ossa
4076f016bd Merged PR 3424: aggregated to agg
# Description

Changed names for all aggregated models to agg, updated all references and schemas.
I did a run and test and everything worked correctly

# 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

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

aggregated to agg
2024-11-05 13:46:45 +00:00
Joaquin
c29a47240f Weekly dimension 2024-11-05 13:28:12 +01:00
Joaquin
092e37d58c aggregated to agg 2024-11-05 12:17:26 +01:00
Joaquin
57bc62b21d Merge branch 'models/23372_csat_guest_kpis' of ssh.dev.azure.com:v3/guardhog/Data/data-dwh-dbt-project into models/23372_csat_guest_kpis
Merge issue
2024-11-05 10:36:33 +01:00
Joaquin
2593632411 final changes 2024-11-05 10:29:50 +01:00
Joaquin
eb8e59f8c5 Addressed comments 2024-11-05 10:29:50 +01:00
Joaquin
ee2cb2e40e CSAT score 2024-11-05 10:29:50 +01:00
Joaquin
84b7f2569c final changes 2024-11-05 10:24:17 +01:00
Oriol Roqué Paniagua
b31a6ba194 Merged PR 3419: Adds Host Resolutions metrics in new KPIs
# Description

Adds 2 new metrics:
- xero_host_resolution_amount_paid_in_gbp
- xero_host_resolution_payment_count

Effectively it will split the "real" invoicing sources of revenue from "host resolution payments". This was already reading from 2 different Xero models (bank transactions vs. sales).

We have as usual:
- 1 Daily metric model
- 2 MTD/Monthly metric model
- 2 MTD/Monthly agg model (I already changed the name to agg instead of aggregated)
- 1 test to compare the values match the current setup

# 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.
- [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: #23565
2024-11-05 07:45:41 +00:00
Joaquin
5d642d2c77 Addressed comments 2024-11-04 18:15:13 +01:00
Joaquin
392006b71c CSAT score 2024-11-04 16:51:24 +01:00
Joaquin
d952613fd3 Fixed names 2024-11-04 15:28:31 +01:00
Joaquin
64c3c6d1f0 Addressed comments 2024-11-04 14:29:26 +01:00
Joaquin
21858d4d59 updated test 2024-11-04 11:05:28 +01:00
Joaquin
7d3d11ea7f modified names 2024-11-02 18:32:38 +01:00
Joaquin
19337a9918 save all guest journey check in attributed models 2024-11-02 11:28:22 +01:00
Joaquin
36a1428b23 Created models for new guest kpis 2024-10-31 16:56:29 +01:00
Oriol Roqué Paniagua
bf2310301a Merged PR 3391: Adds Check-Out, Cancelled and Billable Bookings
# Description

Adds Check-Out, Cancelled and Billable Bookings in the new KPI flow.

For each of these metrics, it includes:
* Daily model
* Monthly/MTD without dimension aggregates
* Monthly/MTD with dimension aggregates
* Schema entries for the abovementioned 5 models
* Temporary test to compare the different metrics against current production KPIs

I also implemented a quick performance fix that removes the dependency of Billable Bookings from Booking Charge Events, since Bookings table already contains the needed information.

# 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.
- [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: #23454
2024-10-31 14:31:19 +00:00
Oriol Roqué Paniagua
3ecbcb2c49 Merged PR 3387: Adds Guest Payments metrics
# Description

Adds Guest Payments metrics, namely:
* deposit_fees_in_gbp
* waiver_payments_in_gbp
* checkin_cover_fees_in_gbp
* total_guest_payments_in_gbp

It includes:
* Daily model
* Monthly/MTD without dimension aggregates
* Monthly/MTD with dimension aggregates
* Schema entries for the abovementioned 5 models
* Temporary test to compare the different metrics against current production KPIs

# 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.
- [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: #23453
2024-10-31 09:03:15 +00:00
Oriol Roqué Paniagua
9585b759a4 Merged PR 3385: Adds Guest Journey with Payment metric
# Description

Adds GJ with Payment. It includes:
* Daily model
* Monthly/MTD without dimension aggregates
* Monthly/MTD with dimension aggregates
* Schema entries for the abovementioned 5 models
* Temporary test to compare against current production KPIs

# 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.
- [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: #23453
2024-10-30 16:43:50 +00:00
Oriol Roqué Paniagua
8ddb695947 Merged PR 3377: Adds GJ Created, Started and Completed in new KPIs flow
# Description

Adds GJ Created, Started and Completed.
Each model has:
* A Daily model
* A Monthly/MTD without dimension aggregate
* A Monthly/MTD with dimension aggregate
* A comparison vs. the current flow of KPIs in the form of a test

It's quite similar as for Created Bookings. The main difference is that 1) reads from Verification Requests table and 2) I don't compute a New Dash dimension. This helps actually validating the logic of the dimension configuration macro, which works good.

I confirm that the 3 tests of comparison vs. current data work well in my local - i.e. identical content for Global, Billing Country for these 3 metrics since 2022.

This does not include:
* Guest Journeys with Payment. I'll do this in a separated PR
* Guest Payments/Revenue. I'll do this 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. **Briefly discussed with Pablo, we'll leave it like this for the time being**
- [X] I've picked the right materialization for the affected models. **Runs quite fast**

# Other

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

Related work items: #23453
2024-10-30 11:45:45 +00:00