2024-06-14 15:48:24 +02:00
|
|
|
models:
|
|
|
|
|
- name: int_daily_currency_exchange_rates
|
|
|
|
|
description: >-
|
|
|
|
|
This model holds a lot of data on currency exchange rates. The time
|
|
|
|
|
granularity is daily. Each record holds a currency pair for a specific
|
|
|
|
|
day, source and version.
|
|
|
|
|
|
2024-06-14 16:22:00 +02:00
|
|
|
Actual rates are sourced from xe.com data. The `guessed` and `forecast`
|
2024-06-14 15:48:24 +02:00
|
|
|
versions are built by simply 'pushing' the first/last exchange rate on
|
|
|
|
|
record. Basically, wherever we dont' have data for a date, we pick the
|
2024-06-14 16:22:00 +02:00
|
|
|
closest actual data point that comes from xe.com. Bear in mind this means
|
|
|
|
|
that `forecast` version records will change on a daily basis as actual
|
|
|
|
|
data moves forwards, meaning you shouldn't assume your money amounts
|
|
|
|
|
converted in the future should always stay put.
|
2024-06-14 15:48:24 +02:00
|
|
|
|
|
|
|
|
Note that, given the dimensionality, getting a simple time series for a
|
|
|
|
|
currency pair will require a bit of filtering.
|
|
|
|
|
|
|
|
|
|
Reverse rates are explicit. This means that, for any given day and any
|
|
|
|
|
given currency pair, you will find two records with opposite from/to
|
|
|
|
|
positions. So, for 2024-01-01, you will find both a EUR->USD record and a
|
|
|
|
|
USD->EUR record with the opposite rate (1/rate).
|
|
|
|
|
columns:
|
|
|
|
|
- name: id_exchange_rate
|
|
|
|
|
data_type: text
|
|
|
|
|
description: A unique ID for the record, derived from concatenating the
|
|
|
|
|
currencies, date, source and version. Currency order is relevant
|
|
|
|
|
(EURUSD != USDEUR).
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 15:48:24 +02:00
|
|
|
- not_null
|
|
|
|
|
- unique
|
|
|
|
|
- name: from_currency
|
|
|
|
|
data_type: character
|
|
|
|
|
description: The source currency, represented as an ISO 4217 code.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 15:48:24 +02:00
|
|
|
- not_null
|
|
|
|
|
- name: to_currency
|
|
|
|
|
data_type: character
|
|
|
|
|
description: The target currency, represented as an ISO 4217 code.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 15:48:24 +02:00
|
|
|
- not_null
|
|
|
|
|
- name: rate
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: >-
|
|
|
|
|
The exchange rate, represented as the units of the target currency
|
|
|
|
|
that one unit of source currency gets you. So, from_currency=USD to
|
|
|
|
|
to_currency=PLN with rate=4.2 should be read as '1 US Dollar buys me
|
|
|
|
|
4.2 Polish Zlotys'.
|
|
|
|
|
|
|
|
|
|
For same currency pairs (EUR to EUR, USD to USD, etc). The rate will
|
|
|
|
|
always be one.
|
|
|
|
|
|
|
|
|
|
The rate can be smaller than one, but can't be negative.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 15:48:24 +02:00
|
|
|
- not_negative_or_zero
|
|
|
|
|
- not_null
|
|
|
|
|
- name: rate_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: The date in which the rate record is relevant.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 15:48:24 +02:00
|
|
|
- not_null
|
|
|
|
|
- name: source
|
|
|
|
|
data_type: text
|
2024-06-14 16:46:28 +02:00
|
|
|
description:
|
|
|
|
|
Where is the data coming from. Records that are composed from
|
2024-06-14 15:48:24 +02:00
|
|
|
making assumptions on real data will contain `_inferred`.
|
|
|
|
|
- name: rate_version
|
|
|
|
|
data_type: text
|
2024-06-14 16:46:28 +02:00
|
|
|
description:
|
|
|
|
|
The version of the rate. This can be one of `actual` (the rate is a
|
2024-06-14 15:48:24 +02:00
|
|
|
reality fact), `forecast` (the rate sits in the future and is a guess
|
|
|
|
|
in nature) or `guess` (the rate sits in the past and is a guess in
|
|
|
|
|
nature). Note that one currency pair can have multiple rate versions
|
|
|
|
|
on the same date.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 15:48:24 +02:00
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- guess
|
|
|
|
|
- actual
|
|
|
|
|
- forecast
|
2024-06-14 16:22:00 +02:00
|
|
|
- not_null
|
2024-06-14 15:48:24 +02:00
|
|
|
- name: updated_at_utc
|
|
|
|
|
data_type: timestamp with time zone
|
2024-06-14 16:46:28 +02:00
|
|
|
description:
|
|
|
|
|
For external sources, this will be the point in time when the
|
2024-06-14 15:48:24 +02:00
|
|
|
information was obtained from them. For stuff we make up here in the
|
|
|
|
|
DWH, this will be the point in time when we made the assumption.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 15:48:24 +02:00
|
|
|
- not_null
|
2024-06-14 16:44:48 +02:00
|
|
|
- name: int_simple_exchange_rates
|
2024-06-14 16:46:28 +02:00
|
|
|
description: >-
|
|
|
|
|
A simplified vision of exchange rates, derived from
|
|
|
|
|
`int_daily_currency_exchange_rates`. Come here if you don't want to
|
|
|
|
|
understand nuances and complexities and just want to convert rates.
|
|
|
|
|
|
|
|
|
|
The time granularity is daily. Each record holds a currency pair for a
|
|
|
|
|
specific day. You will only find one conversion rate per currency pair and
|
|
|
|
|
date.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 16:46:28 +02:00
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- from_currency
|
|
|
|
|
- to_currency
|
|
|
|
|
- rate_date_utc
|
2024-06-14 16:44:48 +02:00
|
|
|
columns:
|
|
|
|
|
- name: from_currency
|
|
|
|
|
data_type: character
|
|
|
|
|
description: The source currency, represented as an ISO 4217 code.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 16:44:48 +02:00
|
|
|
- not_null
|
|
|
|
|
- name: to_currency
|
|
|
|
|
data_type: character
|
|
|
|
|
description: The source currency, represented as an ISO 4217 code.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 16:44:48 +02:00
|
|
|
- not_null
|
|
|
|
|
- name: rate
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: The target currency, represented as an ISO 4217 code.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 16:44:48 +02:00
|
|
|
- not_null
|
|
|
|
|
- name: rate_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: The date in which the rate record is relevant.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 16:44:48 +02:00
|
|
|
- not_null
|
|
|
|
|
- name: updated_at_utc
|
|
|
|
|
data_type: timestamp with time zone
|
2024-06-14 16:46:28 +02:00
|
|
|
description:
|
|
|
|
|
For external sources, this will be the point in time when the
|
2024-06-14 16:44:48 +02:00
|
|
|
information was obtained from them. For stuff we make up here in the
|
|
|
|
|
DWH, this will be the point in time when we made the assumption.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-06-14 16:44:48 +02:00
|
|
|
- not_null
|
2024-07-08 11:02:02 +00:00
|
|
|
|
2024-07-08 15:58:36 +00:00
|
|
|
- name: int_mtd_vs_previous_year_metrics
|
|
|
|
|
description: |
|
|
|
|
|
This model is used for global KPIs.
|
|
|
|
|
|
|
|
|
|
It aggregates all the mtd models with the different metrics per source
|
|
|
|
|
and computes any necessary weighted metric across different sources.
|
2024-08-20 15:42:27 +00:00
|
|
|
Each metric has a date, dimension and dimension value that defines
|
|
|
|
|
the primary key of this model.
|
2024-09-12 15:38:50 +02:00
|
|
|
|
2024-07-08 15:58:36 +00:00
|
|
|
Finally, it displays any metric on the current date, the previous year
|
|
|
|
|
date and it computes the relative increment by using the macro:
|
|
|
|
|
- calculate_safe_relative_increment
|
|
|
|
|
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-08-20 15:42:27 +00:00
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- date
|
|
|
|
|
- dimension
|
|
|
|
|
- dimension_value
|
2024-09-12 15:38:50 +02:00
|
|
|
|
2024-07-08 15:58:36 +00:00
|
|
|
columns:
|
|
|
|
|
- name: date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: The date for the month-to-date metrics.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-08 15:58:36 +00:00
|
|
|
- not_null
|
2024-08-20 15:42:27 +00:00
|
|
|
|
|
|
|
|
- name: dimension
|
|
|
|
|
data_type: string
|
|
|
|
|
description: The dimension or granularity of the metrics.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-08-20 15:42:27 +00:00
|
|
|
- accepted_values:
|
2024-09-12 15:38:50 +02:00
|
|
|
values:
|
2024-08-20 15:42:27 +00:00
|
|
|
- global
|
|
|
|
|
- by_number_of_listings
|
Merged PR 2689: KPIs by Billing Country
# Description
Adds Billing Country dimension in KPIs, but does not expose them to reporting yet.
Silly thing, based on the macros I built, I cannot make incremental changes unless changing all models. This will need to be adapted, happy to hear your thoughts on how we do it.
Additionally, I have lack of performance of the model `mtd_guest_payments_metrics`. It takes around 5 min to execute, but technically the end-to-end runs in one shoot without breaking.
It's a complex PR because it changes many files, but you will see that:
* It mostly changes the join conditions for the dimensions or the schema tests,
* I tried to be very careful and add things step-by-step in the commits.
Goal is NOT to complete the PR yet until we see how we can improve performance. I can say though that data end-to-end looks ok to me, but would benefit from checking with production data for the new dimension
Update 30th Aug
* Added a new commit that includes `id_user_host` in `int_core__verification_payments`. Happy to discuss if it makes sense or not. But it changes the execution from ~600 sec to ~6 sec because it avoids a massive repeated join with `verification_requests`.
# 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.
- [ ] I've picked the right materialization for the affected models. **To check because of performance issues**
# Other
- [ ] Check if a full-refresh is required after this PR is merged.
Related work items: #19082
2024-09-04 10:17:12 +00:00
|
|
|
- by_billing_country
|
Merged PR 4411: Propagates New Dash/Old Dash/APIs split in KPIs as per Business Scope
# Description
Changes:
* Adapt business_kpis_configuration to include By Business Scope as production dimension.
* Sets in int_mtd_metrics_vs_previous_year the selection of business scope dimension for all KPIs models. This does not affect cross kpis models (churn/mrr). I might need to check later how to adapt Churn to include this dimension, but it's not considered as for this PR. Lastly, Billable Bookings excludes New Dash.
* Adapts condition in int_mtd_metrics_vs_previous_year so MTD values would appear independently of these appearing in the previous year. This is, the model was considering that to show current month MTD values, the dimension needed to exist the year prior. This does not happen with New Dash and I assume we never noticed because in any case, most of our dimensions have quite a long history.
* Adapts int_kpis__agg_dates_main_kpis to include the business scope dimension. By the way it's actually handled, it kind of assumes that a Deal can only be in New or Old Dash (this is correct), but while on New Dash, this deal won't have data for Old Dash (this might not be 100% correct). In any case, the global figure should be ok, and only on the deal + business scope dimensionality this could cause some potential problems. However, this is not being reported anyway at the moment.
* Adapts int_kpis__agg_dates_main_kpis to have a proper variable value for the dimensions, and this is further included in business_kpis_configuration as any other model.
Small changes:
* Adapts Churn metrics to read from dimension_deals rather than core__deals. This should be more accurate anyway.
# Checklist
- [ ] The edited models and dependants run properly with production data.
- [ ] The edited models are sufficiently documented.
- [ ] 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.
Propagates New Dash/Old Dash/APIs split in KPIs as per Business Scope
Related work items: #27356
2025-02-14 14:12:39 +00:00
|
|
|
- by_business_scope
|
2025-04-08 05:37:53 +00:00
|
|
|
- by_deal
|
2024-09-12 15:38:50 +02:00
|
|
|
|
2024-08-20 15:42:27 +00:00
|
|
|
- name: dimension_value
|
|
|
|
|
data_type: string
|
|
|
|
|
description: The value or segment available for the selected dimension.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-08-20 15:42:27 +00:00
|
|
|
- not_null
|
2024-07-08 15:58:36 +00:00
|
|
|
|
2024-07-09 15:14:50 +00:00
|
|
|
- name: int_mtd_aggregated_metrics
|
|
|
|
|
description: |
|
|
|
|
|
The `int_mtd_aggregated_metrics` model aggregates multiple metrics on a year, month, and day basis.
|
|
|
|
|
The primary source of data is the `int_mtd_vs_previous_year_metrics` model, which contain the combination
|
|
|
|
|
of metrics data per source. This model just changes the display format to unpivot the information into
|
|
|
|
|
a set of metric, value, previous_year_value and relative_increment at a given date. It uses Jinja
|
|
|
|
|
code to avoid code replication.
|
|
|
|
|
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- date
|
|
|
|
|
- metric
|
2024-08-20 15:42:27 +00:00
|
|
|
- dimension
|
|
|
|
|
- dimension_value
|
2024-09-12 15:38:50 +02:00
|
|
|
|
2024-07-09 15:14:50 +00:00
|
|
|
columns:
|
|
|
|
|
- name: year
|
|
|
|
|
data_type: int
|
|
|
|
|
description: year number of the given date.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: month
|
2024-09-12 15:38:50 +02:00
|
|
|
data_type: int
|
2024-07-09 15:14:50 +00:00
|
|
|
description: month number of the given date.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: day
|
|
|
|
|
data_type: int
|
|
|
|
|
description: day monthly number of the given date.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: is_end_of_month
|
|
|
|
|
data_type: boolean
|
2024-12-09 16:13:52 +00:00
|
|
|
description: True if it's end of month.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-12-09 16:13:52 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: is_end_of_month_or_yesterday
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: True if it's end of month or yesterday.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: is_current_month
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: |
|
|
|
|
|
checks if the date is within the current executed month,
|
|
|
|
|
1 for yes, 0 for no.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2024-07-16 09:14:38 +00:00
|
|
|
- name: first_day_month
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
2024-11-11 15:57:37 +00:00
|
|
|
first day of the month corresponding to the date field.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-16 09:14:38 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2024-07-09 15:14:50 +00:00
|
|
|
- name: date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
2024-11-11 15:57:37 +00:00
|
|
|
main date for the computation, that is used for filters.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2024-08-20 15:42:27 +00:00
|
|
|
- name: dimension
|
|
|
|
|
data_type: string
|
|
|
|
|
description: The dimension or granularity of the metrics.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-08-20 15:42:27 +00:00
|
|
|
- accepted_values:
|
2024-09-12 15:38:50 +02:00
|
|
|
values:
|
2024-08-20 15:42:27 +00:00
|
|
|
- global
|
|
|
|
|
- by_number_of_listings
|
Merged PR 2689: KPIs by Billing Country
# Description
Adds Billing Country dimension in KPIs, but does not expose them to reporting yet.
Silly thing, based on the macros I built, I cannot make incremental changes unless changing all models. This will need to be adapted, happy to hear your thoughts on how we do it.
Additionally, I have lack of performance of the model `mtd_guest_payments_metrics`. It takes around 5 min to execute, but technically the end-to-end runs in one shoot without breaking.
It's a complex PR because it changes many files, but you will see that:
* It mostly changes the join conditions for the dimensions or the schema tests,
* I tried to be very careful and add things step-by-step in the commits.
Goal is NOT to complete the PR yet until we see how we can improve performance. I can say though that data end-to-end looks ok to me, but would benefit from checking with production data for the new dimension
Update 30th Aug
* Added a new commit that includes `id_user_host` in `int_core__verification_payments`. Happy to discuss if it makes sense or not. But it changes the execution from ~600 sec to ~6 sec because it avoids a massive repeated join with `verification_requests`.
# 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.
- [ ] I've picked the right materialization for the affected models. **To check because of performance issues**
# Other
- [ ] Check if a full-refresh is required after this PR is merged.
Related work items: #19082
2024-09-04 10:17:12 +00:00
|
|
|
- by_billing_country
|
Merged PR 4411: Propagates New Dash/Old Dash/APIs split in KPIs as per Business Scope
# Description
Changes:
* Adapt business_kpis_configuration to include By Business Scope as production dimension.
* Sets in int_mtd_metrics_vs_previous_year the selection of business scope dimension for all KPIs models. This does not affect cross kpis models (churn/mrr). I might need to check later how to adapt Churn to include this dimension, but it's not considered as for this PR. Lastly, Billable Bookings excludes New Dash.
* Adapts condition in int_mtd_metrics_vs_previous_year so MTD values would appear independently of these appearing in the previous year. This is, the model was considering that to show current month MTD values, the dimension needed to exist the year prior. This does not happen with New Dash and I assume we never noticed because in any case, most of our dimensions have quite a long history.
* Adapts int_kpis__agg_dates_main_kpis to include the business scope dimension. By the way it's actually handled, it kind of assumes that a Deal can only be in New or Old Dash (this is correct), but while on New Dash, this deal won't have data for Old Dash (this might not be 100% correct). In any case, the global figure should be ok, and only on the deal + business scope dimensionality this could cause some potential problems. However, this is not being reported anyway at the moment.
* Adapts int_kpis__agg_dates_main_kpis to have a proper variable value for the dimensions, and this is further included in business_kpis_configuration as any other model.
Small changes:
* Adapts Churn metrics to read from dimension_deals rather than core__deals. This should be more accurate anyway.
# Checklist
- [ ] The edited models and dependants run properly with production data.
- [ ] The edited models are sufficiently documented.
- [ ] 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.
Propagates New Dash/Old Dash/APIs split in KPIs as per Business Scope
Related work items: #27356
2025-02-14 14:12:39 +00:00
|
|
|
- by_business_scope
|
2025-04-08 05:37:53 +00:00
|
|
|
- by_deal
|
2024-09-12 15:38:50 +02:00
|
|
|
|
2024-08-20 15:42:27 +00:00
|
|
|
- name: dimension_value
|
|
|
|
|
data_type: string
|
|
|
|
|
description: The value or segment available for the selected dimension.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-08-20 15:42:27 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2024-07-09 15:14:50 +00:00
|
|
|
- name: previous_year_date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
corresponds to the date of the previous year, with respect to the field date.
|
2024-11-11 15:57:37 +00:00
|
|
|
It's only displayed for information purposes,
|
2024-07-09 15:14:50 +00:00
|
|
|
should not be needed for reporting.
|
|
|
|
|
|
|
|
|
|
- name: metric
|
|
|
|
|
data_type: text
|
|
|
|
|
description: name of the business metric.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: order_by
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
order for displaying purposes. Null values are accepted, but keep
|
|
|
|
|
in mind that then there's no default controlled display order.
|
|
|
|
|
|
2025-04-08 10:04:11 +00:00
|
|
|
- name: include_in_account_reporting
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: |
|
|
|
|
|
Category to indicate if the metric should be included in the account
|
|
|
|
|
reporting (by deal). This will limit the display for reporting purposes.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
2025-03-21 09:40:20 +00:00
|
|
|
- name: display_exclusion
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Category to indicate if the metric requires a certain exclusion due
|
|
|
|
|
to relying on not timely information.
|
|
|
|
|
This will limit the display for reporting purposes.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- NONE
|
|
|
|
|
- INVOICING
|
|
|
|
|
- ONGOING_MONTH
|
|
|
|
|
|
2024-07-09 15:14:50 +00:00
|
|
|
- name: number_format
|
|
|
|
|
data_type: text
|
|
|
|
|
description: allows for grouping and formatting for displaying purposes.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-09-12 15:38:50 +02:00
|
|
|
- accepted_values:
|
2024-09-20 14:53:43 +02:00
|
|
|
values:
|
|
|
|
|
[
|
|
|
|
|
"integer",
|
|
|
|
|
"percentage",
|
|
|
|
|
"currency_gbp",
|
|
|
|
|
"converted_metric_currency_gbp",
|
|
|
|
|
]
|
2024-07-09 15:14:50 +00:00
|
|
|
|
|
|
|
|
- name: value
|
2024-09-12 15:38:50 +02:00
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
2024-07-09 15:14:50 +00:00
|
|
|
numeric value (integer or decimal) that corresponds to the MTD computation of the metric
|
|
|
|
|
at a given date.
|
|
|
|
|
|
|
|
|
|
- name: previous_year_value
|
2024-09-12 15:38:50 +02:00
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
2024-07-09 15:14:50 +00:00
|
|
|
numeric value (integer or decimal) that corresponds to the MTD computation of the metric
|
|
|
|
|
on the previous year at a given date.
|
|
|
|
|
|
|
|
|
|
- name: relative_increment
|
2024-09-12 15:38:50 +02:00
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
2024-07-09 15:14:50 +00:00
|
|
|
numeric value that corresponds to the relative increment between value and previous year value,
|
|
|
|
|
following the computation: value / previous_year_value - 1.
|
|
|
|
|
|
2024-08-08 17:06:11 +02:00
|
|
|
- name: relative_increment_with_sign_format
|
2024-09-12 15:38:50 +02:00
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
2024-08-08 17:06:11 +02:00
|
|
|
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
|
|
|
|
|
|
2024-07-09 15:14:50 +00:00
|
|
|
- name: int_monthly_aggregated_metrics_history_by_deal
|
|
|
|
|
description: |
|
|
|
|
|
This model aggregates the monthly historic information regarding the different metrics computed
|
|
|
|
|
at deal level. The primary sources of data are the `int_yyy__monthly_XXXXX_history_by_deal`
|
|
|
|
|
models which contain the raw metrics data per source.
|
|
|
|
|
|
|
|
|
|
Unlike the int_mtd_aggregated_metrics, this model does not abstract each metric, since
|
|
|
|
|
no comparison versus last year is performed. In short, it just gathers the information stored
|
|
|
|
|
in the abovementioned models.
|
|
|
|
|
|
|
|
|
|
To keep in mind: aggregating the information of this model will not necessarily result into
|
|
|
|
|
the int_mtd_aggregated metrics because 1) the mtd version contains more computing dates
|
|
|
|
|
than the by deal version, the latest being a subset of the first, and 2) the deal based model
|
|
|
|
|
enforces that a booking/guest journey/listing/etc has a host with a deal assigned, which is
|
2024-09-12 15:38:50 +02:00
|
|
|
not necessarily the case.
|
2024-07-09 15:14:50 +00:00
|
|
|
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- date
|
|
|
|
|
- id_deal
|
|
|
|
|
|
|
|
|
|
columns:
|
|
|
|
|
- name: date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: The last day of the month or yesterday for historic metrics.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-07-09 15:14:50 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2024-07-08 11:02:02 +00:00
|
|
|
- name: id_deal
|
|
|
|
|
data_type: character varying
|
2024-09-12 15:38:50 +02:00
|
|
|
description: Id of the deal associated to the host.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
Merged PR 2519: mtd bookings with 2 dimensions
# Description
This is a first idea of how I'd like to add dimensionality in the KPIs for the mtd models. For the moment, I keep deal_id apart, so I just touch the "mtd" models, that so far only contained "global" metrics.
In this case I include the listing segmentation (0, 1-5, 6-20, etc) in the bookings. To do this, I created 2 new fields: dimension and dimension_values.
I also created a "master" table with `date` - `dimension` - `dimension_value` called `int_dates_mtd_by_dimension`
Important notes:
- I force a hardcode in `int_mtd_vs_previous_year_metrics`. This is to not break production.
- You will notice how repetitive the code is starting to look. My intention with this PR is that we are happy with this approach on the naming, the strategy for joins, etc. If that's ok, next step is going to be doing macros on top. Think of the state of `int_core__mtd_booking_metrics` as the "compiled version" of the macro that should come afterwards.
# 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.
- [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: #19325
2024-08-08 09:11:01 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2025-03-05 13:02:07 +00:00
|
|
|
- name: client_type
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Type of client. It can be either PLATFORM or API.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- PLATFORM
|
|
|
|
|
- API
|
|
|
|
|
|
2025-03-14 11:48:22 +01:00
|
|
|
- name: business_scope
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Business scope identifying the metric source.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- "Old Dash"
|
|
|
|
|
- "New Dash"
|
|
|
|
|
- "API"
|
|
|
|
|
- "UNSET"
|
|
|
|
|
|
2024-09-12 12:04:04 +00:00
|
|
|
- name: main_deal_name
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Main name for this ID deal.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-09-12 12:04:04 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2025-01-09 16:31:22 +01:00
|
|
|
- name: has_active_pms
|
2025-01-09 15:56:58 +01:00
|
|
|
data_type: boolean
|
|
|
|
|
description: |
|
|
|
|
|
Does the deal have an active associated PMS.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-09 15:56:58 +01:00
|
|
|
- not_null
|
|
|
|
|
|
2025-01-09 16:31:22 +01:00
|
|
|
- name: active_pms_list
|
2025-01-09 15:56:58 +01:00
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Name of the active PMS associated with the deal. It can have more than
|
2025-01-09 16:31:22 +01:00
|
|
|
one PMS associated with it. It can be null if it doesn't have any PMS associated.
|
2025-01-09 15:56:58 +01:00
|
|
|
|
2025-03-06 17:12:32 +01:00
|
|
|
- name: active_accommodations_per_deal_segmentation
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Segment value based on the number of listings booked in 12 months
|
|
|
|
|
for a given deal and date.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- "0"
|
|
|
|
|
- "01-05"
|
|
|
|
|
- "06-20"
|
|
|
|
|
- "21-60"
|
|
|
|
|
- "61+"
|
|
|
|
|
- "UNSET"
|
|
|
|
|
|
2024-09-12 12:04:04 +00:00
|
|
|
- name: main_billing_country_iso_3_per_deal
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
ISO 3166-1 alpha-3 main country code in which the Deal is billed.
|
|
|
|
|
In some cases it's null.
|
2024-09-12 15:38:50 +02:00
|
|
|
|
2024-10-11 07:20:35 +00:00
|
|
|
- name: int_monthly_growth_score_by_deal
|
|
|
|
|
description: |
|
|
|
|
|
The main goal of this model is to provide a growth score by deal and month.
|
|
|
|
|
The idea behind it is that each deal will have some business performance
|
|
|
|
|
associated to it over the months, and that comparing how it is currently
|
|
|
|
|
performing vs. historical data we can determine whether the tendency is to
|
|
|
|
|
grow or to decay. This is specially useful for AMs to focus their effort
|
|
|
|
|
towards the clients that have a negative tendency.
|
|
|
|
|
|
|
|
|
|
The computation of the growth score is based on 3 main indicators:
|
|
|
|
|
- Created bookings
|
|
|
|
|
- Listings booked in month
|
|
|
|
|
- Total revenue (in gbp)
|
|
|
|
|
|
|
|
|
|
The main idea is, for each deal, to compare each of these metrics by
|
2024-10-14 12:26:01 +00:00
|
|
|
checking the latest monthly value vs. 1) the monthly value of the equivalent
|
|
|
|
|
month on the previous year and 2) the monthly value of the previous month
|
|
|
|
|
- in other words, a year-on-year (YoY) and month-on-month (MoM) comparison.
|
2024-10-11 07:20:35 +00:00
|
|
|
We do this comparison by doing a relative incremental.
|
|
|
|
|
|
2024-10-14 12:26:01 +00:00
|
|
|
The growth score is computed then by averaging the outcome of the 6 scores.
|
2024-10-11 07:20:35 +00:00
|
|
|
Lastly, in order to provide a prioritisation sense, we have a weighted growth
|
|
|
|
|
score that results from the multiplication of the growth score per the revenue
|
|
|
|
|
weight a specific deal has provided in the previous 12 months.
|
|
|
|
|
|
|
|
|
|
However, this is not strictly true for Revenue because 1) we have an invoicing
|
|
|
|
|
delay and 2) in some cases, monthly revenue per deal can be negative. In this
|
|
|
|
|
specific cases, the YoY comparison is shifted by one month, and an effective
|
|
|
|
|
revenue value for the revenue share is computed, that cannot be lower than 0.
|
|
|
|
|
|
|
|
|
|
In order to keep both a properly set up score and revenue consistency, both
|
|
|
|
|
a real revenue value and effective revenue value are present in this model,
|
|
|
|
|
while no MoM or YoY value is computed if negative revenue is found.
|
|
|
|
|
|
|
|
|
|
Lastly, this model provides informative date fields, deal attributes, absolute
|
|
|
|
|
metric values and MoM & YoY relative incrementals to enrich reporting.
|
|
|
|
|
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- date
|
|
|
|
|
- id_deal
|
|
|
|
|
|
|
|
|
|
columns:
|
|
|
|
|
- name: date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Date corresponding to the last day of the month. Given month
|
|
|
|
|
metrics are inclusive to this date. Together with id_deal, it
|
|
|
|
|
acts as the primary key of this model.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: id_deal
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Unique identifier of a Deal. Together with date, it acts as
|
|
|
|
|
the primary key of this model.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2025-03-05 13:02:07 +00:00
|
|
|
- name: client_type
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Type of client. It can be either PLATFORM or API.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- PLATFORM
|
|
|
|
|
- API
|
|
|
|
|
|
2024-10-11 07:20:35 +00:00
|
|
|
- name: main_deal_name
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Main name for a Deal, representing the client.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2025-01-10 09:17:29 +01:00
|
|
|
- name: has_active_pms
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: |
|
|
|
|
|
Does the deal have an active associated PMS.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-10 09:17:29 +01:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: active_pms_list
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Name of the active PMS associated with the deal. It can have more than
|
|
|
|
|
one PMS associated with it. It can be null if it doesn't have any PMS associated.
|
|
|
|
|
|
2024-10-11 07:20:35 +00:00
|
|
|
- name: main_billing_country_iso_3_per_deal
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Main billing country for this client. In some cases
|
|
|
|
|
it can be null.
|
|
|
|
|
|
|
|
|
|
- name: deal_lifecycle_state
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Identifier of the lifecycle state of a given deal
|
|
|
|
|
in a given month.
|
|
|
|
|
|
Merged PR 3247: Enriches monthly_growth_by_deal model for top losers reporting
# Description
Changes:
* Explicit selection of fields in the last part of the query, rather than select *.
* Adding a few more Hubspot attributes, namely: AM, Hubspot Stage, Live Date and Cancellation Date. The main idea is to enrich the reporting with these.
* Adding the listings over 12 months. Here it's a bit more tricky than for Revenue or Bookings, since to me the main indicator is the amount of listings that are being booked in a month, over a period of 12 months (rather than unique count of listings that have been booked in the past 12 months). However, doing a sum of the listings booked in month will be very tricky for AMs and other users. I opted for averaging, and can be considered as, in average, a certain account has X amount of listings with bookings created, and this average considers the past 12 months. So I'd say it's a good estimate of the "real" size of a client in terms of potential for Superhog.
# 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.
- [NA] I have checked for DRY opportunities with other models and docs.
- [NA] 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: #22883
2024-10-18 13:17:52 +00:00
|
|
|
- name: deal_hubspot_stage
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Current hubspot stage for a given deal.
|
|
|
|
|
|
|
|
|
|
- name: account_manager
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Current Account Manager in charge of a given deal, according
|
|
|
|
|
to Hubspot.
|
|
|
|
|
|
|
|
|
|
- name: live_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Date in which the account has gone live, according to Hubspot.
|
|
|
|
|
|
|
|
|
|
- name: cancellation_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Date in which the account has been offboarded, according to
|
|
|
|
|
Hubspot.
|
|
|
|
|
|
2024-10-11 07:20:35 +00:00
|
|
|
- name: given_month_first_day_month
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Informative field. It indicates the first day of the
|
|
|
|
|
month corresponding to date.
|
|
|
|
|
If date = 2024-09-30, this field will be 2024-09-01.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: previous_1_month_first_day_month
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Informative field. It indicates the first day of the
|
|
|
|
|
previous month with respect to date.
|
|
|
|
|
If date = 2024-09-30, this field will be 2024-08-01.
|
|
|
|
|
It can be null if no previous history for that
|
|
|
|
|
deal is found.
|
|
|
|
|
|
2024-10-14 12:26:01 +00:00
|
|
|
- name: previous_2_month_first_day_month
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Informative field. It indicates the first day of the
|
|
|
|
|
month 2 months before with respect to date.
|
|
|
|
|
If date = 2024-09-30, this field will be 2024-07-01.
|
|
|
|
|
It can be null if no previous history for that
|
|
|
|
|
deal is found.
|
|
|
|
|
|
2024-10-11 07:20:35 +00:00
|
|
|
- name: previous_12_month_first_day_month
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Informative field. It indicates the first day of the
|
|
|
|
|
month with respect to date, but on the previous year.
|
|
|
|
|
If date = 2024-09-30, this field will be 2023-09-01.
|
|
|
|
|
It can be null if no previous history for that
|
|
|
|
|
deal is found.
|
|
|
|
|
|
|
|
|
|
- name: previous_13_month_first_day_month
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Informative field. It indicates the first day of the
|
|
|
|
|
previous month with respect to date, but on the previous year.
|
|
|
|
|
If date = 2024-09-30, this field will be 2023-08-01.
|
|
|
|
|
It can be null if no previous history for that
|
|
|
|
|
deal is found.
|
|
|
|
|
|
|
|
|
|
- name: aggregated_revenue_from_first_day_month
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Informative field. It indicates the first day of the
|
|
|
|
|
month from the lower bound range in which the revenue
|
|
|
|
|
aggregation is computed.
|
|
|
|
|
The aggregation uses the previous 12 months in which we
|
|
|
|
|
know the revenue, thus:
|
|
|
|
|
If date = 2024-09-30, this field will be 2023-09-01.
|
|
|
|
|
It can be null if no previous history for that
|
|
|
|
|
deal is found.
|
|
|
|
|
|
|
|
|
|
- name: aggregated_revenue_to_first_day_month
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Informative field. It indicates the first day of the
|
|
|
|
|
month from the upper bound range in which the revenue
|
|
|
|
|
aggregation is computed.
|
|
|
|
|
The aggregation uses the previous 12 months in which we
|
|
|
|
|
know the revenue, thus:
|
|
|
|
|
If date = 2024-09-30, this field will be 2023-08-01.
|
|
|
|
|
It can be null if no previous history for that
|
|
|
|
|
deal is found.
|
|
|
|
|
|
|
|
|
|
- name: given_month_revenue_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing revenue in GBP
|
|
|
|
|
for a specific deal. This value corresponds to
|
|
|
|
|
the given month. This value can be negative,
|
|
|
|
|
but not null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: previous_1_month_revenue_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing revenue in GBP
|
|
|
|
|
for a specific deal. This value corresponds to
|
|
|
|
|
the previous month.
|
|
|
|
|
This value can be negative.
|
|
|
|
|
This value can be null, thus indicating that no
|
|
|
|
|
history is available.
|
|
|
|
|
|
2024-10-14 12:26:01 +00:00
|
|
|
- name: previous_2_month_revenue_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing revenue in GBP
|
|
|
|
|
for a specific deal. This value corresponds to
|
|
|
|
|
the monthly amount generated 2 months ago
|
|
|
|
|
This value can be negative.
|
|
|
|
|
This value can be null, thus indicating that no
|
|
|
|
|
history is available.
|
|
|
|
|
|
2024-10-11 07:20:35 +00:00
|
|
|
- name: previous_12_month_revenue_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing revenue in GBP
|
|
|
|
|
for a specific deal. This value corresponds to
|
2024-10-14 12:26:01 +00:00
|
|
|
the monthly amount generated 12 months ago.
|
2024-10-11 07:20:35 +00:00
|
|
|
This value can be negative.
|
|
|
|
|
This value can be null, thus indicating that no
|
|
|
|
|
history is available.
|
|
|
|
|
|
|
|
|
|
- name: previous_13_month_revenue_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing revenue in GBP
|
|
|
|
|
for a specific deal. This value corresponds to
|
2024-10-14 12:26:01 +00:00
|
|
|
the monthly amount generated 13 months ago.
|
2024-10-11 07:20:35 +00:00
|
|
|
This value can be negative.
|
|
|
|
|
This value can be null, thus indicating that no
|
|
|
|
|
history is available.
|
|
|
|
|
|
|
|
|
|
- name: mom_revenue_growth
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Relative increment of the revenue generated in the
|
|
|
|
|
current month with respect to the one generated in
|
|
|
|
|
the previous month.
|
|
|
|
|
It can be null if any revenue used in the computation
|
|
|
|
|
is null or it's negative.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: -1
|
|
|
|
|
strictly: false
|
|
|
|
|
|
2024-10-14 12:26:01 +00:00
|
|
|
- name: mom_1_month_shift_revenue_growth
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Relative increment of the revenue generated in the
|
|
|
|
|
previous month with respect to the one generated 2
|
|
|
|
|
months ago.
|
|
|
|
|
It can be null if any revenue used in the computation
|
|
|
|
|
is null or it's negative.
|
|
|
|
|
This field is used for the growth score computation.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-14 12:26:01 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: -1
|
|
|
|
|
strictly: false
|
|
|
|
|
|
2024-10-11 07:20:35 +00:00
|
|
|
- name: yoy_revenue_growth
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Relative increment of the revenue generated in the
|
|
|
|
|
current month with respect to the one generated 12
|
|
|
|
|
months ago.
|
|
|
|
|
It can be null if any revenue used in the computation
|
|
|
|
|
is null or it's negative.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: -1
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: yoy_1_month_shift_revenue_growth
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Relative increment of the revenue generated in the
|
|
|
|
|
previous month with respect to the one generated 13
|
|
|
|
|
months ago.
|
|
|
|
|
It can be null if any revenue used in the computation
|
|
|
|
|
is null or it's negative.
|
|
|
|
|
This field is used for the growth score computation.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: -1
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: given_month_created_bookings
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing created bookings
|
|
|
|
|
for a specific deal. This value corresponds to
|
|
|
|
|
the given month. This value cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: previous_1_month_created_bookings
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing created bookings
|
|
|
|
|
for a specific deal. This value corresponds to
|
|
|
|
|
the previous month.
|
|
|
|
|
This value can be null, thus indicating that no
|
|
|
|
|
history is available.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: previous_12_month_created_bookings
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing created bookings
|
|
|
|
|
for a specific deal. This value corresponds to
|
|
|
|
|
monthly amount generated 12 months ago.
|
|
|
|
|
This value can be null, thus indicating that no
|
|
|
|
|
history is available.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: mom_created_bookings_growth
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Relative increment of the bookings created in the
|
|
|
|
|
current month with respect to the ones created in
|
|
|
|
|
the previous month.
|
|
|
|
|
It can be null if the bookings created in the
|
|
|
|
|
previous month are null.
|
2024-10-14 12:26:01 +00:00
|
|
|
This field is used for the growth score computation.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: -1
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: yoy_created_bookings_growth
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Relative increment of the bookings created in the
|
|
|
|
|
current month with respect to the ones created 12
|
|
|
|
|
months ago.
|
|
|
|
|
It can be null if the bookings created 12 months
|
|
|
|
|
ago are null.
|
|
|
|
|
This field is used for the growth score computation.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: -1
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: given_month_listings_booked_in_month
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing the listings booked in month
|
|
|
|
|
for a specific deal. This value corresponds to
|
|
|
|
|
the given month. This value cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: previous_1_month_listings_booked_in_month
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing the listings booked in month
|
|
|
|
|
for a specific deal. This value corresponds to
|
|
|
|
|
the previous month.
|
|
|
|
|
This value can be null, thus indicating that no
|
|
|
|
|
history is available.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: previous_12_month_listings_booked_in_month
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Monthly value representing the listings booked in month
|
|
|
|
|
for a specific deal. This value corresponds to
|
|
|
|
|
monthly amount generated 12 months ago.
|
|
|
|
|
This value can be null, thus indicating that no
|
|
|
|
|
history is available.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: mom_listings_booked_in_month_growth
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Relative increment of the the listings booked in month
|
|
|
|
|
in the current month with respect to the ones of
|
|
|
|
|
the previous month.
|
|
|
|
|
It can be null if the listings booked in month in the
|
|
|
|
|
previous month are null.
|
2024-10-14 12:26:01 +00:00
|
|
|
This field is used for the growth score computation.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: -1
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: yoy_listings_booked_in_month_growth
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Relative increment of the listings booked in month
|
|
|
|
|
in the current month with respect to the ones of 12
|
|
|
|
|
months ago.
|
|
|
|
|
It can be null if the listings booked in month of 12
|
|
|
|
|
months ago are null.
|
|
|
|
|
This field is used for the growth score computation.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: -1
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: deal_revenue_12_months_window
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Total aggregated revenue in GBP generated by a deal
|
|
|
|
|
in the months from the period ranging from the
|
|
|
|
|
aggregated_revenue_from_first_day_month to
|
|
|
|
|
aggregated_revenue_to_first_day_month.
|
|
|
|
|
It can be negative if the sum is negative.
|
|
|
|
|
It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: effective_deal_revenue_12_months_window
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Effective aggregated revenue in GBP generated by a deal
|
|
|
|
|
in the months from the period ranging from the
|
|
|
|
|
aggregated_revenue_from_first_day_month to
|
|
|
|
|
aggregated_revenue_to_first_day_month.
|
|
|
|
|
All negative monthly revenue values are settled as 0,
|
|
|
|
|
thus this value should not be reported.
|
|
|
|
|
It is used for the deal contribution share with respect
|
|
|
|
|
to the global revenue. It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: effective_global_revenue_12_months_window
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Effective aggregated revenue in GBP generated by all deals
|
|
|
|
|
in the months from the period ranging from the
|
|
|
|
|
aggregated_revenue_from_first_day_month to
|
|
|
|
|
aggregated_revenue_to_first_day_month.
|
|
|
|
|
All negative monthly revenue values are settled as 0,
|
|
|
|
|
thus this value should not be reported.
|
|
|
|
|
It is used for the deal contribution share with respect
|
|
|
|
|
to the global revenue. It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: deal_contribution_share_to_global_revenue
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Represents the size of the deal in terms of revenue. In
|
|
|
|
|
other words, what's the percentage of the global revenue
|
|
|
|
|
that can be attributed to this deal. It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: deal_contribution_rank_to_global_revenue
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Represents the ordered list of deals by descending size
|
2024-10-15 12:31:39 +00:00
|
|
|
in terms of revenue.
|
|
|
|
|
If more than one deal have the same share, the order is
|
|
|
|
|
not under control.
|
|
|
|
|
It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-15 12:31:39 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: deal_created_bookings_12_months_window
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Total created bookings generated by a deal
|
|
|
|
|
in the months from the period ranging from the
|
|
|
|
|
aggregated_revenue_from_first_day_month to
|
|
|
|
|
aggregated_revenue_to_first_day_month.
|
|
|
|
|
It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-15 12:31:39 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: global_created_bookings_12_months_window
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
Merged PR 3247: Enriches monthly_growth_by_deal model for top losers reporting
# Description
Changes:
* Explicit selection of fields in the last part of the query, rather than select *.
* Adding a few more Hubspot attributes, namely: AM, Hubspot Stage, Live Date and Cancellation Date. The main idea is to enrich the reporting with these.
* Adding the listings over 12 months. Here it's a bit more tricky than for Revenue or Bookings, since to me the main indicator is the amount of listings that are being booked in a month, over a period of 12 months (rather than unique count of listings that have been booked in the past 12 months). However, doing a sum of the listings booked in month will be very tricky for AMs and other users. I opted for averaging, and can be considered as, in average, a certain account has X amount of listings with bookings created, and this average considers the past 12 months. So I'd say it's a good estimate of the "real" size of a client in terms of potential for Superhog.
# 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.
- [NA] I have checked for DRY opportunities with other models and docs.
- [NA] 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: #22883
2024-10-18 13:17:52 +00:00
|
|
|
Total created bookings generated by any deal
|
2024-10-15 12:31:39 +00:00
|
|
|
in the months from the period ranging from the
|
|
|
|
|
aggregated_revenue_from_first_day_month to
|
|
|
|
|
aggregated_revenue_to_first_day_month.
|
|
|
|
|
It is used for the deal contribution share with respect
|
|
|
|
|
to the global created bookings. It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-15 12:31:39 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: deal_contribution_share_to_global_created_bookings
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Represents the size of the deal in terms of created bookings.
|
|
|
|
|
In other words, what's the percentage of the global created
|
|
|
|
|
bookings that can be attributed to this deal.
|
|
|
|
|
It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-15 12:31:39 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: deal_contribution_rank_to_global_created_bookings
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Represents the ordered list of deals by descending size
|
|
|
|
|
in terms of created bookings.
|
|
|
|
|
If more than one deal have the same share, the order is
|
|
|
|
|
not under control.
|
Merged PR 3247: Enriches monthly_growth_by_deal model for top losers reporting
# Description
Changes:
* Explicit selection of fields in the last part of the query, rather than select *.
* Adding a few more Hubspot attributes, namely: AM, Hubspot Stage, Live Date and Cancellation Date. The main idea is to enrich the reporting with these.
* Adding the listings over 12 months. Here it's a bit more tricky than for Revenue or Bookings, since to me the main indicator is the amount of listings that are being booked in a month, over a period of 12 months (rather than unique count of listings that have been booked in the past 12 months). However, doing a sum of the listings booked in month will be very tricky for AMs and other users. I opted for averaging, and can be considered as, in average, a certain account has X amount of listings with bookings created, and this average considers the past 12 months. So I'd say it's a good estimate of the "real" size of a client in terms of potential for Superhog.
# 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.
- [NA] I have checked for DRY opportunities with other models and docs.
- [NA] 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: #22883
2024-10-18 13:17:52 +00:00
|
|
|
It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
Merged PR 3247: Enriches monthly_growth_by_deal model for top losers reporting
# Description
Changes:
* Explicit selection of fields in the last part of the query, rather than select *.
* Adding a few more Hubspot attributes, namely: AM, Hubspot Stage, Live Date and Cancellation Date. The main idea is to enrich the reporting with these.
* Adding the listings over 12 months. Here it's a bit more tricky than for Revenue or Bookings, since to me the main indicator is the amount of listings that are being booked in a month, over a period of 12 months (rather than unique count of listings that have been booked in the past 12 months). However, doing a sum of the listings booked in month will be very tricky for AMs and other users. I opted for averaging, and can be considered as, in average, a certain account has X amount of listings with bookings created, and this average considers the past 12 months. So I'd say it's a good estimate of the "real" size of a client in terms of potential for Superhog.
# 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.
- [NA] I have checked for DRY opportunities with other models and docs.
- [NA] 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: #22883
2024-10-18 13:17:52 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: deal_avg_listings_booked_in_month_12_months_window
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Average listings booked in month by a deal
|
|
|
|
|
in the months from the period ranging from the
|
|
|
|
|
aggregated_revenue_from_first_day_month to
|
|
|
|
|
aggregated_revenue_to_first_day_month.
|
|
|
|
|
It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
Merged PR 3247: Enriches monthly_growth_by_deal model for top losers reporting
# Description
Changes:
* Explicit selection of fields in the last part of the query, rather than select *.
* Adding a few more Hubspot attributes, namely: AM, Hubspot Stage, Live Date and Cancellation Date. The main idea is to enrich the reporting with these.
* Adding the listings over 12 months. Here it's a bit more tricky than for Revenue or Bookings, since to me the main indicator is the amount of listings that are being booked in a month, over a period of 12 months (rather than unique count of listings that have been booked in the past 12 months). However, doing a sum of the listings booked in month will be very tricky for AMs and other users. I opted for averaging, and can be considered as, in average, a certain account has X amount of listings with bookings created, and this average considers the past 12 months. So I'd say it's a good estimate of the "real" size of a client in terms of potential for Superhog.
# 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.
- [NA] I have checked for DRY opportunities with other models and docs.
- [NA] 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: #22883
2024-10-18 13:17:52 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: global_avg_listings_booked_in_month_12_months_window
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Sum of the average listings booked in month by
|
|
|
|
|
any deal in the months from the period ranging from the
|
|
|
|
|
aggregated_revenue_from_first_day_month to
|
|
|
|
|
aggregated_revenue_to_first_day_month.
|
|
|
|
|
It is used for the deal contribution share with respect
|
|
|
|
|
to the global average listings booked in month.
|
|
|
|
|
It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
Merged PR 3247: Enriches monthly_growth_by_deal model for top losers reporting
# Description
Changes:
* Explicit selection of fields in the last part of the query, rather than select *.
* Adding a few more Hubspot attributes, namely: AM, Hubspot Stage, Live Date and Cancellation Date. The main idea is to enrich the reporting with these.
* Adding the listings over 12 months. Here it's a bit more tricky than for Revenue or Bookings, since to me the main indicator is the amount of listings that are being booked in a month, over a period of 12 months (rather than unique count of listings that have been booked in the past 12 months). However, doing a sum of the listings booked in month will be very tricky for AMs and other users. I opted for averaging, and can be considered as, in average, a certain account has X amount of listings with bookings created, and this average considers the past 12 months. So I'd say it's a good estimate of the "real" size of a client in terms of potential for Superhog.
# 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.
- [NA] I have checked for DRY opportunities with other models and docs.
- [NA] 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: #22883
2024-10-18 13:17:52 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: deal_contribution_share_to_global_avg_listings_booked_in_month
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Represents the size of the deal in terms of average listings
|
|
|
|
|
booked in month.
|
|
|
|
|
In other words, what's the percentage of the global average listings
|
|
|
|
|
booked in month that can be attributed to this deal.
|
|
|
|
|
It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
Merged PR 3247: Enriches monthly_growth_by_deal model for top losers reporting
# Description
Changes:
* Explicit selection of fields in the last part of the query, rather than select *.
* Adding a few more Hubspot attributes, namely: AM, Hubspot Stage, Live Date and Cancellation Date. The main idea is to enrich the reporting with these.
* Adding the listings over 12 months. Here it's a bit more tricky than for Revenue or Bookings, since to me the main indicator is the amount of listings that are being booked in a month, over a period of 12 months (rather than unique count of listings that have been booked in the past 12 months). However, doing a sum of the listings booked in month will be very tricky for AMs and other users. I opted for averaging, and can be considered as, in average, a certain account has X amount of listings with bookings created, and this average considers the past 12 months. So I'd say it's a good estimate of the "real" size of a client in terms of potential for Superhog.
# 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.
- [NA] I have checked for DRY opportunities with other models and docs.
- [NA] 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: #22883
2024-10-18 13:17:52 +00:00
|
|
|
- not_null
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: deal_contribution_rank_to_global_avg_listings_booked_in_month
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Represents the ordered list of deals by descending size
|
|
|
|
|
in terms of average listings booked in month.
|
|
|
|
|
If more than one deal have the same share, the order is
|
|
|
|
|
not under control.
|
2024-10-11 07:20:35 +00:00
|
|
|
It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2024-10-14 12:26:01 +00:00
|
|
|
- name: avg_mom_growth_score
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Represents the average score of MoM growth of created
|
|
|
|
|
bookings, MoM growth of listings booked in month and
|
|
|
|
|
MoM shifted by one month of revenue.
|
|
|
|
|
It indicates the tendency of growth of the deal without
|
|
|
|
|
taking into account its revenue size. It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-14 12:26:01 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: avg_yoy_growth_score
|
2024-10-11 07:20:35 +00:00
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Represents the average score of YoY growth of created
|
|
|
|
|
bookings, YoY growth of listings booked in month and
|
|
|
|
|
YoY shifted by one month of revenue.
|
|
|
|
|
It indicates the tendency of growth of the deal without
|
|
|
|
|
taking into account its revenue size. It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2024-10-14 12:26:01 +00:00
|
|
|
- name: avg_growth_score
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Represents the average score of YoY and MoM growth of created
|
|
|
|
|
bookings, YoY and MoM growth of listings booked in month and
|
|
|
|
|
YoY and MoM shifted by one month of revenue.
|
|
|
|
|
It indicates the tendency of growth of the deal without
|
|
|
|
|
taking into account its revenue size. It cannot be null.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-14 12:26:01 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2024-10-11 07:20:35 +00:00
|
|
|
- name: weighted_avg_growth_score
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
It's the weighted version of avg_growth_score that
|
|
|
|
|
takes into account the client size by using the revenue
|
|
|
|
|
contribution share of that deal to the global amount.
|
|
|
|
|
It's the main indicator towards measuring both growth
|
|
|
|
|
(if positive) or decay (if negative) while weighting
|
|
|
|
|
the financial impact this deal tendency can have.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-11 07:20:35 +00:00
|
|
|
- not_null
|
2024-10-14 12:26:01 +00:00
|
|
|
|
|
|
|
|
- name: categorisation_weighted_avg_growth_score
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Discrete categorisation of weighted_avg_growth_score.
|
|
|
|
|
It helps easily identifying which accounts are top losers,
|
|
|
|
|
losers, flat, winners and top winners.
|
|
|
|
|
Currently the categorisation is based on the score itself
|
|
|
|
|
rather than selecting a top up/down.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-10-14 12:26:01 +00:00
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
2024-10-22 13:06:58 +00:00
|
|
|
- MAJOR DECLINE
|
|
|
|
|
- DECLINE
|
2024-10-14 12:26:01 +00:00
|
|
|
- FLAT
|
2024-10-22 13:06:58 +00:00
|
|
|
- GAIN
|
|
|
|
|
- MAJOR GAIN
|
2024-10-14 12:26:01 +00:00
|
|
|
- UNSET
|
2024-10-15 06:51:41 +00:00
|
|
|
|
2024-11-29 11:03:59 +01:00
|
|
|
- name: int_edeposit_and_athena_verifications
|
2024-11-29 09:59:35 +01:00
|
|
|
description:
|
|
|
|
|
"This table holds records on verifications for Guesty and Edeposit bookings.
|
|
|
|
|
It contains details on validations checked on the guests, guest information
|
|
|
|
|
and some booking details like checkin-checkout date or the status of the verification.
|
|
|
|
|
The id values found here are completely unrelated to the ones found in Core DWH.
|
|
|
|
|
|
|
|
|
|
Note that id_verifications and booking_id should normally be 1 to 1.
|
|
|
|
|
Though there are exception, the API will accept a duplicate booking and the users
|
|
|
|
|
will be charged for it. A duplicate would return a unique id_verification."
|
|
|
|
|
columns:
|
|
|
|
|
- name: id_verification
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "unique Superhog generated id for this verification"
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-11-29 09:59:35 +01:00
|
|
|
- unique
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: id_booking
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "unique Superhog generated id for a booking.
|
|
|
|
|
note that this could be duplicated and both will be charged,
|
|
|
|
|
it's up to the user to no generate duplicate verifications"
|
|
|
|
|
|
|
|
|
|
- name: id_user_partner
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "unique Superhog generated id for partner"
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-11-29 09:59:35 +01:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: id_accommodation
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "unique Superhog generated id for a listing"
|
|
|
|
|
|
|
|
|
|
- name: version
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "value to identify if it is Guesty (V1) or E-deposit (V2)"
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-11-29 09:59:35 +01:00
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- V1
|
|
|
|
|
- V2
|
|
|
|
|
|
|
|
|
|
- name: verification_source
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "source of the verification for the booking"
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2024-11-29 09:59:35 +01:00
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- Guesty
|
|
|
|
|
- Edeposit
|
|
|
|
|
|
|
|
|
|
- name: verification_status
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "status of the verification"
|
|
|
|
|
|
|
|
|
|
- name: nightly_fee_local
|
|
|
|
|
data_type: double precision
|
2024-12-03 10:37:05 +01:00
|
|
|
description: "fee in local currency charged per night"
|
2024-11-29 09:59:35 +01:00
|
|
|
|
|
|
|
|
- name: number_nights
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: "number of nights for the booking"
|
|
|
|
|
|
2024-12-02 08:44:24 +01:00
|
|
|
- name: total_fee_local
|
|
|
|
|
data_type: double precision
|
2024-12-03 10:37:05 +01:00
|
|
|
description: "total fee in local currency for the booking"
|
2024-12-02 08:44:24 +01:00
|
|
|
|
2024-11-29 09:59:35 +01:00
|
|
|
- name: email_flag
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "screening result for email"
|
|
|
|
|
|
|
|
|
|
- name: phone_flag
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "screening result for phone"
|
|
|
|
|
|
|
|
|
|
- name: watch_list
|
|
|
|
|
data_type: text
|
|
|
|
|
description: "screening result of the guest"
|
|
|
|
|
|
|
|
|
|
- name: channel
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: checkin_at_utc
|
|
|
|
|
data_type: timestamp without time zone
|
|
|
|
|
description: "Timestamp of checkin for the booking"
|
|
|
|
|
|
|
|
|
|
- name: checkin_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: "Date of checkin for the booking"
|
|
|
|
|
|
|
|
|
|
- name: checkout_at_utc
|
|
|
|
|
data_type: timestamp without time zone
|
|
|
|
|
description: "Timestamp of checkout for the booking"
|
|
|
|
|
|
|
|
|
|
- name: checkout_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: "Date of checkout for the booking"
|
|
|
|
|
|
|
|
|
|
- name: is_cancelled
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: cancelled_at_utc
|
|
|
|
|
data_type: timestamp without time zone
|
|
|
|
|
description: "Timestamp of cancellation of the booking"
|
|
|
|
|
|
|
|
|
|
- name: cancelled_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: "Date of cancellation for the booking"
|
|
|
|
|
|
|
|
|
|
- name: user_email
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: guest_email
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: guest_last_name
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: guest_first_name
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: guest_telephone
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: company_name
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: property_manager_name
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: property_manager_email
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: listing_name
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
2024-12-03 10:37:05 +01:00
|
|
|
- name: listing_address
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
2024-11-29 09:59:35 +01:00
|
|
|
- name: listing_town
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: listing_country
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: listing_postcode
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: pets_allowed
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: level_of_protection_amount
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: level_of_protection_currency
|
|
|
|
|
data_type: text
|
|
|
|
|
description: ""
|
|
|
|
|
|
|
|
|
|
- name: status_updated_at_utc
|
|
|
|
|
data_type: timestamp without time zone
|
|
|
|
|
description: "Timestamp when status was last updated"
|
|
|
|
|
|
|
|
|
|
- name: status_updated_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: "Date of last status update of the verification"
|
|
|
|
|
|
|
|
|
|
- name: updated_at_utc
|
|
|
|
|
data_type: timestamp without time zone
|
|
|
|
|
description: "Timestamp of last updated of the verification"
|
|
|
|
|
|
|
|
|
|
- name: updated_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: "Date of last update of the verification"
|
|
|
|
|
|
|
|
|
|
- name: athena_creation_at_utc
|
|
|
|
|
data_type: timestamp without time zone
|
|
|
|
|
description:
|
|
|
|
|
"Athena timestamp referring to when the booking was created.
|
|
|
|
|
It's provided by Guesty, but is not mandatory.
|
|
|
|
|
In case of doubt use created_at_utc or created_date_utc fields"
|
|
|
|
|
|
|
|
|
|
- name: athena_creation_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: "Athena date referring to when the booking was created.
|
|
|
|
|
It's provided by Guesty, but is not mandatory.
|
|
|
|
|
In case of doubt use created_at_utc or created_date_utc fields"
|
|
|
|
|
|
|
|
|
|
- name: created_at_utc
|
|
|
|
|
data_type: timestamp without time zone
|
|
|
|
|
description: "Timestamp of creation of the verification in the system"
|
|
|
|
|
|
|
|
|
|
- name: created_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: "Date of creation of the verification in the system"
|
2025-01-03 08:07:16 +00:00
|
|
|
|
|
|
|
|
- name: int_monthly_aggregated_metrics_history_by_deal_by_time_window
|
|
|
|
|
description: |
|
|
|
|
|
This model aggregates monthly historic metrics for deals over different time windows.
|
|
|
|
|
It provides insights into bookings, listings, revenue, retained revenue and
|
2025-01-03 16:17:26 +00:00
|
|
|
additional metrics.
|
2025-01-03 08:07:16 +00:00
|
|
|
The data is segmented by deal and time window for detailed analysis.
|
|
|
|
|
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 08:07:16 +00:00
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- date
|
|
|
|
|
- id_deal
|
|
|
|
|
- time_window
|
|
|
|
|
|
|
|
|
|
columns:
|
|
|
|
|
- name: date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
The last day of the month or yesterday for historic metrics.
|
|
|
|
|
It's the same date as for KPIs related models.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 08:07:16 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: id_deal
|
|
|
|
|
data_type: character varying
|
|
|
|
|
description: Id of the deal associated to the host.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 08:07:16 +00:00
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: time_window
|
|
|
|
|
data_type: character varying
|
|
|
|
|
description: |
|
|
|
|
|
Identifier of the time window used for the aggregation of the metrics.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 08:07:16 +00:00
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
2025-01-07 15:22:30 +00:00
|
|
|
- All History
|
2025-01-03 08:07:16 +00:00
|
|
|
- Previous 12 months
|
2025-01-03 16:17:26 +00:00
|
|
|
- Previous 6 months
|
2025-01-03 08:07:16 +00:00
|
|
|
- Previous 3 months
|
|
|
|
|
- Previous month
|
|
|
|
|
|
2025-03-05 13:02:07 +00:00
|
|
|
- name: client_type
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Type of client. It can be either PLATFORM or API.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- PLATFORM
|
|
|
|
|
- API
|
|
|
|
|
|
2025-03-14 11:48:22 +01:00
|
|
|
- name: business_scope
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Business scope identifying the metric source.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- "Old Dash"
|
|
|
|
|
- "New Dash"
|
|
|
|
|
- "API"
|
|
|
|
|
- "UNSET"
|
|
|
|
|
|
2025-01-03 08:07:16 +00:00
|
|
|
- name: metric_from_date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
The first day of the month corresponding to the lower bound
|
|
|
|
|
range in which the metric is computed. It can be null if
|
|
|
|
|
there's no previous history for that deal. It can vary from
|
|
|
|
|
deal to deal depending on the number of months the deal has
|
|
|
|
|
been active.
|
|
|
|
|
|
|
|
|
|
- name: metric_to_date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
The first day of the month corresponding to the upper bound
|
|
|
|
|
range in which the metric is computed. It can be null if
|
|
|
|
|
there's no previous history for that deal.
|
|
|
|
|
|
|
|
|
|
- name: main_deal_name
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Main name for this ID deal.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 08:07:16 +00:00
|
|
|
- not_null
|
|
|
|
|
|
2025-01-09 16:31:22 +01:00
|
|
|
- name: has_active_pms
|
2025-01-09 15:56:58 +01:00
|
|
|
data_type: boolean
|
|
|
|
|
description: |
|
|
|
|
|
Does the deal have an active associated PMS.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-09 15:56:58 +01:00
|
|
|
- not_null
|
|
|
|
|
|
2025-01-09 16:31:22 +01:00
|
|
|
- name: active_pms_list
|
2025-01-09 15:56:58 +01:00
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Name of the active PMS associated with the deal. It can have more than
|
2025-01-09 16:31:22 +01:00
|
|
|
one PMS associated with it. It can be null if it doesn't have any PMS associated.
|
2025-01-09 15:56:58 +01:00
|
|
|
|
2025-03-06 17:12:32 +01:00
|
|
|
- name: active_accommodations_per_deal_segmentation
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Segment value based on the number of listings booked in 12 months
|
|
|
|
|
for a given deal and date.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- "0"
|
|
|
|
|
- "01-05"
|
|
|
|
|
- "06-20"
|
|
|
|
|
- "21-60"
|
|
|
|
|
- "61+"
|
|
|
|
|
- "UNSET"
|
|
|
|
|
|
2025-01-03 08:07:16 +00:00
|
|
|
- name: main_billing_country_iso_3_per_deal
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
ISO 3166-1 alpha-3 main country code in which the Deal is billed.
|
|
|
|
|
In some cases it's null.
|
|
|
|
|
|
2025-01-03 09:30:33 +00:00
|
|
|
- name: deal_lifecycle_state
|
2025-01-03 08:07:16 +00:00
|
|
|
data_type: string
|
|
|
|
|
description: |
|
2025-01-03 09:30:33 +00:00
|
|
|
Lifecycle state of the deal.
|
2025-01-03 08:07:16 +00:00
|
|
|
|
|
|
|
|
- name: deal_hubspot_stage
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Hubspot stage of the deal.
|
|
|
|
|
In some cases it's null.
|
|
|
|
|
|
|
|
|
|
- name: account_manager
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Account manager of the deal.
|
|
|
|
|
In some cases it's null.
|
|
|
|
|
|
|
|
|
|
- name: live_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Date when the deal went live according to
|
|
|
|
|
Hubspot. In some cases it's null.
|
|
|
|
|
|
|
|
|
|
- name: cancellation_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Date when the deal was cancelled according to
|
|
|
|
|
Hubspot. It can be null if the deal has never
|
|
|
|
|
churned.
|
|
|
|
|
|
2025-03-07 11:13:03 +01:00
|
|
|
- name: months_between_live_and_churn
|
2025-03-07 10:17:11 +01:00
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
2025-03-07 11:13:03 +01:00
|
|
|
Number of months between the live date and the
|
2025-03-07 10:17:11 +01:00
|
|
|
churn date.
|
|
|
|
|
data_tests:
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: last_contacted_date_utc
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Date when the deal was last contacted according to
|
|
|
|
|
Hubspot.
|
|
|
|
|
|
|
|
|
|
- name: days_between_last_contacted_and_churn
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Number of days between the last contacted date
|
|
|
|
|
and the churn date.
|
|
|
|
|
data_tests:
|
|
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: amount_times_contacted
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Number of times the deal was contacted according
|
|
|
|
|
to Hubspot.
|
|
|
|
|
|
2025-03-14 10:12:54 +01:00
|
|
|
- name: cancellation_category
|
|
|
|
|
data_type: text
|
|
|
|
|
description: Categorization as to why they cancelled the account
|
|
|
|
|
|
|
|
|
|
- name: cancellation_details
|
|
|
|
|
data_type: text
|
|
|
|
|
description: Free text with additional comments on why they cancelled the account
|
|
|
|
|
|
2025-03-07 11:32:09 +01:00
|
|
|
- name: is_churning
|
2025-03-07 10:17:11 +01:00
|
|
|
data_type: boolean
|
|
|
|
|
description: |
|
2025-03-07 11:32:09 +01:00
|
|
|
Flag to identify if the deal is churning or not.
|
|
|
|
|
|
|
|
|
|
- name: churn_reason
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Reason why the deal is churning.
|
|
|
|
|
data_tests:
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- "INACTIVITY"
|
|
|
|
|
- "ACCOUNT CANCELLATION"
|
2025-03-07 10:17:11 +01:00
|
|
|
|
2025-01-03 08:07:16 +00:00
|
|
|
- name: created_bookings
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Total amount of bookings created by the deal
|
|
|
|
|
in the time window. It can be null if no bookings
|
|
|
|
|
were created.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 08:07:16 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: listings_booked_in_month
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Average amount of listings booked in month by the deal
|
|
|
|
|
in the time window. It can be null if no listings
|
|
|
|
|
were booked.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 08:07:16 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: total_revenue_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue in GBP generated by the deal in the
|
|
|
|
|
time window. It can be null if no revenue was generated.
|
|
|
|
|
It can be negative.
|
|
|
|
|
|
|
|
|
|
- name: revenue_retained_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue in GBP retained by the deal in the
|
|
|
|
|
time window, post host takeaway waivers.
|
|
|
|
|
It can be null if no revenue was retained.
|
|
|
|
|
It can be negative.
|
|
|
|
|
|
|
|
|
|
- name: waiver_paid_back_to_host_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Total amount of waivers paid back to the host in GBP
|
|
|
|
|
in the time window. It can be null if no waivers were
|
|
|
|
|
paid back. It's displayed as a negative value.
|
|
|
|
|
|
|
|
|
|
- name: invoiced_revenue_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Total amount of revenue in GBP invoiced to the host
|
|
|
|
|
in the time window. It considers both Operator revenue as
|
|
|
|
|
well as APIs revenue. It can be null if no revenue was
|
|
|
|
|
invoiced to the host. It can be negative.
|
|
|
|
|
|
|
|
|
|
- name: guest_payments_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Total amount of payments in GBP made by the guest
|
|
|
|
|
in the time window. It can be null if no payments
|
|
|
|
|
were made by the guest. It can be negative.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 08:07:16 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: guest_revenue_retained_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Total amount of revenue in GBP retained by the deal
|
|
|
|
|
from the guest in the time window, post host takeaway waivers.
|
|
|
|
|
It can be null if no revenue was retained from the guest.
|
|
|
|
|
It can be negative.
|
|
|
|
|
|
|
|
|
|
- name: host_resolution_payment_count
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Total amount of resolution payments made to the host
|
|
|
|
|
in the time window. It can be null if no resolution
|
|
|
|
|
payments were made by the host.
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 08:07:16 +00:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: host_resolution_amount_paid_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Total amount of resolution payments made to the host
|
|
|
|
|
in GBP in the time window. It can be null if no resolution
|
|
|
|
|
payments were made by the host. It can be negative.
|
|
|
|
|
It's displayed as a negative value. In some extreme
|
|
|
|
|
cases, it can be higher than 0.
|
|
|
|
|
|
|
|
|
|
- name: revenue_retained_post_resolutions_in_gbp
|
|
|
|
|
data_type: decimal
|
|
|
|
|
description: |
|
|
|
|
|
Total amount of revenue in GBP retained by the deal
|
|
|
|
|
post waiver payouts and resolution payouts in the time window.
|
|
|
|
|
It can be null if no revenue was retained post resolution payments.
|
|
|
|
|
It can be negative, thus indicating that we are losing money.
|
|
|
|
|
|
2025-01-03 11:29:58 +01:00
|
|
|
- name: int_deals_consolidation
|
|
|
|
|
description: |
|
|
|
|
|
"This table contains all deal ids from different sources used in Superhog.
|
|
|
|
|
It contains the source (Hubspot, Xero or Core), the id_deal and the name"
|
|
|
|
|
columns:
|
|
|
|
|
- name: id_deal
|
|
|
|
|
data_type: character varying
|
|
|
|
|
description: "Unique ID for this deal."
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 11:29:58 +01:00
|
|
|
- unique
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: core_company_name
|
|
|
|
|
data_type: character varying
|
|
|
|
|
description: "Company name of the deal as shown in Core."
|
|
|
|
|
|
|
|
|
|
- name: core_company_name_count
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: "Count of distinct names the deal has in Core.
|
|
|
|
|
It might be the case that a deal has ony NULL value for a name,
|
|
|
|
|
so the count will be 0"
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 11:29:58 +01:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: hubspot_deal_name
|
|
|
|
|
data_type: character varying
|
|
|
|
|
description: "Name of the deal as shown in Hubspot."
|
|
|
|
|
|
|
|
|
|
- name: hubspot_deal_name_count
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: "Count of distinct names the deal has in Hubspot.
|
|
|
|
|
It might be the case that a deal has ony NULL value for a name,
|
|
|
|
|
so the count will be 0"
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 11:29:58 +01:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: xero_contact_name
|
|
|
|
|
data_type: character varying
|
|
|
|
|
description: "Contact name of the deal as shown in Xero."
|
|
|
|
|
|
|
|
|
|
- name: xero_contact_name_count
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: "Count of distinct names the deal has in Xero.
|
|
|
|
|
It might be the case that a deal has ony NULL value for a name,
|
|
|
|
|
so the count will be 0"
|
2025-01-13 16:00:35 +01:00
|
|
|
data_tests:
|
2025-01-03 11:29:58 +01:00
|
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
|
|
|
min_value: 0
|
|
|
|
|
strictly: false
|
|
|
|
|
|
|
|
|
|
- name: is_deal_in_core
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: "Flag to indicate if the deal is in Core."
|
|
|
|
|
|
|
|
|
|
- name: is_deal_in_hubspot
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: "Flag to indicate if the deal is in Hubspot."
|
|
|
|
|
|
|
|
|
|
- name: is_deal_in_xero
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: "Flag to indicate if the deal is in Xero."
|
2025-01-13 17:26:34 +01:00
|
|
|
|
2025-02-18 14:30:12 +00:00
|
|
|
- name: int_ytd_mtd_main_metrics_overview
|
|
|
|
|
description: |
|
|
|
|
|
This model provides a high-level overview of the main metrics for the month-to-date
|
|
|
|
|
and financial year-to-date periods.
|
|
|
|
|
|
|
|
|
|
data_tests:
|
|
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- date
|
|
|
|
|
- dimension
|
|
|
|
|
- dimension_value
|
|
|
|
|
|
|
|
|
|
columns:
|
|
|
|
|
- name: date
|
|
|
|
|
data_type: date
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
The date for the month-to-date and year-to-date metrics.
|
2025-02-18 14:30:12 +00:00
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: dimension
|
|
|
|
|
data_type: string
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
The dimension or granularity of the metrics.
|
2025-02-18 14:30:12 +00:00
|
|
|
data_tests:
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- global
|
|
|
|
|
|
|
|
|
|
- name: dimension_value
|
|
|
|
|
data_type: string
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
The value or segment available for the selected dimension.
|
2025-02-18 14:30:12 +00:00
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: calendar_year
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
The calendar year associated with the data.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: financial_year
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
The financial year associated with the data.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_date
|
|
|
|
|
data_type: date
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
The equivalent date in the previous year.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_billable_bookings
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total billable bookings for the current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_churning_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of churning deals for the current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_live_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of live deals for the current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_new_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of new deals for the current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_operator_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Operator revenue per billable booking for the
|
|
|
|
|
current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_resolutions_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Resolutions payout rate for the current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_revenue_retained_post_resolutions_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Revenue retained after resolutions for the current
|
|
|
|
|
month MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_total_guest_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total guest payments for the current month MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_total_revenue_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total revenue for the current month MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_waiver_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total waiver payments made in GBP for the current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_waiver_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver payout rate for the current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_waiver_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver revenue per billable booking for the current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_xero_apis_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for APIs processed through Xero for
|
|
|
|
|
the current month MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_xero_host_resolution_amount_paid_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Amount paid to hosts for resolutions processed
|
|
|
|
|
through Xero for the current month MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_xero_operator_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for operators processed through Xero
|
|
|
|
|
for the current month MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd_xero_waiver_paid_back_to_host_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver amounts paid back to hosts via Xero
|
|
|
|
|
for the current month MTD in GBP.
|
|
|
|
|
|
|
|
|
|
- name: current_month_mtd_total_revenue_churn_12m
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue in the last 12 months that was generated by
|
|
|
|
|
deals that have churned in the current month MTD.
|
|
|
|
|
|
|
|
|
|
- name: current_month_mtd_total_revenue_global_12m
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue in the last 12 months that was generated by any
|
|
|
|
|
deal, indistinctly of it being active, churn, etc. for the
|
|
|
|
|
current month MTD. This is only used to compute the churn rate.
|
|
|
|
|
|
|
|
|
|
- name: current_month_mtd_total_revenue_churn_rate
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue churn rate for the current month MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
2025-03-20 16:01:27 +00:00
|
|
|
- name: current_month_mtd_booking_net_fees_in_gbp
|
2025-02-25 14:05:54 +00:00
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
2025-03-20 16:01:27 +00:00
|
|
|
Total Booking net fees in gbp for the current month MTD.
|
|
|
|
|
|
|
|
|
|
- name: current_month_mtd_booking_net_fees_per_billable_booking
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total Booking net fees per billable booking for the current month MTD.
|
2025-02-25 14:05:54 +00:00
|
|
|
|
2025-02-18 14:30:12 +00:00
|
|
|
- name: previous_year_mtd_billable_bookings
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total billable bookings for the previous year (12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_churning_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of churning deals for the previous year (12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_live_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of live deals for the previous year (12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_new_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of new deals for the previous year (12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_operator_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Operator revenue per billable booking for the
|
|
|
|
|
previous year (12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_resolutions_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Resolutions payout rate for the previous year
|
|
|
|
|
(12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_revenue_retained_post_resolutions_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Revenue retained after resolutions for the previous year
|
|
|
|
|
(12 months ago) MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_total_guest_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total guest payments for the previous year (12 months ago)
|
|
|
|
|
MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_total_revenue_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total revenue for the previous year (12 months ago) MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_waiver_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total waiver payments made in GBP for the previous
|
|
|
|
|
year (12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_waiver_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver payout rate for the previous year (12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_waiver_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver revenue per billable booking for the
|
|
|
|
|
previous year (12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_xero_apis_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for APIs processed through Xero for the
|
|
|
|
|
previous year (12 months ago) MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_xero_host_resolution_amount_paid_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Amount paid to hosts for resolutions processed through
|
|
|
|
|
Xero for the previous year (12 months ago) MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_xero_operator_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for operators processed through Xero for the
|
|
|
|
|
previous year (12 months ago) MTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_year_mtd_xero_waiver_paid_back_to_host_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver amounts paid back to hosts via Xero for the
|
|
|
|
|
previous year (12 months ago) MTD in GBP.
|
|
|
|
|
|
|
|
|
|
- name: previous_year_mtd_total_revenue_churn_12m
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue in the last 12 months that was generated by
|
|
|
|
|
deals that have churned in the previous year
|
|
|
|
|
(12 months ago) MTD.
|
|
|
|
|
|
|
|
|
|
- name: previous_year_mtd_total_revenue_global_12m
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue generated globally in the last 12 months
|
|
|
|
|
for the previous year (12 months ago) MTD.
|
|
|
|
|
This is only used to compute the churn rate.
|
|
|
|
|
|
|
|
|
|
- name: previous_year_mtd_total_revenue_churn_rate
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue churn rate for the previous year
|
|
|
|
|
(12 months ago) MTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
2025-03-20 16:01:27 +00:00
|
|
|
- name: previous_year_mtd_booking_net_fees_in_gbp
|
2025-02-25 14:05:54 +00:00
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
2025-03-20 16:01:27 +00:00
|
|
|
Total Booking net fees in gbp for the previous
|
|
|
|
|
year (12 months ago) MTD.
|
|
|
|
|
|
|
|
|
|
- name: previous_year_mtd_booking_net_fees_per_billable_booking
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total Booking net fees per billable booking for the
|
|
|
|
|
previous year (12 months ago) MTD.
|
2025-02-25 14:05:54 +00:00
|
|
|
|
2025-02-18 14:30:12 +00:00
|
|
|
- name: current_ytd_billable_bookings
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total billable bookings for the current financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_churning_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of churning deals for the current financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_live_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of live deals for the current financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_new_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of new deals for the current financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_operator_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Operator revenue per billable booking for the current
|
|
|
|
|
financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_resolutions_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Resolutions payout rate for the current financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_revenue_retained_post_resolutions_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Revenue retained after resolutions for the current
|
|
|
|
|
financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_total_guest_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total guest payments for the current financial year
|
|
|
|
|
YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_total_revenue_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total revenue for the current financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_waiver_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total waiver payments made in GBP for the current
|
|
|
|
|
financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_waiver_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver payout rate for the current financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_waiver_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver revenue per billable booking for the current
|
|
|
|
|
financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_xero_apis_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for APIs processed through Xero for
|
|
|
|
|
the current financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_xero_host_resolution_amount_paid_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Amount paid to hosts for resolutions processed through
|
|
|
|
|
Xero for the current financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_xero_operator_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for operators processed through Xero
|
|
|
|
|
for the current financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: current_ytd_xero_waiver_paid_back_to_host_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver amounts paid back to hosts via Xero
|
|
|
|
|
for the current financial year YTD in GBP.
|
|
|
|
|
|
|
|
|
|
- name: current_ytd_total_revenue_churn_12m
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue in the last 12 months that was generated by
|
|
|
|
|
deals that have churned in the period of the current
|
|
|
|
|
financial year YTD.
|
|
|
|
|
|
|
|
|
|
- name: current_ytd_total_revenue_global_12m
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue generated globally in the last 12 months
|
|
|
|
|
for the current financial year YTD.
|
|
|
|
|
This is only used to compute the churn rate.
|
|
|
|
|
|
|
|
|
|
- name: current_ytd_total_revenue_churn_rate
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue churn rate for the current financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
2025-03-20 16:01:27 +00:00
|
|
|
- name: current_ytd_booking_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total booking net fees in gbp for the current financial year YTD.
|
|
|
|
|
|
|
|
|
|
- name: current_ytd_booking_net_fees_per_billable_booking
|
2025-02-25 14:05:54 +00:00
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
2025-03-20 16:01:27 +00:00
|
|
|
Total booking net fees per billable booking for the
|
|
|
|
|
current financial year YTD.
|
2025-02-25 14:05:54 +00:00
|
|
|
|
2025-02-18 14:30:12 +00:00
|
|
|
- name: previous_ytd_billable_bookings
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total billable bookings for the previous financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_churning_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of churning deals for the previous financial
|
|
|
|
|
year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_live_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of live deals for the previous financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_new_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of new deals for the previous financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_operator_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Operator revenue per billable booking for the previous
|
|
|
|
|
financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_resolutions_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Resolutions payout rate for the previous financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_revenue_retained_post_resolutions_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Revenue retained after resolutions for the previous
|
|
|
|
|
financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_total_guest_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total guest payments for the previous financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_total_revenue_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total revenue for the previous financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_waiver_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total waiver payments made in GBP for the previous
|
|
|
|
|
financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_waiver_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver payout rate for the previous financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_waiver_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver revenue per billable booking for
|
|
|
|
|
the previous financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_xero_apis_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for APIs processed through Xero
|
|
|
|
|
for the previous financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_xero_host_resolution_amount_paid_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Amount paid to hosts for resolutions processed
|
|
|
|
|
through Xero for the previous financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_xero_operator_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for operators processed through Xero
|
|
|
|
|
for the previous financial year YTD in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_ytd_xero_waiver_paid_back_to_host_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver amounts paid back to hosts via Xero
|
|
|
|
|
for the previous financial year YTD in GBP.
|
|
|
|
|
|
|
|
|
|
- name: previous_ytd_total_revenue_churn_12m
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue in the last 12 months that was generated by
|
|
|
|
|
deals that have churned in the period of the previous
|
|
|
|
|
financial year YTD.
|
|
|
|
|
|
|
|
|
|
- name: previous_ytd_total_revenue_global_12m
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue generated globally in the last 12 months
|
|
|
|
|
for the previous financial year YTD.
|
|
|
|
|
This is only used to compute the churn rate.
|
|
|
|
|
|
|
|
|
|
- name: previous_ytd_total_revenue_churn_rate
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue churn rate for the previous
|
|
|
|
|
financial year YTD.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
2025-03-20 16:01:27 +00:00
|
|
|
- name: previous_ytd_booking_net_fees_in_gbp
|
2025-02-25 14:05:54 +00:00
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
2025-03-20 16:01:27 +00:00
|
|
|
Total booking net fees in gbp for the previous financial year YTD.
|
|
|
|
|
|
|
|
|
|
- name: previous_ytd_booking_net_fees_per_billable_booking
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total booking net fees per billable booking for the
|
|
|
|
|
previous financial year YTD.
|
2025-02-25 14:05:54 +00:00
|
|
|
|
2025-02-18 14:30:12 +00:00
|
|
|
- name: previous_month_eom_billable_bookings
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total billable bookings for the previous month,
|
|
|
|
|
at the end of the month.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_churning_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of churning deals for the previous month,
|
|
|
|
|
at the end of the month.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_live_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of live deals for the previous month,
|
|
|
|
|
at the end of the month.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_new_deals
|
|
|
|
|
data_type: integer
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Number of new deals for the previous month,
|
|
|
|
|
at the end of the month.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_operator_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Operator revenue per billable booking for
|
|
|
|
|
the previous month, at the end of the month.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_resolutions_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Resolutions payout rate for the previous month,
|
|
|
|
|
at the end of the month.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_revenue_retained_post_resolutions_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Revenue retained after resolutions for the
|
|
|
|
|
previous month, at the end of the month in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_total_guest_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total guest payments for the previous month,
|
|
|
|
|
at the end of the month in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_total_revenue_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total revenue for the previous month, at the
|
|
|
|
|
end of the month in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_waiver_payments_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Total waiver payments made in GBP for the previous
|
|
|
|
|
month, at the end of the month.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_waiver_payout_rate
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver payout rate for the previous month,
|
|
|
|
|
at the end of the month.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_waiver_revenue_per_billable_booking
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver revenue per billable booking for the previous month,
|
|
|
|
|
at the end of the month.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_xero_apis_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for APIs processed through Xero for the previous month,
|
|
|
|
|
at the end of the month in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_xero_host_resolution_amount_paid_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Amount paid to hosts for resolutions processed through Xero for
|
|
|
|
|
the previous month, at the end of the month in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_xero_operator_net_fees_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Net fees for operators processed through Xero for the previous month,
|
|
|
|
|
at the end of the month in GBP.
|
2025-02-18 14:30:12 +00:00
|
|
|
|
|
|
|
|
- name: previous_month_eom_xero_waiver_paid_back_to_host_in_gbp
|
|
|
|
|
data_type: numeric
|
2025-02-25 09:41:28 +00:00
|
|
|
description: |
|
|
|
|
|
Waiver amounts paid back to hosts via Xero for the previous month,
|
|
|
|
|
at the end of the month in GBP.
|
|
|
|
|
|
|
|
|
|
- name: previous_month_eom_total_revenue_churn_12m
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue in the last 12 months that was generated by
|
|
|
|
|
deals that have churned in the previous month, at the end of
|
|
|
|
|
the month, in GBP.
|
|
|
|
|
|
|
|
|
|
- name: previous_month_eom_total_revenue_global_12m
|
|
|
|
|
data_type: numeric
|
2025-02-25 14:05:54 +00:00
|
|
|
description: |
|
2025-02-25 09:41:28 +00:00
|
|
|
Total revenue generated globally in the last 12 months
|
|
|
|
|
for the previous month, at the end of the month.
|
|
|
|
|
This is only used to compute the churn rate.
|
|
|
|
|
|
|
|
|
|
- name: previous_month_eom_total_revenue_churn_rate
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total revenue churn rate for the previous month,
|
|
|
|
|
at the end of the month.
|
2025-02-18 15:45:24 +00:00
|
|
|
|
2025-03-20 16:01:27 +00:00
|
|
|
- name: previous_month_eom_booking_net_fees_in_gbp
|
2025-02-25 14:05:54 +00:00
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
2025-03-20 16:01:27 +00:00
|
|
|
Total booking net fees in gbp for the previous
|
|
|
|
|
month at the end of the month.
|
|
|
|
|
|
|
|
|
|
- name: previous_month_eom_booking_net_fees_per_billable_booking
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Total booking net fees per billable booking for the
|
|
|
|
|
previous month at the end of the month.
|
2025-02-25 14:05:54 +00:00
|
|
|
|
2025-02-18 15:45:24 +00:00
|
|
|
- name: int_ytd_mtd_aggregated_main_metrics_overview
|
|
|
|
|
description: |
|
|
|
|
|
This model provides a high-level overview of the main metrics for the month-to-date
|
|
|
|
|
and financial year-to-date periods. Data is aggregated at metric level, and provides
|
|
|
|
|
evolutions current month MTD vs. previous month EOM, current month MTD vs. previous
|
|
|
|
|
year MTD and current YTD vs. previous YTD.
|
|
|
|
|
|
|
|
|
|
data_tests:
|
|
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- date
|
|
|
|
|
- dimension
|
|
|
|
|
- dimension_value
|
|
|
|
|
- metric_name
|
|
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- date
|
|
|
|
|
- dimension
|
|
|
|
|
- dimension_value
|
|
|
|
|
- id_metric
|
|
|
|
|
|
|
|
|
|
columns:
|
|
|
|
|
- name: date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: The date for the month-to-date and year-to-date metrics.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: dimension
|
|
|
|
|
data_type: string
|
|
|
|
|
description: The dimension or granularity of the metrics.
|
|
|
|
|
data_tests:
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- global
|
|
|
|
|
|
|
|
|
|
- name: dimension_value
|
|
|
|
|
data_type: string
|
|
|
|
|
description: The value or segment available for the selected dimension.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: calendar_year
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: The calendar year associated with the data.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: financial_year
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: The financial year associated with the data.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: previous_year_date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
The equivalent date in the previous year. It can be null if the
|
|
|
|
|
metric is not available in the previous year
|
|
|
|
|
|
|
|
|
|
- name: id_metric
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Unique ID for this metric. It is preferable to use this ID when
|
|
|
|
|
building a report to ensure changes in the metric name do not
|
|
|
|
|
affect the report.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: metric_name
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Name of the metric. It is preferable to use the ID of the metric
|
|
|
|
|
when building a report to ensure changes in the metric name do not
|
|
|
|
|
affect the report.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
2025-02-27 13:18:03 +00:00
|
|
|
- name: number_format
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Number format to display the metric in the report.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- INTEGER
|
|
|
|
|
- PERCENTAGE_2_DECIMALS
|
|
|
|
|
- CURRENCY_GBP_INTEGER
|
|
|
|
|
- CURRENCY_GBP_1_DECIMAL
|
|
|
|
|
|
2025-02-25 14:05:54 +00:00
|
|
|
- name: display_exclusion
|
|
|
|
|
data_type: string
|
2025-02-18 15:45:24 +00:00
|
|
|
description: |
|
2025-02-25 14:05:54 +00:00
|
|
|
Category to indicate if the metric requires a certain exclusion due
|
|
|
|
|
to relying on not timely information.
|
2025-02-18 15:45:24 +00:00
|
|
|
This will limit the display for reporting purposes.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
2025-02-25 14:05:54 +00:00
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- NONE
|
|
|
|
|
- INVOICING
|
|
|
|
|
- ONGOING_MONTH
|
2025-02-18 15:45:24 +00:00
|
|
|
|
|
|
|
|
- name: current_month_mtd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Value of the metric for the current month MTD.
|
|
|
|
|
|
|
|
|
|
- name: previous_month_eom
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Value of the metric for the previous month EOM.
|
|
|
|
|
|
|
|
|
|
- name: previous_year_mtd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Value of the metric for the previous year MTD.
|
|
|
|
|
|
|
|
|
|
- name: current_year_ytd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Value of the metric for the current year YTD.
|
|
|
|
|
|
|
|
|
|
- name: previous_year_ytd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Value of the metric for the previous year YTD.
|
|
|
|
|
|
|
|
|
|
- name: diff_current_month_mtd_vs_previous_month_eom
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Difference between the current month MTD and the previous month EOM.
|
|
|
|
|
|
|
|
|
|
- name: diff_current_month_mtd_vs_previous_year_mtd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Difference between the current month MTD and the previous year MTD.
|
|
|
|
|
|
|
|
|
|
- name: diff_current_ytd_vs_previous_ytd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Difference between the current year YTD and the previous year YTD.
|
|
|
|
|
|
|
|
|
|
- name: rel_diff_current_month_mtd_vs_previous_month_eom
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current month MTD and the previous month EOM.
|
|
|
|
|
|
|
|
|
|
- name: rel_diff_current_month_mtd_vs_previous_year_mtd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current month MTD and the previous year MTD.
|
|
|
|
|
|
|
|
|
|
- name: rel_diff_current_ytd_vs_previous_ytd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current year YTD and the previous year YTD.
|
2025-02-24 10:39:45 +00:00
|
|
|
|
|
|
|
|
- name: target_eom_value
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
The EOM target value for this metric. This is the value that we aim to
|
|
|
|
|
achieve by the end of the month. It can be null if the target is not
|
|
|
|
|
available.
|
|
|
|
|
|
|
|
|
|
- name: target_ytd_value
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
The YTD target value for this metric. This is the cumulative value that we
|
|
|
|
|
aim to achieve by the end of each month with respect to the beginning of the
|
|
|
|
|
financial year, that will put us to reach the EOFY target. It can be null if
|
|
|
|
|
the target is not available.
|
|
|
|
|
|
|
|
|
|
- name: target_eofy_value
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
The EOFY target value for this metric. This is the value that we aim to
|
|
|
|
|
achieve by the end of the financial year. It can be null if the target is
|
|
|
|
|
not available.
|
|
|
|
|
|
|
|
|
|
- name: diff_current_month_mtd_vs_eom_target
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Difference between the current month MTD and the EOM target. It can be null
|
|
|
|
|
if the target is not available.
|
|
|
|
|
|
|
|
|
|
- name: diff_current_ytd_vs_ytd_target
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Difference between the current year YTD and the YTD target. It can be null
|
|
|
|
|
if the target is not available.
|
|
|
|
|
|
|
|
|
|
- name: diff_current_ytd_vs_eofy_target
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Difference between the current year YTD and the EOFY target. It can be null
|
|
|
|
|
if the target is not available.
|
|
|
|
|
|
|
|
|
|
- name: rel_diff_current_month_mtd_vs_eom_target
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current month MTD and the EOM target. It can be null
|
|
|
|
|
if the target is not available.
|
|
|
|
|
|
|
|
|
|
- name: rel_diff_current_ytd_vs_ytd_target
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current year YTD and the YTD target. It can be null
|
|
|
|
|
if the target is not available.
|
|
|
|
|
|
|
|
|
|
- name: achievement_rate_current_ytd_vs_eofy_target
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Achievement rate between the current year YTD and the EOFY target. It can be null
|
|
|
|
|
if the target is not available.
|
2025-02-25 14:05:54 +00:00
|
|
|
|
|
|
|
|
- name: rel_diff_with_sign_current_month_mtd_vs_previous_month_eom
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current month MTD and the previous month EOM,
|
|
|
|
|
with a sign to represent if the relative difference is good (positive) or bad
|
|
|
|
|
(negative) for our business.
|
|
|
|
|
|
|
|
|
|
- name: rel_diff_with_sign_current_month_mtd_vs_previous_year_mtd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current month MTD and the previous year MTD,
|
|
|
|
|
with a sign to represent if the relative difference is good (positive) or bad
|
|
|
|
|
(negative) for our business.
|
|
|
|
|
|
|
|
|
|
- name: rel_diff_with_sign_current_ytd_vs_previous_ytd
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current year YTD and the previous year YTD,
|
|
|
|
|
with a sign to represent if the relative difference is good (positive) or bad
|
|
|
|
|
(negative) for our business.
|
|
|
|
|
|
|
|
|
|
- name: rel_diff_with_sign_current_month_mtd_vs_eom_target
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current month MTD and the EOM target,
|
|
|
|
|
with a sign to represent if the relative difference is good (positive) or bad
|
|
|
|
|
(negative) for our business.
|
|
|
|
|
|
|
|
|
|
- name: rel_diff_with_sign_current_ytd_vs_ytd_target
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Relative difference between the current year YTD and the YTD target,
|
|
|
|
|
with a sign to represent if the relative difference is good (positive) or bad
|
|
|
|
|
(negative) for our business.
|
2025-04-08 10:04:11 +00:00
|
|
|
|
|
|
|
|
- name: int_mtd_aggregated_metrics_by_deal
|
|
|
|
|
description: |
|
|
|
|
|
This model aggregates the historic information of our business by providing
|
|
|
|
|
different metrics at account level (by id_deal).
|
|
|
|
|
Additionally it provides Deal attributes.
|
|
|
|
|
|
|
|
|
|
data_tests:
|
|
|
|
|
- dbt_utils.unique_combination_of_columns:
|
|
|
|
|
combination_of_columns:
|
|
|
|
|
- date
|
|
|
|
|
- metric
|
|
|
|
|
- id_deal
|
|
|
|
|
columns:
|
|
|
|
|
- name: year
|
|
|
|
|
data_type: int
|
|
|
|
|
description: Year number of the given date.
|
|
|
|
|
|
|
|
|
|
- name: month
|
|
|
|
|
data_type: int
|
|
|
|
|
description: Month number of the given date.
|
|
|
|
|
|
|
|
|
|
- name: day
|
|
|
|
|
data_type: int
|
|
|
|
|
description: Day monthly number of the given date.
|
|
|
|
|
|
|
|
|
|
- name: is_end_of_month
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: Is end of month, 1 for yes, 0 for no.
|
|
|
|
|
|
|
|
|
|
- name: is_current_month
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: |
|
|
|
|
|
Checks if the date is within the current executed month,
|
|
|
|
|
1 for yes, 0 for no.
|
|
|
|
|
|
|
|
|
|
- name: is_end_of_month_or_yesterday
|
|
|
|
|
data_type: boolean
|
|
|
|
|
description: |
|
|
|
|
|
Checks if the date is end of month or yesterday,
|
|
|
|
|
1 for yes, 0 for no.
|
|
|
|
|
|
|
|
|
|
- name: first_day_month
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
First day of the month corresponding to the date field.
|
|
|
|
|
It comes from int_dates_mtd logic.
|
|
|
|
|
|
|
|
|
|
- name: date
|
|
|
|
|
data_type: date
|
|
|
|
|
description: |
|
|
|
|
|
Main date for the computation, that is used for filters.
|
|
|
|
|
It comes from int_dates_mtd logic.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: id_deal
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Unique ID for a deal, or account.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: deal
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Combination of the ID and the Name of the deal.
|
|
|
|
|
|
|
|
|
|
- name: active_accommodations_per_deal_segmentation
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Segment value based on the number of listings booked in 12 months
|
|
|
|
|
for a given deal and date.
|
|
|
|
|
|
|
|
|
|
- name: main_billing_country_iso_3_per_deal
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
ISO 3166-1 alpha-3 main country code in which the Deal is billed.
|
|
|
|
|
In some cases it's null.
|
|
|
|
|
|
|
|
|
|
- name: business_scope
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Business scope identifying the metric source.
|
|
|
|
|
|
|
|
|
|
- name: account_manager
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Account manager of the deal.
|
|
|
|
|
In some cases it's null.
|
|
|
|
|
|
|
|
|
|
- name: deal_lifecycle_state
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Lifecycle state of the deal.
|
|
|
|
|
|
|
|
|
|
- name: metric
|
|
|
|
|
data_type: text
|
|
|
|
|
description: Name of the business metric.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
|
|
|
|
|
- name: order_by
|
|
|
|
|
data_type: integer
|
|
|
|
|
description: |
|
|
|
|
|
Order for displaying purposes. Null values are accepted, but keep
|
|
|
|
|
in mind that then there's no default controlled display order.
|
|
|
|
|
|
|
|
|
|
- name: number_format
|
|
|
|
|
data_type: text
|
|
|
|
|
description: Allows for grouping and formatting for displaying purposes.
|
|
|
|
|
|
|
|
|
|
- name: value
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Numeric value (integer or decimal) that corresponds to the MTD computation of the metric
|
|
|
|
|
at a given date. Note that if the month is not in progress, then this value corresponds
|
|
|
|
|
to the monthly figure.
|
|
|
|
|
|
|
|
|
|
- name: previous_year_value
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
Numeric value (integer or decimal) that corresponds to the MTD computation of the metric
|
|
|
|
|
on the previous year at a given date.
|
|
|
|
|
|
|
|
|
|
- name: relative_increment
|
|
|
|
|
data_type: numeric
|
|
|
|
|
description: |
|
|
|
|
|
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 Truvi, otherwise is equal to relative_increment.
|
|
|
|
|
This value is specially created for formatting in PBI
|
|
|
|
|
|
|
|
|
|
- name: display_exclusion
|
|
|
|
|
data_type: string
|
|
|
|
|
description: |
|
|
|
|
|
Category to indicate if the metric requires a certain exclusion due
|
|
|
|
|
to relying on not timely information.
|
|
|
|
|
This will limit the display for reporting purposes.
|
|
|
|
|
data_tests:
|
|
|
|
|
- not_null
|
|
|
|
|
- accepted_values:
|
|
|
|
|
values:
|
|
|
|
|
- NONE
|
|
|
|
|
- INVOICING
|
|
|
|
|
- ONGOING_MONTH
|