Merged PR 4374: Ensures KYG lite users are excluded from New and Old Dash
# Description Changes: * **Main change:** exclusion of KYG lite users of the segmentation of Business Scope. These are "freemium" users, kind of demo users, that shouldn't have any real impact in terms of revenue. These are in New Dash, but do not have a deal. The problem is that we don't want to consider them as New Dash, but the current condition was making them appear as Old Dash. This PR fixes this by handling the logic for backend related models. Note that Xero remains unaffected - this is based on Deal, and these users do not have Deal. * Small data quality fix I noticed while debugging KYG lite cases. It's better to use the "is upgraded service" from the staging original tables rather than the one with the prices. If a user does not have a currency (which can be the case for KYG lite users), then the coalesce would tag any service as not upgraded, which is not true. # 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: #27356
This commit is contained in:
parent
db86f75f75
commit
5382a9b32b
8 changed files with 81 additions and 27 deletions
|
|
@ -111,7 +111,7 @@ with
|
|||
psba.last_chargeable_date_utc) as last_chargeable_date_utc,
|
||||
bts.is_missing_host_currency_code as is_missing_currency_code,
|
||||
bts.is_booking_cancelled,
|
||||
(not pstp.is_default_service) as is_upgraded_service
|
||||
(not ps.is_default_service) as is_upgraded_service
|
||||
from int_core__booking_to_service bts
|
||||
inner join
|
||||
stg_core__product_service ps
|
||||
|
|
@ -157,7 +157,7 @@ with
|
|||
ppba.last_chargeable_date_utc,
|
||||
bts.is_missing_host_currency_code as is_missing_currency_code,
|
||||
bts.is_booking_cancelled,
|
||||
(not pptp.is_default_service) as is_upgraded_service
|
||||
(not pp.is_default_service) as is_upgraded_service
|
||||
from int_core__booking_to_service bts
|
||||
inner join
|
||||
stg_core__protection_plan pp
|
||||
|
|
|
|||
|
|
@ -4,7 +4,17 @@ select
|
|||
icb.check_out_date_utc as date,
|
||||
coalesce(icuh.id_deal, 'UNSET') as id_deal,
|
||||
case
|
||||
when icbs.id_booking is not null then 'New Dash' else 'Old Dash'
|
||||
-- New Dash users with a booking and a deal
|
||||
when
|
||||
icbs.id_booking is not null
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
then 'New Dash'
|
||||
-- Old Dash users if there is no booking or the user is not in the new dash
|
||||
when icbs.id_booking is null or icbs.is_user_in_new_dash = false
|
||||
then 'Old Dash'
|
||||
-- Rest of the cases, includes KYG Lite users
|
||||
else 'UNSET'
|
||||
end as business_scope,
|
||||
-- Dimensions --
|
||||
coalesce(
|
||||
|
|
@ -38,9 +48,6 @@ left join
|
|||
on icuh.id_deal = icmas.id_deal
|
||||
and icb.check_out_date_utc = icmas.date
|
||||
left join
|
||||
{{ ref("int_core__booking_summary") }} as icbs
|
||||
on icb.id_booking = icbs.id_booking
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
{{ ref("int_core__booking_summary") }} as icbs on icb.id_booking = icbs.id_booking
|
||||
where icb.is_duplicate_booking = false
|
||||
group by 1, 2, 3, 4, 5
|
||||
|
|
|
|||
|
|
@ -4,7 +4,17 @@ select
|
|||
icvr.verification_estimated_completed_date_utc as date,
|
||||
coalesce(icuh.id_deal, 'UNSET') as id_deal,
|
||||
case
|
||||
when icbs.id_booking is not null then 'New Dash' else 'Old Dash'
|
||||
-- New Dash users with a booking and a deal
|
||||
when
|
||||
icbs.id_booking is not null
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
then 'New Dash'
|
||||
-- Old Dash users if there is no booking or the user is not in the new dash
|
||||
when icbs.id_booking is null or icbs.is_user_in_new_dash = false
|
||||
then 'Old Dash'
|
||||
-- Rest of the cases, includes KYG Lite users
|
||||
else 'UNSET'
|
||||
end as business_scope,
|
||||
-- Dimensions --
|
||||
coalesce(
|
||||
|
|
@ -26,7 +36,5 @@ left join
|
|||
left join
|
||||
{{ ref("int_core__booking_summary") }} as icbs
|
||||
on icvr.id_verification_request = icbs.id_verification_request
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
where icvr.verification_estimated_completed_date_utc is not null
|
||||
group by 1, 2, 3, 4, 5
|
||||
|
|
|
|||
|
|
@ -4,7 +4,17 @@ select
|
|||
icb.created_date_utc as date,
|
||||
coalesce(icuh.id_deal, 'UNSET') as id_deal,
|
||||
case
|
||||
when icbs.id_booking is not null then 'New Dash' else 'Old Dash'
|
||||
-- New Dash users with a booking and a deal
|
||||
when
|
||||
icbs.id_booking is not null
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
then 'New Dash'
|
||||
-- Old Dash users if there is no booking or the user is not in the new dash
|
||||
when icbs.id_booking is null or icbs.is_user_in_new_dash = false
|
||||
then 'Old Dash'
|
||||
-- Rest of the cases, includes KYG Lite users
|
||||
else 'UNSET'
|
||||
end as business_scope,
|
||||
-- Dimensions --
|
||||
coalesce(
|
||||
|
|
@ -38,9 +48,6 @@ left join
|
|||
on icuh.id_deal = icmas.id_deal
|
||||
and icb.created_date_utc = icmas.date
|
||||
left join
|
||||
{{ ref("int_core__booking_summary") }} as icbs
|
||||
on icb.id_booking = icbs.id_booking
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
{{ ref("int_core__booking_summary") }} as icbs on icb.id_booking = icbs.id_booking
|
||||
where icb.is_duplicate_booking = false
|
||||
group by 1, 2, 3, 4, 5
|
||||
|
|
|
|||
|
|
@ -4,7 +4,17 @@ select
|
|||
icvr.created_date_utc as date,
|
||||
coalesce(icuh.id_deal, 'UNSET') as id_deal,
|
||||
case
|
||||
when icbs.id_booking is not null then 'New Dash' else 'Old Dash'
|
||||
-- New Dash users with a booking and a deal
|
||||
when
|
||||
icbs.id_booking is not null
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
then 'New Dash'
|
||||
-- Old Dash users if there is no booking or the user is not in the new dash
|
||||
when icbs.id_booking is null or icbs.is_user_in_new_dash = false
|
||||
then 'Old Dash'
|
||||
-- Rest of the cases, includes KYG Lite users
|
||||
else 'UNSET'
|
||||
end as business_scope,
|
||||
-- Dimensions --
|
||||
coalesce(
|
||||
|
|
@ -26,6 +36,4 @@ left join
|
|||
left join
|
||||
{{ ref("int_core__booking_summary") }} as icbs
|
||||
on icvr.id_verification_request = icbs.id_verification_request
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
group by 1, 2, 3, 4, 5
|
||||
|
|
|
|||
|
|
@ -15,7 +15,17 @@ select
|
|||
p.first_payment_paid_date_utc as date,
|
||||
coalesce(icuh.id_deal, 'UNSET') as id_deal,
|
||||
case
|
||||
when icbs.id_booking is not null then 'New Dash' else 'Old Dash'
|
||||
-- New Dash users with a booking and a deal
|
||||
when
|
||||
icbs.id_booking is not null
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
then 'New Dash'
|
||||
-- Old Dash users if there is no booking or the user is not in the new dash
|
||||
when icbs.id_booking is null or icbs.is_user_in_new_dash = false
|
||||
then 'Old Dash'
|
||||
-- Rest of the cases, includes KYG Lite users
|
||||
else 'UNSET'
|
||||
end as business_scope,
|
||||
-- Dimensions --
|
||||
coalesce(
|
||||
|
|
@ -40,6 +50,4 @@ left join
|
|||
left join
|
||||
{{ ref("int_core__booking_summary") }} as icbs
|
||||
on p.id_verification_request = icbs.id_verification_request
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
group by 1, 2, 3, 4, 5
|
||||
|
|
|
|||
|
|
@ -15,7 +15,17 @@ select
|
|||
icvp.payment_paid_date_utc as date,
|
||||
coalesce(icuh.id_deal, 'UNSET') as id_deal,
|
||||
case
|
||||
when icbs.id_booking is not null then 'New Dash' else 'Old Dash'
|
||||
-- New Dash users with a booking and a deal
|
||||
when
|
||||
icbs.id_booking is not null
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
then 'New Dash'
|
||||
-- Old Dash users if there is no booking or the user is not in the new dash
|
||||
when icbs.id_booking is null or icbs.is_user_in_new_dash = false
|
||||
then 'Old Dash'
|
||||
-- Rest of the cases, includes KYG Lite users
|
||||
else 'UNSET'
|
||||
end as business_scope,
|
||||
case
|
||||
when icv.id_verification is null then 'W/O Id Check' else 'With Id Check'
|
||||
|
|
@ -86,7 +96,5 @@ left join
|
|||
left join
|
||||
{{ ref("int_core__booking_summary") }} as icbs
|
||||
on icvp.id_verification_request = icbs.id_verification_request
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
where upper(icvp.payment_status) = {{ var("paid_payment_state") }}
|
||||
group by 1, 2, 3, 4, 5, 6
|
||||
|
|
|
|||
|
|
@ -4,7 +4,17 @@ select
|
|||
icvr.verification_estimated_started_date_utc as date,
|
||||
coalesce(icuh.id_deal, 'UNSET') as id_deal,
|
||||
case
|
||||
when icbs.id_booking is not null then 'New Dash' else 'Old Dash'
|
||||
-- New Dash users with a booking and a deal
|
||||
when
|
||||
icbs.id_booking is not null
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
then 'New Dash'
|
||||
-- Old Dash users if there is no booking or the user is not in the new dash
|
||||
when icbs.id_booking is null or icbs.is_user_in_new_dash = false
|
||||
then 'Old Dash'
|
||||
-- Rest of the cases, includes KYG Lite users
|
||||
else 'UNSET'
|
||||
end as business_scope,
|
||||
-- Dimensions --
|
||||
coalesce(
|
||||
|
|
@ -26,7 +36,5 @@ left join
|
|||
left join
|
||||
{{ ref("int_core__booking_summary") }} as icbs
|
||||
on icvr.id_verification_request = icbs.id_verification_request
|
||||
and icbs.is_user_in_new_dash = true
|
||||
and icbs.is_missing_id_deal = false
|
||||
where icvr.verification_estimated_started_date_utc is not null
|
||||
group by 1, 2, 3, 4, 5
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue