diff --git a/models/intermediate/cross/int_mtd_aggregated_metrics.sql b/models/intermediate/cross/int_mtd_aggregated_metrics.sql index 96ee022..fed7b0b 100644 --- a/models/intermediate/cross/int_mtd_aggregated_metrics.sql +++ b/models/intermediate/cross/int_mtd_aggregated_metrics.sql @@ -6,6 +6,7 @@ "previous_year_value": "previous_year_created_bookings", "relative_increment": "relative_increment_created_bookings", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 2, @@ -14,6 +15,7 @@ "previous_year_value": "previous_year_cancelled_bookings", "relative_increment": "relative_increment_cancelled_bookings", "number_format": "integer", + "increment_sign_format": "negative", }, { "order_by": 3, @@ -22,14 +24,16 @@ "previous_year_value": "previous_year_check_out_bookings", "relative_increment": "relative_increment_check_out_bookings", "number_format": "integer", + "increment_sign_format": "positive", }, - { + { "order_by": 4, "metric": "Guest Journey Created", "value": "created_guest_journeys", "previous_year_value": "previous_year_created_guest_journeys", "relative_increment": "relative_increment_created_guest_journeys", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 11, @@ -38,6 +42,7 @@ "previous_year_value": "previous_year_started_guest_journeys", "relative_increment": "relative_increment_started_guest_journeys", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 12, @@ -46,6 +51,7 @@ "previous_year_value": "previous_year_completed_guest_journeys", "relative_increment": "relative_increment_completed_guest_journeys", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 13, @@ -54,6 +60,7 @@ "previous_year_value": "previous_year_paid_guest_journeys", "relative_increment": "relative_increment_paid_guest_journeys", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 20, @@ -62,6 +69,7 @@ "previous_year_value": "previous_year_new_deals", "relative_increment": "relative_increment_new_deals", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 21, @@ -70,6 +78,7 @@ "previous_year_value": "previous_year_first_time_booked_deals", "relative_increment": "relative_increment_first_time_booked_deals", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 22, @@ -78,6 +87,7 @@ "previous_year_value": "previous_year_deals_booked_in_month", "relative_increment": "relative_increment_deals_booked_in_month", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 23, @@ -86,6 +96,7 @@ "previous_year_value": "previous_year_deals_booked_in_6_months", "relative_increment": "relative_increment_deals_booked_in_6_months", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 24, @@ -94,6 +105,7 @@ "previous_year_value": "previous_year_deals_booked_in_12_months", "relative_increment": "relative_increment_deals_booked_in_12_months", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 25, @@ -102,6 +114,7 @@ "previous_year_value": "previous_year_churning_deals", "relative_increment": "relative_increment_churning_deals", "number_format": "integer", + "increment_sign_format": "negative", }, { "order_by": 30, @@ -110,6 +123,7 @@ "previous_year_value": "previous_year_new_listings", "relative_increment": "relative_increment_new_listings", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 31, @@ -118,6 +132,7 @@ "previous_year_value": "previous_year_first_time_booked_listings", "relative_increment": "relative_increment_first_time_booked_listings", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 32, @@ -126,6 +141,7 @@ "previous_year_value": "previous_year_listings_booked_in_month", "relative_increment": "relative_increment_listings_booked_in_month", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 33, @@ -134,6 +150,7 @@ "previous_year_value": "previous_year_listings_booked_in_6_months", "relative_increment": "relative_increment_listings_booked_in_6_months", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 34, @@ -142,6 +159,7 @@ "previous_year_value": "previous_year_listings_booked_in_12_months", "relative_increment": "relative_increment_listings_booked_in_12_months", "number_format": "integer", + "increment_sign_format": "positive", }, { "order_by": 35, @@ -150,6 +168,7 @@ "previous_year_value": "previous_year_churning_listings", "relative_increment": "relative_increment_churning_listings", "number_format": "integer", + "increment_sign_format": "negative", }, { "order_by": 40, @@ -158,6 +177,7 @@ "previous_year_value": "previous_year_xero_host_resolution_payment_count", "relative_increment": "relative_increment_xero_host_resolution_payment_count", "number_format": "integer", + "increment_sign_format": "negative", }, { "order_by": 100, @@ -166,6 +186,7 @@ "previous_year_value": "previous_year_start_rate_guest_journey", "relative_increment": "relative_increment_start_rate_guest_journey", "number_format": "percentage", + "increment_sign_format": "positive", }, { "order_by": 101, @@ -174,6 +195,7 @@ "previous_year_value": "previous_year_completion_rate_guest_journey", "relative_increment": "relative_increment_completion_rate_guest_journey", "number_format": "percentage", + "increment_sign_format": "positive", }, { "order_by": 102, @@ -182,6 +204,7 @@ "previous_year_value": "previous_year_incompletion_rate_guest_journey", "relative_increment": "relative_increment_incompletion_rate_guest_journey", "number_format": "percentage", + "increment_sign_format": "negative", }, { "order_by": 103, @@ -190,6 +213,7 @@ "previous_year_value": "previous_year_payment_rate_guest_journey", "relative_increment": "relative_increment_payment_rate_guest_journey", "number_format": "percentage", + "increment_sign_format": "positive", }, { "order_by": 200, @@ -198,6 +222,7 @@ "previous_year_value": "previous_year_total_revenue_in_gbp", "relative_increment": "relative_increment_total_revenue_in_gbp", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 201, @@ -206,6 +231,7 @@ "previous_year_value": "previous_year_total_revenue_per_created_booking", "relative_increment": "relative_increment_total_revenue_per_created_booking", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 202, @@ -214,6 +240,7 @@ "previous_year_value": "previous_year_total_revenue_per_created_guest_journey", "relative_increment": "relative_increment_total_revenue_per_created_guest_journey", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 203, @@ -222,6 +249,7 @@ "previous_year_value": "previous_year_total_revenue_per_deals_booked_in_month", "relative_increment": "relative_increment_total_revenue_per_deals_booked_in_month", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 204, @@ -230,6 +258,7 @@ "previous_year_value": "previous_year_total_revenue_per_listings_booked_in_month", "relative_increment": "relative_increment_total_revenue_per_listings_booked_in_month", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 220, @@ -238,7 +267,8 @@ "previous_year_value": "previous_year_xero_operator_net_fees_in_gbp", "relative_increment": "relative_increment_xero_operator_net_fees_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 225, "metric": "Invoiced Booking Fees", @@ -246,7 +276,8 @@ "previous_year_value": "previous_year_xero_booking_net_fees_in_gbp", "relative_increment": "relative_increment_xero_booking_net_fees_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 226, "metric": "Invoiced Listing Fees", @@ -254,7 +285,8 @@ "previous_year_value": "previous_year_xero_listing_net_fees_in_gbp", "relative_increment": "relative_increment_xero_listing_net_fees_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 227, "metric": "Invoiced Verification Fees", @@ -262,7 +294,8 @@ "previous_year_value": "previous_year_xero_verification_net_fees_in_gbp", "relative_increment": "relative_increment_xero_verification_net_fees_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 230, "metric": "Invoiced APIs Revenue", @@ -270,7 +303,8 @@ "previous_year_value": "previous_year_xero_apis_net_fees_in_gbp", "relative_increment": "relative_increment_xero_apis_net_fees_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 235, "metric": "Invoiced Guesty Fees", @@ -278,7 +312,8 @@ "previous_year_value": "previous_year_xero_guesty_net_fees_in_gbp", "relative_increment": "relative_increment_xero_guesty_net_fees_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 236, "metric": "Invoiced E-Deposit Fees", @@ -286,7 +321,8 @@ "previous_year_value": "previous_year_xero_e_deposit_net_fees_in_gbp", "relative_increment": "relative_increment_xero_e_deposit_net_fees_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 250, "metric": "Guest Revenue", @@ -294,6 +330,7 @@ "previous_year_value": "previous_year_total_guest_revenue_in_gbp", "relative_increment": "relative_increment_total_guest_revenue_in_gbp", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 251, @@ -302,6 +339,7 @@ "previous_year_value": "previous_year_guest_revenue_per_completed_guest_journey", "relative_increment": "relative_increment_guest_revenue_per_completed_guest_journey", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 252, @@ -310,6 +348,7 @@ "previous_year_value": "previous_year_guest_revenue_per_paid_guest_journey", "relative_increment": "relative_increment_guest_revenue_per_paid_guest_journey", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 260, @@ -318,6 +357,7 @@ "previous_year_value": "previous_year_deposit_fees_in_gbp", "relative_increment": "relative_increment_deposit_fees_in_gbp", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 262, @@ -326,7 +366,8 @@ "previous_year_value": "previous_year_waiver_payments_in_gbp", "relative_increment": "relative_increment_waiver_payments_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 263, "metric": "Waiver Amount Paid back to Hosts", @@ -334,7 +375,8 @@ "previous_year_value": "previous_year_xero_waiver_paid_back_to_host_in_gbp", "relative_increment": "relative_increment_xero_waiver_paid_back_to_host_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "negative", + }, { "order_by": 264, "metric": "Waiver Net Fees", @@ -342,7 +384,8 @@ "previous_year_value": "previous_year_waiver_net_fees_in_gbp", "relative_increment": "relative_increment_waiver_net_fees_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 265, "metric": "Check-In Hero Amount Paid by Guests", @@ -350,7 +393,8 @@ "previous_year_value": "previous_year_checkin_cover_fees_in_gbp", "relative_increment": "relative_increment_checkin_cover_fees_in_gbp", "number_format": "currency_gbp", - }, + "increment_sign_format": "positive", + }, { "order_by": 270, "metric": "Host Resolutions Amount Paid", @@ -358,6 +402,7 @@ "previous_year_value": "previous_year_xero_host_resolution_amount_paid_in_gbp", "relative_increment": "relative_increment_xero_host_resolution_amount_paid_in_gbp", "number_format": "currency_gbp", + "increment_sign_format": "negative", }, { "order_by": 290, @@ -366,6 +411,7 @@ "previous_year_value": "previous_year_total_guest_payments_in_gbp", "relative_increment": "relative_increment_total_guest_payments_in_gbp", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 291, @@ -374,6 +420,7 @@ "previous_year_value": "previous_year_guest_payments_per_completed_guest_journey", "relative_increment": "relative_increment_guest_payments_per_completed_guest_journey", "number_format": "currency_gbp", + "increment_sign_format": "positive", }, { "order_by": 292, @@ -382,7 +429,8 @@ "previous_year_value": "previous_year_guest_payments_per_paid_guest_journey", "relative_increment": "relative_increment_guest_payments_per_paid_guest_journey", "number_format": "currency_gbp", - } + "increment_sign_format": "positive", + }, ] %} with int_mtd_vs_previous_year_metrics as ( @@ -404,7 +452,12 @@ with '{{ metric.metric }}' as metric, {{ metric.value }} as value, {{ metric.previous_year_value }} as previous_year_value, - {{ metric.relative_increment }} as relative_increment + {{ metric.relative_increment }} as relative_increment, + case + when {{ metric.increment_sign_format }} = 'negative' + then {{ metric.relative_increment }} * -1 + else {{ metric.relative_increment }} + end as relative_increment_with_sign_format from int_mtd_vs_previous_year_metrics {% if not loop.last %} union all diff --git a/models/intermediate/cross/schema.yml b/models/intermediate/cross/schema.yml index 499008f..e85edf9 100644 --- a/models/intermediate/cross/schema.yml +++ b/models/intermediate/cross/schema.yml @@ -391,6 +391,13 @@ models: numeric value that corresponds to the relative increment between value and previous year value, following the computation: value / previous_year_value - 1. + - name: relative_increment_with_sign_format + data_type: numeric + description: | + relative_increment value multiplied by -1 in case this metric's growth doesn't have a + positive impact for Superhog, otherwise is equal to relative_increment. + This value is specially created for formatting in PBI + - name: int_monthly_aggregated_metrics_history_by_deal description: |