/* Macro: get_kpi_dimensions_for_production Provides the list of Dimensions that will be available in production for the Main KPIs. It provides a proper display name for reporting purposes. */ {% macro get_kpi_dimensions_for_production() %} {% set dimensions = [ {"dimension": "'global'", "dimension_display": "'Global'"}, { "dimension": "'by_number_of_listings'", "dimension_display": "'By # of Listings'", }, { "dimension": "'by_billing_country'", "dimension_display": "'By Billing Country'", }, { "dimension": "'by_business_scope'", "dimension_display": "'By Business Scope'", }, ] %} {{ return(dimensions) }} {% endmacro %} {% macro capitalise_and_remove_underscores(field_name) %} initcap(regexp_replace({{ field_name }}, '_', ' ', 'g')) {% endmacro %} /* The following lines specify for each dimension the field to be used in a standalone macro. Please note that strings should be encoded with " ' your_value_here ' ", while fields from tables should be specified like " your_field_here " */ {% macro dim_global() %} {{ return({"dimension": "'global'", "dimension_value": "'global'"}) }} {% endmacro %} {% macro dim_billing_country() %} {{ return( { "dimension": "'by_billing_country'", "dimension_value": "main_billing_country_iso_3_per_deal", } ) }} {% endmacro %} {% macro dim_number_of_listings() %} {{ return( { "dimension": "'by_number_of_listings'", "dimension_value": "active_accommodations_per_deal_segmentation", } ) }} {% endmacro %} {% macro dim_deal() %} {{ return({"dimension": "'by_deal'", "dimension_value": "id_deal"}) }} {% endmacro %} {% macro dim_business_scope() %} {{ return( {"dimension": "'by_business_scope'", "dimension_value": "business_scope"} ) }} {% endmacro %} {% macro dim_has_payment() %} {{ return({"dimension": "'by_has_payment'", "dimension_value": "has_payment"}) }} {% endmacro %} {% macro dim_has_id_check() %} {{ return({"dimension": "'by_has_id_check'", "dimension_value": "has_id_check"}) }} {% endmacro %} {% macro dim_has_upgraded_service() %} {{ return( { "dimension": "'by_has_upgraded_service'", "dimension_value": "is_upgraded_service", } ) }} {% endmacro %} {% macro dim_pricing_service() %} {{ return( { "dimension": "'by_service'", "dimension_value": "service_name", } ) }} {% endmacro %} {% macro dim_pricing_business_type() %} {{ return( { "dimension": "'by_service_business_type'", "dimension_value": "service_business_type", } ) }} {% endmacro %} {% macro dim_new_dash_version() %} {{ return( { "dimension": "'by_new_dash_version'", "dimension_value": "new_dash_version", } ) }} {% endmacro %} /* Macro: get_kpi_dimensions_per_model Provides a general assignement for the Dimensions available for each KPI model. Keep in mind that these assignations need to be previously declared. */ {% macro get_kpi_dimensions_per_model(entity_name) %} {# Base dimensions shared by all models #} {% set base_dimensions = [ dim_global(), dim_number_of_listings(), dim_billing_country(), ] %} {# Initialize a list to hold any model-specific dimensions #} {% set additional_dimensions = [] %} {# Adds Deal dimension to all models except DEAL metrics #} {% if entity_name not in ["DEALS", "NEW_DASH_DEALS_OFFERED_SERVICES"] %} {% set additional_dimensions = additional_dimensions + [dim_deal()] %} {% endif %} {# Add entity-specific dimensions #} {% if entity_name in [ "MAIN_KPIS_DATES", "BILLABLE_BOOKINGS", "CHECK_OUT_BOOKINGS", "COMPLETED_GUEST_JOURNEYS", "CREATED_BOOKINGS", "CREATED_GUEST_JOURNEYS", "DEALS", "GUEST_JOURNEYS_WITH_PAYMENT", "GUEST_PAYMENTS", "HOST_RESOLUTIONS", "INVOICED_REVENUE", "LISTINGS", "STARTED_GUEST_JOURNEYS", ] %} {% set additional_dimensions = additional_dimensions + [dim_business_scope()] %} {% endif %} {% if entity_name == "CHECK_IN_ATTRIBUTED_GUEST_JOURNEYS" %} {% set additional_dimensions = additional_dimensions + [ dim_has_payment(), dim_has_id_check(), ] %} {% endif %} {% if entity_name == "GUEST_PAYMENTS" %} {% set additional_dimensions = additional_dimensions + [ dim_has_id_check(), ] %} {% endif %} {% if entity_name == "NEW_DASH_CREATED_SERVICES" %} {% set additional_dimensions = additional_dimensions + [ dim_has_upgraded_service(), dim_new_dash_version(), dim_pricing_service(), dim_pricing_business_type(), ] %} {% endif %} {% if entity_name == "NEW_DASH_CHARGEABLE_SERVICES" %} {% set additional_dimensions = additional_dimensions + [ dim_has_upgraded_service(), dim_new_dash_version(), dim_pricing_service(), dim_pricing_business_type(), ] %} {% endif %} {% if entity_name == "NEW_DASH_DEALS_OFFERED_SERVICES" %} {% set additional_dimensions = additional_dimensions + [ dim_has_upgraded_service(), dim_new_dash_version(), dim_pricing_service(), dim_pricing_business_type(), ] %} {% endif %} {% if entity_name == "NEW_DASH_ACCOMMODATION_OFFERED_SERVICES" %} {% set additional_dimensions = additional_dimensions + [ dim_has_upgraded_service(), dim_new_dash_version(), dim_pricing_service(), dim_pricing_business_type(), ] %} {% endif %} {# Combine base dimensions with additional dimensions for the specific model #} {% set dimensions = base_dimensions + additional_dimensions %} {{ return(dimensions) }} {% endmacro %}