Merged PR 4060: New fields to int_kpis__dimension_deals
# Description As suggestedin the previous PR, I'm adding new fields from HubSpot to the `int_kpis__dimension_deals`. This includes starting date and month, cancellation date and month and segmentation by number of properties # 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: #26223
This commit is contained in:
commit
ae4f656d54
2 changed files with 62 additions and 3 deletions
|
|
@ -1,7 +1,24 @@
|
||||||
{{ config(materialized="table", unique_key="id_deal") }}
|
{{ config(materialized="table", unique_key="id_deal") }}
|
||||||
with
|
with
|
||||||
hubspot_deals as (
|
hubspot_deals as (
|
||||||
select id_deal, deal_name as main_deal_name, live_date_utc as deal_start_date
|
select
|
||||||
|
id_deal,
|
||||||
|
deal_name as main_deal_name,
|
||||||
|
live_date_utc as deal_start_date,
|
||||||
|
date_trunc('month', live_date_utc) as deal_start_month,
|
||||||
|
cancellation_date_utc as deal_cancellation_date,
|
||||||
|
date_trunc('month', cancellation_date_utc) as deal_cancellation_month,
|
||||||
|
case
|
||||||
|
when amount_of_properties between 1 and 5
|
||||||
|
then '01-05'
|
||||||
|
when amount_of_properties between 6 and 20
|
||||||
|
then '06-20'
|
||||||
|
when amount_of_properties between 21 and 60
|
||||||
|
then '21-60'
|
||||||
|
when amount_of_properties >= 61
|
||||||
|
then '61+'
|
||||||
|
else 'UNSET'
|
||||||
|
end as hubspot_listing_segmentation
|
||||||
from {{ ref("int_hubspot__deal") }}
|
from {{ ref("int_hubspot__deal") }}
|
||||||
where live_date_utc is not null
|
where live_date_utc is not null
|
||||||
),
|
),
|
||||||
|
|
@ -10,6 +27,7 @@ with
|
||||||
id_deal,
|
id_deal,
|
||||||
main_deal_name,
|
main_deal_name,
|
||||||
first_created_date_utc as deal_start_date,
|
first_created_date_utc as deal_start_date,
|
||||||
|
date_trunc('month', first_created_date_utc) as deal_start_month,
|
||||||
main_billing_country_iso_3_per_deal
|
main_billing_country_iso_3_per_deal
|
||||||
from {{ ref("int_core__deal") }}
|
from {{ ref("int_core__deal") }}
|
||||||
),
|
),
|
||||||
|
|
@ -39,7 +57,13 @@ with
|
||||||
cd.main_billing_country_iso_3_per_deal,
|
cd.main_billing_country_iso_3_per_deal,
|
||||||
min(
|
min(
|
||||||
coalesce(hd.deal_start_date, cd.deal_start_date)
|
coalesce(hd.deal_start_date, cd.deal_start_date)
|
||||||
) as effective_deal_start_date_utc
|
) as effective_deal_start_date_utc,
|
||||||
|
min(
|
||||||
|
coalesce(hd.deal_start_month, cd.deal_start_month)
|
||||||
|
) as effective_deal_start_month,
|
||||||
|
min(hd.deal_cancellation_date) as hubspot_deal_cancellation_date_utc,
|
||||||
|
min(hd.deal_cancellation_month) as hubspot_deal_cancellation_month,
|
||||||
|
min(hd.hubspot_listing_segmentation) as hubspot_listing_segmentation
|
||||||
from hubspot_deals hd
|
from hubspot_deals hd
|
||||||
full outer join core_deals cd on hd.id_deal = cd.id_deal
|
full outer join core_deals cd on hd.id_deal = cd.id_deal
|
||||||
group by 1, 2, 3
|
group by 1, 2, 3
|
||||||
|
|
@ -52,6 +76,10 @@ select
|
||||||
end as has_active_pms,
|
end as has_active_pms,
|
||||||
ipd.distinct_active_pms as active_pms_list,
|
ipd.distinct_active_pms as active_pms_list,
|
||||||
cd.main_billing_country_iso_3_per_deal,
|
cd.main_billing_country_iso_3_per_deal,
|
||||||
cd.effective_deal_start_date_utc
|
cd.effective_deal_start_date_utc,
|
||||||
|
cd.effective_deal_start_month,
|
||||||
|
cd.hubspot_deal_cancellation_date_utc,
|
||||||
|
cd.hubspot_deal_cancellation_month,
|
||||||
|
cd.hubspot_listing_segmentation
|
||||||
from combined_deals cd
|
from combined_deals cd
|
||||||
left join integrations_per_deal ipd on cd.id_deal = ipd.id_deal
|
left join integrations_per_deal ipd on cd.id_deal = ipd.id_deal
|
||||||
|
|
|
||||||
|
|
@ -475,6 +475,37 @@ models:
|
||||||
host has been created according to Core.
|
host has been created according to Core.
|
||||||
data_tests:
|
data_tests:
|
||||||
- not_null
|
- not_null
|
||||||
|
- name: effective_deal_start_month
|
||||||
|
data_type: date
|
||||||
|
description: |
|
||||||
|
This field represents the first day of the month of the effective
|
||||||
|
start date of the deal. This is obtained by truncating the effective
|
||||||
|
deal start date to the month.
|
||||||
|
data_tests:
|
||||||
|
- not_null
|
||||||
|
- name: hubspot_deal_cancellation_date_utc
|
||||||
|
data_type: date
|
||||||
|
description: |
|
||||||
|
Effective date at which the deal cancelled it's partnership with Superhog.
|
||||||
|
- name: hubspot_deal_cancellation_month
|
||||||
|
data_type: date
|
||||||
|
description: |
|
||||||
|
This field represents the first day of the month of the cancellation date
|
||||||
|
of the deal. This is obtained by truncating the cancellation deal date
|
||||||
|
to the month.
|
||||||
|
- name: hubspot_listing_segmentation
|
||||||
|
data_type: integer
|
||||||
|
description: |
|
||||||
|
Segment value based on the number of properties managed by the deal
|
||||||
|
according to what was set in HubSpot.
|
||||||
|
data_tests:
|
||||||
|
- accepted_values:
|
||||||
|
values:
|
||||||
|
- "01-05"
|
||||||
|
- "06-20"
|
||||||
|
- "21-60"
|
||||||
|
- "61+"
|
||||||
|
- "UNSET"
|
||||||
|
|
||||||
- name: int_kpis__dimension_daily_accommodation
|
- name: int_kpis__dimension_daily_accommodation
|
||||||
description: |
|
description: |
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue