{% set min_date = "2022-01-01" %} {% set dimensions = ("global", "by_billing_country") %} -- "by_number_of_listings" excluded on purpose - there's differences because of daily -- segmentation with new_mtd_completed_guest_journeys as ( select end_date as date, dimension, dimension_value, completed_guest_journeys from {{ ref("int_kpis__aggregated_mtd_completed_guest_journeys") }} where end_date >= '{{ min_date }}' and dimension in {{ dimensions }} and dimension_value <> 'UNSET' ), new_monthly_completed_guest_journeys as ( select end_date as date, dimension, dimension_value, completed_guest_journeys from {{ ref("int_kpis__aggregated_monthly_completed_guest_journeys") }} where end_date >= '{{ min_date }}' and dimension in {{ dimensions }} and dimension_value <> 'UNSET' ), new_completed_guest_journeys as ( select * from new_mtd_completed_guest_journeys union all select * from new_monthly_completed_guest_journeys ), old_completed_guest_journeys as ( select date, dimension, dimension_value, completed_guest_journeys from {{ ref("int_core__mtd_guest_journey_metrics") }} where date >= '{{ min_date }}' and dimension in {{ dimensions }} ), comparison as ( select coalesce(o.date, n.date) as date, coalesce(o.dimension, n.dimension) as dimension, coalesce(o.dimension_value, n.dimension_value) as dimension_value, o.completed_guest_journeys as old_completed_guest_journeys, n.completed_guest_journeys as new_completed_guest_journeys, coalesce(o.completed_guest_journeys, 0) - coalesce(n.completed_guest_journeys, 0) as diff from old_completed_guest_journeys o full outer join new_completed_guest_journeys n on o.date = n.date and o.dimension = n.dimension and o.dimension_value = n.dimension_value ) select * from comparison where diff <> 0 order by date desc, abs(diff) desc