Commit graph

393 commits

Author SHA1 Message Date
Joaquin Ossa
0d11302a20 commit wip 2025-02-10 17:48:52 +01:00
Joaquin Ossa
b6bc19269d Fixed waiver payment logic 2025-02-10 17:48:52 +01:00
Joaquin Ossa
be6ccbafa7 Payments model for legacy report 2025-02-10 17:48:52 +01:00
Joaquin Ossa
ed696488bf Updated 2025-02-10 14:57:46 +01:00
Joaquin Ossa
e39e17fd21 finished schema 2025-02-10 08:18:11 +01:00
Joaquin Ossa
191f837a69 small fix display_name 2025-02-10 08:14:02 +01:00
Joaquin Ossa
560531aa1e Addressed comments 2025-02-10 08:09:22 +01:00
Joaquin Ossa
25aa153eed Added end_of_time variable 2025-02-07 15:20:22 +01:00
Joaquin Ossa
25a89208c4 Addressed comments 2025-02-07 15:15:17 +01:00
Joaquin Ossa
78e005e8fa New dash service usage model 2025-02-07 12:37:32 +01:00
Joaquin Ossa
1a7579c8a8 Commit wip 2025-02-07 08:34:20 +01:00
Oriol Roqué Paniagua
85fa58f5a9 Merged PR 4287: Bugfix - Ensure exclusion of test account at where condition
# Description

The condition on the left join created some records with null info from user host thus raising errors.
This is now fixed by ensuring these get excluded after the join

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

Related work items: #27319
2025-02-05 15:54:19 +00:00
Joaquin Ossa
45dc52a657 renamed 2025-02-05 16:06:29 +01:00
Joaquin Ossa
083976b6f6 adding number of days to complete verification 2025-02-05 15:31:42 +01:00
Joaquin Ossa
961c4e6fdd Merged PR 4274: Model for Bookings report in Legacy
# Description

New model for bookings report in Legacy
It contains details on bookings, hosts, guests, verification request and selected payment validation (No options since we don't have that 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.

Model for Bookings report in Legacy

Related work items: #27178
2025-02-05 13:22:24 +00:00
Joaquin Ossa
8e76e3e8cc changed name 2025-02-05 14:21:59 +01:00
Joaquin Ossa
fa9622721b added friendly name 2025-02-05 12:41:30 +01:00
Joaquin Ossa
4718990efb fixed reference call 2025-02-05 12:05:24 +01:00
Joaquin Ossa
ff296ec75d Model for Bookings report in Legacy 2025-02-05 11:53:28 +01:00
Oriol Roqué Paniagua
233d2f7590 Merged PR 4271: Adapts test account logic + New Dash exclusion
# Description

Changes:
* Adapts the consideration for a test account in unified_user. Now, if a user domain is superhog.com, truvi.com or guardhog.com these accounts will also be considered as test accounts.
* Excludes test accounts for New Dash reporting in the 3 source models.

KPIs exclusions will be done in a separated PR.

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

Related work items: #27319
2025-02-05 09:51:30 +00:00
Joaquin Ossa
3b6f6eed0a Listings report model 2025-02-03 10:37:25 +01:00
Oriol Roqué Paniagua
6dcfe03b30 Merged PR 4215: Fixes
# Description

Small PR to fix 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.

Fixes

Related work items: #27096
2025-01-29 12:46:53 +00:00
Joaquin Ossa
6141af1eff Merged PR 4076: CIH fees
# Description

Added booking fees for CIH requests and new model of aggregated monthly fee per user

# 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: #26158
2025-01-21 09:27:21 +00:00
Joaquin Ossa
e007b85d87 Addressed comments 2025-01-20 17:18:39 +01:00
Joaquin Ossa
8898a2d150 modified host/deal logic 2025-01-20 16:35:43 +01:00
Joaquin Ossa
5c71791f10 Added PMS info 2025-01-20 14:26:37 +01:00
Joaquin Ossa
28f7486634 Added booking fee and currency to model 2025-01-15 09:00:36 +01:00
Pablo Martin
c3c628aec4 change "tests:" to "data_tests:" 2025-01-13 16:00:35 +01:00
Oriol Roqué Paniagua
0d7b5ac88a Merged PR 3914: Include Hubspot deals for KPIs
# Description

Context: I'm intending to work on Account Managers reporting, that mostly will include reporting at Deal level the Resolutions Payouts as well as the new Retained metrics. While checking the great increase on Resolutions Payouts for October 2024:

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

I decided to take a quick look into the main players... and surprise surprise we have Guesty:

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

So Guesty represents 37k over the 73K of October. 50%. Not bad.

The main issue is that we've been aware for months now (since Churn efforts, mostly) that we're not reporting in KPIs those deals that are NOT created in Core. Most notably, API deals which includes... well, Guesty. So creating this kind of in-depth Account Managers improvement without reporting Guesty I think it would be very misleading. Note that the overall figures (Global dimension) are still accurate, though.

What's new:
* A new model named `int_kpis__dimension_deals` that basically retrieves Deals from both Core (as before) and Hubspot. It combines information from both and mostly assumes Hubspot as a better source of information than Core - although we do not have the Main Billing Country there afaik.
* Propagates changes, mostly in the monthly by deal view of Main KPIs. Here I confirm that now Guesty appears, and it only has metrics that come from Xero (APIs Revenue, Total Revenue, Resolutions, etc)

# 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: #25829
2024-12-31 15:12:38 +00:00
Oriol Roqué Paniagua
d26e08bffd Merged PR 3909: Fixes created_date_utc and updated_date_utc in SH User and its dependencies
# Description

The model `stg_core__superhog_user` contained the fields `created_date_utc` and `updated_date_utc`, which were actually timestamps, not dates. This created issues a while ago in KPIs that were fixed by forcing a date conversion at `int_kpis` level, but the source issue remained unfixed.

This PR just creates the proper fields in staging, meaning:
* `created_at_utc` and `created_date_utc`
* `updated_at_utc` and `updated_date_utc`

And propagates the changes through all dependencies. On KPIs, it also removes the hardcoded date conversion since it's no longer needed. It also adds the different schema entries on which these fields were already defined. Note I didn't update the staging entry since there's no entry for the rest of the fields.

I recommend checking this PR in the commits order.

What I've tested:
* Unified User and User Host have plenty of dependencies that I've checked one by one, at each dependency layer by using dbt docs.
* Run `core__unified_user` and the full execution of +`mtd_aggregated_metrics`

What clearly will fail:
* There's the famous `Users_dashboard` PBI report that shouldn't exist that has a dependency with `core__unified_user`. This report will fail. But it does not exist. I'd like to drop it once and forever

# Checklist

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

- [X] Check if a full-refresh is required after this PR is merged. **The staging model is incremental!**

Related work items: #23703
2024-12-31 08:04:03 +00:00
Oriol Roqué Paniagua
a51ad3dd69 Merged PR 3901: Booking Service Detail improvements
# Description

Modifies Booking Service Detail table (int_core__booking_service_detail) with the following improvements:
- Considers waiver or deposit service offering as Deposit Management service business type instead of Unknown
- Includes Guest Payments (Waivers outside of Waiver PRO, Deposits) as chargeable services
- Computes total price of Waiver PRO multiplying base unit price per number of nights

# 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: #25228
2024-12-27 10:42:47 +00:00
Joaquin Ossa
3b17fa231e Merged PR 3879: Feedback on current process
# Description

Rename changes and adding some necessary fields like `id_currency` to some S&P 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.

Feedback on current process

Related work items: #25360
2024-12-23 09:09:13 +00:00
Joaquin Ossa
10f42d1146 Check in Hero users table 2024-12-20 15:36:00 +01:00
Joaquin Ossa
19d883ccd7 Simplify PR 2024-12-20 14:04:42 +01:00
Joaquin Ossa
3d2477f8f9 Feedback on current process 2024-12-20 14:04:42 +01:00
Oriol Roqué Paniagua
b20b819456 Merged PR 3878: Propagates account type to intermediate
# Description

Propagates account type to intermediate. Also, adds minimal documentation to `int_core__unified_user`.

There's only 54 test accounts in Unified User and 49 that are considered as User Hosts. So it's not, by all means, an extensive list of test accounts...

There's a mismatch between the `created_date_utc` and `updated_date_utc` that these are timestamps. There's another ticket in the backlog to handle this alongside the dependency, so it's not included here.

# 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: #18944
2024-12-19 16:33:35 +00:00
Joaquin Ossa
0cebdcf160 new approach for S&P users data extraction 2024-12-18 11:46:54 +01:00
Joaquin Ossa
4569c5d0da Added the has_user_moved_from_old_dash field 2024-12-13 10:56:56 +01:00
Oriol Roqué Paniagua
c0e6ec2de8 Merged PR 3825: Removing Booking fields soon to be dropped
# Description

Following a communication from Gus, the following fields in Booking table are going to be removed:
* StagingHostBookingId
* AdditionalGuests

This PR aims to remove DWH dependencies.

# Checklist

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

- [X] Check if a full-refresh is required after this PR is merged. **Yes, Booking table in staging is incremental**

Related work items: #25405
2024-12-11 13:06:28 +00:00
Oriol Roqué Paniagua
616b949ba4 Merged PR 3769: Adds int_core__ab_test_monitoring_guest_journey
# Description

Adds a table that contain the main information needed for metric computation at verification request level that is part of an A/B test.

# 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: #25146
2024-12-04 09:45:09 +00:00
Oriol Roqué Paniagua
37c508fa69 Merged PR 3766: First version of ab_test_tracking_guest_journey
# Description

A very simple, clean table to get the records needed for A/B test tracking on GJ side.

The table already removes weird cases that are somehow usual within A/B test configurations, to ensure that the monitoring is as clean (and less biased) as possible.

# 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: #25145
2024-12-04 07:58:14 +00:00
Oriol Roqué Paniagua
896526fe15 Merged PR 3761: Remove no longer existing fields from Accommodation
# Description

This PR aims to properly fix the Accommodation removal of fields that have been dropped today.

# Checklist

- [X] The edited models and dependants run properly with production data.
- [NA] 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: #25199
2024-12-03 16:39:05 +00:00
Pablo Martin
ff2079a0c6 remove fields from docs 2024-11-27 14:47:43 +01:00
Pablo Martin
878e2e81b6 remove fields from int 2024-11-27 14:46:03 +01:00
Pablo Martin
511bef5c9f refactor 2024-11-26 16:05:55 +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
Oriol Roqué Paniagua
b108730903 Merged PR 3653: Adds new role ResolutionApi in accepted values of int_core__user_role
# Description

Adds new role `ResolutionApi` in accepted values of `int_core__user_role`

# 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.
2024-11-26 09:12:09 +00:00
Oriol Roqué Paniagua
28114d645e Merged PR 3646: Adding informative fields in booking tables for New Pricing
# Description

Adds informative fields to New Pricing booking-related tables. These are added into booking_to_service which is a view, and propagated and materialised as table in the `booking_service_detail` and `booking_summary`.

The new fields are:
- Date versions for relevant booking timestamps (Created, Updated, Check-in, Check-out)
- Booking Number of nights
- Ids for the Accommodation and UserProductBundle
- Program Name (aka Product Bundle Name). I dislike the fact that it's named "Product" because you can have Protection Plans in the Program as well... so I opted for a more conventional business-oriented naming, which is Program.

Added a bunch of tests + documentation.

# 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-25 15:03:38 +00:00
Oriol Roqué Paniagua
059c92b345 Merged PR 3638: Propagates billing info to booking service detail and booking summary
# Description

Changes:
* Handles conversion to GBP directly in the models `int_core__product_service_billing_item` and `int_core__protection_plan_billing_item` .
* Adds the newly created field of `is_missing_id_deal` in `int_core__booking_to_service`, to avoid manually computing downstream.
* Computes total price per service in `int_core__booking_service_detail`. Since, technically, the same service can have different billing lines, I also retrieve some min/max charge dates and some booleans to help the identification.
* Computes total price per booking in `int_core__booking_summary`. Since, technically, the same booking can have different services charged in different moments in time, I also retrieve some min/max charge dates. I also computed a very necessary `is_booking_charged` to understand if we're making money or not out of it.

This PR should provide the necessary fields to start computing Revenue for New Dash.
HOWEVER:
1) I still need to handle Guest Payments computation for Waiver/Deposit services. I'll do it in a separated PR.
2) while doing this exercise I noticed that the current data is not good / consistent with what I was expecting in terms of New Pricing documentation. I will check with Dash Squad so it's correctly filled, before reporting fake numbers...

# 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-22 13:50:30 +00:00
Oriol Roqué Paniagua
2ede94370b Merged PR 3633: Creates billing models in intermediate
# Description

Adds Billing models in intermediate. It's mostly the similar content as for the staging counterparts, but providing useful information such as the currency code and service that this billing line refers to. Same as before, two separate models for Protection Plan and Product Service.

# 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-22 10:28:42 +00:00