change "tests:" to "data_tests:"

This commit is contained in:
Pablo Martin 2025-01-13 16:00:35 +01:00
parent db1edf7a1c
commit c3c628aec4
29 changed files with 1565 additions and 1565 deletions

View file

@ -14,7 +14,7 @@ models:
- name: id_verification
data_type: text
description: "unique Superhog generated id for this verification"
tests:
data_tests:
- unique
- not_null
@ -27,7 +27,7 @@ models:
- name: id_user_partner
data_type: text
description: "unique Superhog generated id for partner"
tests:
data_tests:
- not_null
- name: id_accommodation
@ -37,7 +37,7 @@ models:
- name: version
data_type: text
description: "value to identify if it is Guesty (V1) or E-deposit (V2)"
tests:
data_tests:
- accepted_values:
values:
- V1
@ -45,7 +45,7 @@ models:
- name: verification_source
data_type: text
description: "source of the verification for the booking"
tests:
data_tests:
- accepted_values:
values:
- Guesty
@ -213,7 +213,7 @@ models:
- name: id_verification
data_type: text
description: "unique Superhog generated id for this verification"
tests:
data_tests:
- unique
- not_null
@ -222,7 +222,7 @@ models:
description: "unique Superhog generated id for a booking.
note that there might be duplicate bookings on the original data
but we remove them keeping only the verification with the most recent update."
tests:
data_tests:
- not_null
- unique
@ -233,13 +233,13 @@ models:
- name: is_cancelled
data_type: boolean
description: "indicates if the booking has been cancelled or not."
tests:
data_tests:
- not_null
- name: ok_status_fee_in_gbp
data_type: integer
description: "total fee charged on checkout, this is only charged for approved verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -249,11 +249,11 @@ models:
- name: created_date_utc
data_type: date
description: "Date of creation of the verification in the system"
tests:
data_tests:
- not_null
- name: checkout_date_utc
data_type: date
description: "Date of checkout for the booking"
tests:
data_tests:
- not_null

View file

@ -9,33 +9,33 @@ models:
- name: id_record
data_type: text
description: Unique identifier for the record.
tests:
data_tests:
- unique
- not_null
- name: id_user_partner
data_type: text
description: Identifier for the partner user associated with the check-in.
tests:
data_tests:
- not_null
- name: id_reservation
data_type: text
description: Unique identifier for the reservation associated with the check-in.
tests:
data_tests:
- not_null
- name: id_accommodation
data_type: text
description: Unique identifier for the accommodation associated with the reservation.
tests:
data_tests:
- not_null
- name: id_currency
data_type: bigint
description: "Id of the currency, works as a foreign key to the
currency table"
tests:
data_tests:
- not_null
- relationships:
to: ref('stg_core__currency')
@ -64,7 +64,7 @@ models:
- name: reservation_total_amount_in_local_currency
data_type: numeric
description: Total cost amount in guest currency for the reservation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: true
@ -73,19 +73,19 @@ models:
data_type: text
description: |
Currency ISO code used by guest for the reservation.
tests:
data_tests:
- not_null
- name: channel
data_type: text
description: Booking channel or source.
tests:
data_tests:
- not_null
- name: checkin_date_utc
data_type: date
description: Check-in date for the booking.
tests:
data_tests:
- not_null
- name: checkin_time_utc
@ -95,13 +95,13 @@ models:
- name: checkout_date_utc
data_type: date
description: Check-out date for the booking.
tests:
data_tests:
- not_null
- name: number_of_nights
data_type: integer
description: Number of nights for the reservation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 1
@ -140,29 +140,29 @@ models:
- name: updated_at_utc
data_type: timestamp without time zone
description: Timestamp of the last update to the record.
tests:
data_tests:
- not_null
- name: updated_date_utc
data_type: date
description: Date of the last update to the record.
tests:
data_tests:
- not_null
- name: cosmos_creation_at_utc
data_type: timestamp without time zone
description: Timestamp when the record was created in Cosmos DB.
tests:
data_tests:
- not_null
- name: cosmos_creation_date_utc
data_type: date
description: Date when the record was created in Cosmos DB.
tests:
data_tests:
- not_null
- name: created_date_utc
data_type: date
description: Date when the record was created.
tests:
data_tests:
- not_null

File diff suppressed because it is too large Load diff

View file

@ -26,18 +26,18 @@ models:
description: A unique ID for the record, derived from concatenating the
currencies, date, source and version. Currency order is relevant
(EURUSD != USDEUR).
tests:
data_tests:
- not_null
- unique
- name: from_currency
data_type: character
description: The source currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: to_currency
data_type: character
description: The target currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: rate
data_type: numeric
@ -51,13 +51,13 @@ models:
always be one.
The rate can be smaller than one, but can't be negative.
tests:
data_tests:
- not_negative_or_zero
- not_null
- name: rate_date_utc
data_type: date
description: The date in which the rate record is relevant.
tests:
data_tests:
- not_null
- name: source
data_type: text
@ -72,7 +72,7 @@ models:
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.
tests:
data_tests:
- accepted_values:
values:
- guess
@ -85,7 +85,7 @@ models:
For external sources, this will be the point in time when the
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.
tests:
data_tests:
- not_null
- name: int_simple_exchange_rates
description: >-
@ -96,7 +96,7 @@ models:
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.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- from_currency
@ -106,22 +106,22 @@ models:
- name: from_currency
data_type: character
description: The source currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: to_currency
data_type: character
description: The source currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: rate
data_type: numeric
description: The target currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: rate_date_utc
data_type: date
description: The date in which the rate record is relevant.
tests:
data_tests:
- not_null
- name: updated_at_utc
data_type: timestamp with time zone
@ -129,7 +129,7 @@ models:
For external sources, this will be the point in time when the
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.
tests:
data_tests:
- not_null
- name: int_mtd_vs_previous_year_metrics
@ -145,7 +145,7 @@ models:
date and it computes the relative increment by using the macro:
- calculate_safe_relative_increment
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -156,13 +156,13 @@ models:
- name: date
data_type: date
description: The date for the month-to-date metrics.
tests:
data_tests:
- not_null
- name: dimension
data_type: string
description: The dimension or granularity of the metrics.
tests:
data_tests:
- accepted_values:
values:
- global
@ -172,7 +172,7 @@ models:
- name: dimension_value
data_type: string
description: The value or segment available for the selected dimension.
tests:
data_tests:
- not_null
- name: int_mtd_aggregated_metrics
@ -183,7 +183,7 @@ models:
a set of metric, value, previous_year_value and relative_increment at a given date. It uses Jinja
code to avoid code replication.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -195,31 +195,31 @@ models:
- name: year
data_type: int
description: year number of the given date.
tests:
data_tests:
- not_null
- name: month
data_type: int
description: month number of the given date.
tests:
data_tests:
- not_null
- name: day
data_type: int
description: day monthly number of the given date.
tests:
data_tests:
- not_null
- name: is_end_of_month
data_type: boolean
description: True if it's end of month.
tests:
data_tests:
- not_null
- name: is_end_of_month_or_yesterday
data_type: boolean
description: True if it's end of month or yesterday.
tests:
data_tests:
- not_null
- name: is_current_month
@ -227,27 +227,27 @@ models:
description: |
checks if the date is within the current executed month,
1 for yes, 0 for no.
tests:
data_tests:
- not_null
- name: first_day_month
data_type: date
description: |
first day of the month corresponding to the date field.
tests:
data_tests:
- not_null
- name: date
data_type: date
description: |
main date for the computation, that is used for filters.
tests:
data_tests:
- not_null
- name: dimension
data_type: string
description: The dimension or granularity of the metrics.
tests:
data_tests:
- accepted_values:
values:
- global
@ -257,7 +257,7 @@ models:
- name: dimension_value
data_type: string
description: The value or segment available for the selected dimension.
tests:
data_tests:
- not_null
- name: previous_year_date
@ -270,7 +270,7 @@ models:
- name: metric
data_type: text
description: name of the business metric.
tests:
data_tests:
- not_null
- name: order_by
@ -282,7 +282,7 @@ models:
- name: number_format
data_type: text
description: allows for grouping and formatting for displaying purposes.
tests:
data_tests:
- accepted_values:
values:
[
@ -333,7 +333,7 @@ models:
enforces that a booking/guest journey/listing/etc has a host with a deal assigned, which is
not necessarily the case.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -343,27 +343,27 @@ models:
- name: date
data_type: date
description: The last day of the month or yesterday for historic metrics.
tests:
data_tests:
- not_null
- name: id_deal
data_type: character varying
description: Id of the deal associated to the host.
tests:
data_tests:
- not_null
- name: main_deal_name
data_type: string
description: |
Main name for this ID deal.
tests:
data_tests:
- not_null
- name: has_active_pms
data_type: boolean
description: |
Does the deal have an active associated PMS.
tests:
data_tests:
- not_null
- name: active_pms_list
@ -415,7 +415,7 @@ models:
Lastly, this model provides informative date fields, deal attributes, absolute
metric values and MoM & YoY relative incrementals to enrich reporting.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -428,7 +428,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: id_deal
@ -436,21 +436,21 @@ models:
description: |
Unique identifier of a Deal. Together with date, it acts as
the primary key of this model.
tests:
data_tests:
- not_null
- name: main_deal_name
data_type: string
description: |
Main name for a Deal, representing the client.
tests:
data_tests:
- not_null
- name: has_active_pms
data_type: boolean
description: |
Does the deal have an active associated PMS.
tests:
data_tests:
- not_null
- name: active_pms_list
@ -499,7 +499,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: previous_1_month_first_day_month
@ -569,7 +569,7 @@ models:
for a specific deal. This value corresponds to
the given month. This value can be negative,
but not null.
tests:
data_tests:
- not_null
- name: previous_1_month_revenue_in_gbp
@ -620,7 +620,7 @@ models:
the previous month.
It can be null if any revenue used in the computation
is null or it's negative.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -634,7 +634,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -647,7 +647,7 @@ models:
months ago.
It can be null if any revenue used in the computation
is null or it's negative.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -661,7 +661,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -672,7 +672,7 @@ models:
Monthly value representing created bookings
for a specific deal. This value corresponds to
the given month. This value cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -686,7 +686,7 @@ models:
the previous month.
This value can be null, thus indicating that no
history is available.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -699,7 +699,7 @@ models:
monthly amount generated 12 months ago.
This value can be null, thus indicating that no
history is available.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -713,7 +713,7 @@ models:
It can be null if the bookings created in the
previous month are null.
This field is used for the growth score computation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -727,7 +727,7 @@ models:
It can be null if the bookings created 12 months
ago are null.
This field is used for the growth score computation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -738,7 +738,7 @@ models:
Monthly value representing the listings booked in month
for a specific deal. This value corresponds to
the given month. This value cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -752,7 +752,7 @@ models:
the previous month.
This value can be null, thus indicating that no
history is available.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -765,7 +765,7 @@ models:
monthly amount generated 12 months ago.
This value can be null, thus indicating that no
history is available.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -779,7 +779,7 @@ models:
It can be null if the listings booked in month in the
previous month are null.
This field is used for the growth score computation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -793,7 +793,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -807,7 +807,7 @@ models:
aggregated_revenue_to_first_day_month.
It can be negative if the sum is negative.
It cannot be null.
tests:
data_tests:
- not_null
- name: effective_deal_revenue_12_months_window
@ -821,7 +821,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -838,7 +838,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -850,7 +850,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -864,7 +864,7 @@ models:
If more than one deal have the same share, the order is
not under control.
It cannot be null.
tests:
data_tests:
- not_null
- name: deal_created_bookings_12_months_window
@ -875,7 +875,7 @@ models:
aggregated_revenue_from_first_day_month to
aggregated_revenue_to_first_day_month.
It cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -890,7 +890,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -903,7 +903,7 @@ models:
In other words, what's the percentage of the global created
bookings that can be attributed to this deal.
It cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -917,7 +917,7 @@ models:
If more than one deal have the same share, the order is
not under control.
It cannot be null.
tests:
data_tests:
- not_null
- name: deal_avg_listings_booked_in_month_12_months_window
@ -928,7 +928,7 @@ models:
aggregated_revenue_from_first_day_month to
aggregated_revenue_to_first_day_month.
It cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -944,7 +944,7 @@ models:
It is used for the deal contribution share with respect
to the global average listings booked in month.
It cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -958,7 +958,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -972,7 +972,7 @@ models:
If more than one deal have the same share, the order is
not under control.
It cannot be null.
tests:
data_tests:
- not_null
- name: avg_mom_growth_score
@ -983,7 +983,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: avg_yoy_growth_score
@ -994,7 +994,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: avg_growth_score
@ -1005,7 +1005,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: weighted_avg_growth_score
@ -1017,7 +1017,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: categorisation_weighted_avg_growth_score
@ -1028,7 +1028,7 @@ models:
losers, flat, winners and top winners.
Currently the categorisation is based on the score itself
rather than selecting a top up/down.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -1058,7 +1058,7 @@ models:
The average approach "boosts" the contribution of those accounts
that have been active for less than 12 months.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -1071,7 +1071,7 @@ models:
Date corresponding to the last day of the month.
Metrics are inclusive to this date. Together with id_deal, it
acts as the primary key of this model.
tests:
data_tests:
- not_null
- name: id_deal
@ -1079,7 +1079,7 @@ models:
description: |
Unique identifier of a Deal. Together with date, it acts as
the primary key of this model.
tests:
data_tests:
- not_null
- name: deal_lifecycle_state
@ -1096,7 +1096,7 @@ models:
a given deal. In essence it states the amount of
months a given deal has been active before a the month
given by date, capped at 12 months.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 12
@ -1117,7 +1117,7 @@ models:
vs. the global amount, on the preceding 12 months
with respect to date. It uses the average approach.
It can be negative.
tests:
data_tests:
- not_null
- name: created_bookings_12m_average_contribution
@ -1126,7 +1126,7 @@ models:
Share of the deal contribution on created bookings
vs. the global amount, on the preceding 12 months
with respect to date. It uses the average approach.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -1139,7 +1139,7 @@ models:
Share of the deal contribution on listings booked in month
vs. the global amount, on the preceding 12 months
with respect to date. It uses the average approach.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -1172,7 +1172,7 @@ models:
to the global amount. This means that, for instance, if we have 10% of churn
in a month, it can be divided by 9% USA and 1% GBR since 9%+1% = 10%.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -1183,13 +1183,13 @@ models:
- name: date
data_type: date
description: The date for the month-to-date metrics.
tests:
data_tests:
- not_null
- name: dimension
data_type: string
description: The dimension or granularity of the metrics.
tests:
data_tests:
- accepted_values:
values:
- global
@ -1199,7 +1199,7 @@ models:
- name: dimension_value
data_type: string
description: The value or segment available for the selected dimension.
tests:
data_tests:
- not_null
- name: total_revenue_churn_average_contribution
@ -1228,7 +1228,7 @@ models:
- name: id_verification
data_type: text
description: "unique Superhog generated id for this verification"
tests:
data_tests:
- unique
- not_null
@ -1241,7 +1241,7 @@ models:
- name: id_user_partner
data_type: text
description: "unique Superhog generated id for partner"
tests:
data_tests:
- not_null
- name: id_accommodation
@ -1251,7 +1251,7 @@ models:
- name: version
data_type: text
description: "value to identify if it is Guesty (V1) or E-deposit (V2)"
tests:
data_tests:
- accepted_values:
values:
- V1
@ -1260,7 +1260,7 @@ models:
- name: verification_source
data_type: text
description: "source of the verification for the booking"
tests:
data_tests:
- accepted_values:
values:
- Guesty
@ -1434,7 +1434,7 @@ models:
additional metrics.
The data is segmented by deal and time window for detailed analysis.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -1447,20 +1447,20 @@ models:
description: |
The last day of the month or yesterday for historic metrics.
It's the same date as for KPIs related models.
tests:
data_tests:
- not_null
- name: id_deal
data_type: character varying
description: Id of the deal associated to the host.
tests:
data_tests:
- not_null
- name: time_window
data_type: character varying
description: |
Identifier of the time window used for the aggregation of the metrics.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -1490,14 +1490,14 @@ models:
data_type: string
description: |
Main name for this ID deal.
tests:
data_tests:
- not_null
- name: has_active_pms
data_type: boolean
description: |
Does the deal have an active associated PMS.
tests:
data_tests:
- not_null
- name: active_pms_list
@ -1548,7 +1548,7 @@ models:
Total amount of bookings created by the deal
in the time window. It can be null if no bookings
were created.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1559,7 +1559,7 @@ models:
Average amount of listings booked in month by the deal
in the time window. It can be null if no listings
were booked.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1600,7 +1600,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1619,7 +1619,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1649,7 +1649,7 @@ models:
- name: id_deal
data_type: character varying
description: "Unique ID for this deal."
tests:
data_tests:
- unique
- not_null
@ -1662,7 +1662,7 @@ models:
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"
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1676,7 +1676,7 @@ models:
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"
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1690,7 +1690,7 @@ models:
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"
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false

View file

@ -15,7 +15,7 @@ models:
- name: id_verification
data_type: text
description: "unique Superhog generated id for this verification"
tests:
data_tests:
- unique
- not_null
@ -28,7 +28,7 @@ models:
- name: id_user_partner
data_type: text
description: "unique Superhog generated id for partner"
tests:
data_tests:
- not_null
- name: id_accommodation
@ -38,7 +38,7 @@ models:
- name: version
data_type: text
description: "value to identify if it is Guesty (V1) or E-deposit (V2)"
tests:
data_tests:
- accepted_values:
values:
- V2
@ -46,7 +46,7 @@ models:
- name: verification_source
data_type: text
description: "source of the verification for the booking"
tests:
data_tests:
- accepted_values:
values:
- Guesty
@ -206,7 +206,7 @@ models:
description: "Unique Superhog generated id for this verification.
Note that there are some users that have a different id in Cosmos.
For those users we created a mapping to relate this ids."
tests:
data_tests:
- unique
- not_null
@ -215,19 +215,19 @@ models:
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"
tests:
data_tests:
- not_null
- name: id_user_partner
data_type: text
description: "unique Superhog generated id for partner"
tests:
data_tests:
- not_null
- name: id_accommodation
data_type: text
description: "unique Superhog generated id for a listing"
tests:
data_tests:
- not_null
- name: listing_town
@ -257,7 +257,7 @@ models:
- name: currency
data_type: text
description: "currency in which the transaction actually happened"
tests:
data_tests:
- not_null
- name: nightly_fee_local
@ -271,7 +271,7 @@ models:
- name: ok_status_fee_in_txn_currency
data_type: numeric
description: "fee charged in used currency for approved or flagged verifications and not cancelled"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -280,7 +280,7 @@ models:
- name: ok_status_fee_in_gbp
data_type: numeric
description: "fee charged in gbp for approved or flagged verifications and not cancelled"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -289,7 +289,7 @@ models:
- name: rejected_fee_in_txn_currency
data_type: numeric
description: "fee charged in used currency for rejected verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -298,7 +298,7 @@ models:
- name: rejected_fee_in_gbp
data_type: numeric
description: "fee charged in gbp for rejected verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -307,7 +307,7 @@ models:
- name: cancelled_fee_in_txn_currency
data_type: numeric
description: "fee charged in used currency for cancelled verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -316,7 +316,7 @@ models:
- name: cancelled_fee_in_gbp
data_type: numeric
description: "fee charged in gbp for cancelled verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -325,7 +325,7 @@ models:
- name: created_date_utc
data_type: date
description: "Date of creation of the verification in the system"
tests:
data_tests:
- not_null
- name: cancelled_date_utc
@ -335,11 +335,11 @@ models:
- name: checkin_date_utc
data_type: date
description: "Date of checkin for the booking"
tests:
data_tests:
- not_null
- name: checkout_date_utc
data_type: date
description: "Date of checkout for the booking"
tests:
data_tests:
- not_null

View file

@ -17,7 +17,7 @@ models:
- name: id_deal
data_type: character varying
description: Unique ID for this deal.
tests:
data_tests:
- unique
- not_null

File diff suppressed because it is too large Load diff

View file

@ -6,7 +6,7 @@ models:
Records of verification requests from the Screen and Protect API. The
table tracks verification requests, their outcomes, and related metadata
about guests, listings, and partners.
tests:
data_tests:
- at_least_one_null:
columns:
- monthly_volume_discount
@ -15,20 +15,20 @@ models:
- name: id_verification
data_type: text
description: Unique identifier for the verification request.
tests:
data_tests:
- unique
- not_null
- name: id_booking
data_type: text
description: Unique identifier for the booking associated with the verification.
tests:
data_tests:
- not_null
- name: id_user_partner
data_type: text
description: Identifier for the partner user initiating the verification.
tests:
data_tests:
- not_null
- name: id_accommodation
@ -39,7 +39,7 @@ models:
data_type: bigint
description: "Id of the currency, works as a foreign key to the
currency table"
tests:
data_tests:
- not_null
- relationships:
to: ref('stg_core__currency')
@ -49,13 +49,13 @@ models:
data_type: boolean
description: |
Indicates if the booking is protected or not.
tests:
data_tests:
- not_null
- name: protection_type
data_type: text
description: Specific protection type for the request.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -70,7 +70,7 @@ models:
description: Field used for protection type "STANDALONE PROTECTION" to
indicate the starting level of protection.
In local currency.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100000
@ -81,7 +81,7 @@ models:
description: Field used for protection type "SCREEN & PROTECT",
"BASIC PROTECTION" or "DAMAGE WAIVER" to show the basic amount of protection.
In local currency.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100000
@ -92,7 +92,7 @@ models:
description: Field used for protection type "SCREEN & PROTECT",
or "STANDALONE PROTECTION" to show the basic amount of protection.
In local currency.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 50000000
@ -105,7 +105,7 @@ models:
- name: verification_status
data_type: text
description: Outcome of the verification process.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -117,7 +117,7 @@ models:
data_type: numeric
description: The percentage or value of the price increase
applied to the user's account.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: true
@ -126,7 +126,7 @@ models:
data_type: date
description: The date when the price increase becomes effective.
This is the first day of the month.
tests:
data_tests:
- is_first_day_of_month
- name: monthly_volume_discount
@ -134,7 +134,7 @@ models:
description: The discount percentage or value offered based on the
volume of bookings achieved within a month.
No user can have more than one discount per month.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100
@ -144,7 +144,7 @@ models:
data_type: numeric
description: The minimum number of bookings required to qualify for
the monthly volume discount.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: true
@ -153,14 +153,14 @@ models:
data_type: date
description: The date when the monthly volume discount period begins.
This is the first day of the month.
tests:
data_tests:
- is_first_day_of_month
- name: monthly_volume_discount_end_date_utc
data_type: date
description: The date when the monthly volume discount period ends.
This is the last day of the month.
tests:
data_tests:
- is_last_day_of_month
- name: monthly_general_discount
@ -168,7 +168,7 @@ models:
description: The general discount percentage or value applied to all
bookings within the applicable period.
No user can have more than one discount per month.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100
@ -178,14 +178,14 @@ models:
data_type: date
description: The date when the general discount period begins.
This is the first day of the month.
tests:
data_tests:
- is_first_day_of_month
- name: monthly_general_discount_end_date_utc
data_type: date
description: The date when the general discount period ends.
This is the last day of the month.
tests:
data_tests:
- is_last_day_of_month
- name: verification_status_reason
@ -203,7 +203,7 @@ models:
- name: watch_list
data_type: text
description: Indicates if the guest was flagged on a watchlist.
tests:
data_tests:
- accepted_values:
values:
- "MATCH"
@ -228,13 +228,13 @@ models:
- name: is_cancelled
data_type: boolean
description: Indicates if the booking was canceled.
tests:
data_tests:
- not_null
- name: cancelled_at_utc
data_type: timestamp without time zone
description: Timestamp when the booking was canceled.
tests:
data_tests:
- not_null:
where: is_cancelled = true
@ -297,44 +297,44 @@ models:
- name: status_updated_at_utc
data_type: timestamp without time zone
description: Timestamp of the last status update for the verification.
tests:
data_tests:
- not_null
- name: status_updated_date_utc
data_type: date
description: Date of the last status update for the verification.
tests:
data_tests:
- not_null
- name: updated_at_utc
data_type: timestamp without time zone
description: Timestamp of the last update to the record.
tests:
data_tests:
- not_null
- name: updated_date_utc
data_type: date
description: Date of the last update to the record.
tests:
data_tests:
- not_null
- name: creation_at_utc
data_type: timestamp without time zone
description: |
Timestamp of when the reservation was created.
tests:
data_tests:
- not_null
- name: creation_date_utc
data_type: date
description: |
Date of when the reservation was created.
tests:
data_tests:
- not_null
- name: cosmos_created_date_utc
data_type: date
description: |
Date of when the verification request was created in Cosmos DB.
tests:
data_tests:
- not_null

View file

@ -4,31 +4,31 @@ models:
- name: int_xero__invoices
columns:
- name: id_invoice
tests:
data_tests:
- not_null
- unique
- name: int_xero__credit_notes
columns:
- name: id_credit_note
tests:
data_tests:
- not_null
- unique
- name: int_xero__invoice_line_items
columns:
- name: id_line_item
tests:
data_tests:
- not_null
- unique
- name: int_xero__credit_note_line_items
columns:
- name: id_line_item
tests:
data_tests:
- not_null
- unique
- name: int_xero__bank_transactions
columns:
- name: id_bank_transaction
tests:
data_tests:
- not_null
- unique
@ -63,7 +63,7 @@ models:
- name: id_line_item
data_type: text
description: ""
tests:
data_tests:
- not_null
- unique
@ -75,7 +75,7 @@ models:
data_type: text
description: |
Indicates whether the record belongs in an invoice or a credit note.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -137,7 +137,7 @@ models:
- name: document_currency_iso_4217
data_type: character varying
description: ""
tests:
data_tests:
- not_null
- length_between:
min_length: 3
@ -150,7 +150,7 @@ models:
- name: id_document
data_type: character varying
description: ""
tests:
data_tests:
- not_null
- name: reference
@ -172,7 +172,7 @@ models:
- name: document_type
data_type: character varying
description: ""
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -188,14 +188,14 @@ models:
- name: exchange_rate_to_gbp
data_type: numeric
description: ""
tests:
data_tests:
- not_null
- not_negative
- name: document_status
data_type: character varying
description: ""
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -209,7 +209,7 @@ models:
- name: line_amount_tax_inclusiveness
data_type: character varying
description: ""
tests:
data_tests:
- accepted_values:
values:
- Inclusive

View file

@ -10,7 +10,7 @@ models:
- name: id_verification
data_type: text
description: "unique Superhog generated id for this verification"
tests:
data_tests:
- unique
- not_null
@ -19,7 +19,7 @@ models:
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 not generate or cancel duplicate verifications"
tests:
data_tests:
- not_null
- name: verification_status
@ -29,13 +29,13 @@ models:
- name: is_cancelled
data_type: boolean
description: "indicates if the booking has been cancelled or not."
tests:
data_tests:
- not_null
- name: ok_status_fee_in_gbp
data_type: integer
description: "total fee charged on checkout, this is only charged for approved verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -45,11 +45,11 @@ models:
- name: created_date_utc
data_type: date
description: "Date of creation of the verification in the system"
tests:
data_tests:
- not_null
- name: checkout_date_utc
data_type: date
description: "Date of checkout for the booking"
tests:
data_tests:
- not_null

View file

@ -9,26 +9,26 @@ models:
- name: id_record
data_type: text
description: Unique identifier for the record.
tests:
data_tests:
- unique
- not_null
- name: id_user_partner
data_type: text
description: Identifier for the partner user associated with the check-in.
tests:
data_tests:
- not_null
- name: id_reservation
data_type: text
description: Unique identifier for the reservation associated with the check-in.
tests:
data_tests:
- not_null
- name: id_accommodation
data_type: text
description: Unique identifier for the accommodation associated with the reservation.
tests:
data_tests:
- not_null
- name: guest_last_name
@ -54,7 +54,7 @@ models:
- name: reservation_total_amount_in_local_currency
data_type: numeric
description: Total cost amount in guest currency for the reservation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: true
@ -63,19 +63,19 @@ models:
data_type: text
description: |
Currency ISO code used by guest for the reservation.
tests:
data_tests:
- not_null
- name: channel
data_type: text
description: Booking channel or source.
tests:
data_tests:
- not_null
- name: checkin_date_utc
data_type: date
description: Check-in date for the booking.
tests:
data_tests:
- not_null
- name: checkin_time_utc
@ -85,13 +85,13 @@ models:
- name: checkout_date_utc
data_type: date
description: Check-out date for the booking.
tests:
data_tests:
- not_null
- name: number_of_nights
data_type: integer
description: Number of nights for the reservation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 1
@ -130,29 +130,29 @@ models:
- name: updated_at_utc
data_type: timestamp without time zone
description: Timestamp of the last update to the record.
tests:
data_tests:
- not_null
- name: updated_date_utc
data_type: date
description: Date of the last update to the record.
tests:
data_tests:
- not_null
- name: cosmos_creation_at_utc
data_type: timestamp without time zone
description: Timestamp when the record was created in Cosmos DB.
tests:
data_tests:
- not_null
- name: cosmos_creation_date_utc
data_type: date
description: Date when the record was created in Cosmos DB.
tests:
data_tests:
- not_null
- name: created_date_utc
data_type: date
description: Date when the record was created.
tests:
data_tests:
- not_null

View file

@ -19,7 +19,7 @@ models:
- name: id_payment
data_type: bigint
description: Superhog id for this Payment.
tests:
data_tests:
- unique
- not_null
@ -30,13 +30,13 @@ models:
- name: payment_due_at_utc
data_type: timestamp without time zone
description: The point in time at which this payment had to be paid.
tests:
data_tests:
- not_null
- name: payment_due_date_utc
data_type: date
description: The date on which this payment had to be paid.
tests:
data_tests:
- not_null
- name: payment_paid_at_utc
@ -88,13 +88,13 @@ models:
- name: id_guest_user
data_type: character varying
description: The UUID of the guest user in the Superhog backend.
tests:
data_tests:
- not_null
- name: id_verification
data_type: bigint
description: The ID of the verification that generated this payment.
tests:
data_tests:
- not_null
- name: verification_payment_type
@ -104,7 +104,7 @@ models:
- name: amount_in_txn_currency
data_type: numeric
description: The payment amount in the currency in which the transaction actually happened. If the guest paid in Australian Dollars, this is measured in AUD. (To be decommissioned)
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -112,13 +112,13 @@ models:
- name: currency
data_type: character varying
description: The currency in which the transaction actually happened. If the guest paid in Australian Dollars, this is measured in AUD.
tests:
data_tests:
- not_null
- name: amount_in_gbp
data_type: numeric
description: The payment amount value, converted to GBP, using the exchange rate for the day on which the payment happened.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -126,7 +126,7 @@ models:
- name: payment_status
data_type: character varying
description: "The status of the payment. It can be one of: Paid, Refunded, Refund Failed, Cancelled, Paid Manually, Unpaid."
tests:
data_tests:
- not_null
- name: notes
@ -139,7 +139,7 @@ models:
- name: total_amount_in_txn_currency
data_type: numeric
description: The payment amount in the currency in which the transaction actually happened. If the guest paid in Australian Dollars, this is measured in AUD.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -147,7 +147,7 @@ models:
- name: amount_without_taxes_in_txn_currency
data_type: numeric
description: The payment amount without taxes in the currency in which the transaction actually happened. If the guest paid in Australian Dollars, this is measured in AUD. (To be decommissioned)
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -155,7 +155,7 @@ models:
- name: total_amount_in_gbp
data_type: numeric
description: The payment amount value, converted to GBP, using the exchange rate for the day on which the payment happened.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -163,7 +163,7 @@ models:
- name: amount_without_taxes_in_gbp
data_type: numeric
description: The payment amount value without taxes, converted to GBP, using the exchange rate for the day on which the payment happened.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -185,7 +185,7 @@ models:
- name: id_booking
data_type: bigint
description: The unique, Superhog generated id for this booking.
tests:
data_tests:
- unique
- not_null
@ -253,7 +253,7 @@ models:
description: |
Unique, incremental, internal ID for the related verification
request.
tests:
data_tests:
- not_null
- unique
@ -632,7 +632,7 @@ models:
- name: id_user
data_type: character varying
description: Unique, incremental, internal ID for the user.
tests:
data_tests:
- unique
- not_null
@ -795,7 +795,7 @@ models:
- name: id_user_host
data_type: character varying
description: Unique id value for the user
tests:
data_tests:
- not_null
- unique
@ -853,7 +853,7 @@ models:
- name: id_verification_request
data_type: bigint
description: Unique id value for the verification request
tests:
data_tests:
- not_null
- unique
@ -871,7 +871,7 @@ models:
- PMS
- OSL
- API/MANUAL
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -944,7 +944,7 @@ models:
- name: id_user_host
data_type: character varying
description: Unique id value for the user
tests:
data_tests:
- not_null
- name: id_deal
@ -994,7 +994,7 @@ models:
- name: id_accommodation
data_type: bigint
description: "Id of the accommodation or listing. It's the unique key for this model."
tests:
data_tests:
- not_null
- unique
@ -1037,7 +1037,7 @@ models:
- name: id_booking
data_type: bigint
description: "The unique, Superhog generated id for this booking."
tests:
data_tests:
- unique
- not_null
@ -1048,7 +1048,7 @@ models:
- name: id_user_host
data_type: character varying
description: The UUID of the Superhog user playing the host role in the booking.
tests:
data_tests:
- not_null
- name: id_accommodation
@ -1066,7 +1066,7 @@ models:
- NoFlags
- Flagged
- IncompleteInformation"
tests:
data_tests:
- accepted_values:
values:
- "Approved"
@ -1129,7 +1129,7 @@ models:
description: |
The unique identifier of this table. It corresponds to the host users
that have been migrated to the New Dashboard.
tests:
data_tests:
- not_null
- unique
@ -1142,7 +1142,7 @@ models:
description: |
The migration phase in which this user was migrated, for informative
purposes.
tests:
data_tests:
- not_null
- name: has_user_moved_from_old_dash
@ -1155,7 +1155,7 @@ models:
data_type: date
description: |
The estimated date in which this user was migrated.
tests:
data_tests:
- not_null
- name: company_name

View file

@ -12,7 +12,7 @@ models:
- name: id_verification
data_type: text
description: "unique Superhog generated id for this verification"
tests:
data_tests:
- unique
- not_null
@ -21,19 +21,19 @@ models:
description: "unique Superhog generated id for a booking.
note that there might be duplicate bookings on the original data
but we remove them keeping only the verification with the most recent update."
tests:
data_tests:
- not_null
- name: id_user_partner
data_type: text
description: "unique Superhog generated id for partner"
tests:
data_tests:
- not_null
- name: id_accommodation
data_type: text
description: "unique Superhog generated id for a listing"
tests:
data_tests:
- not_null
- name: listing_town
@ -63,7 +63,7 @@ models:
- name: currency
data_type: text
description: "currency in which the transaction actually happened"
tests:
data_tests:
- not_null
- name: nightly_fee_local
@ -77,7 +77,7 @@ models:
- name: ok_status_fee_in_txn_currency
data_type: numeric
description: "fee charged in used currency for approved or flagged verifications and not cancelled"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -86,7 +86,7 @@ models:
- name: ok_status_fee_in_gbp
data_type: numeric
description: "fee charged in gbp for approved or flagged verifications and not cancelled"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -95,7 +95,7 @@ models:
- name: rejected_fee_in_txn_currency
data_type: numeric
description: "fee charged in used currency for rejected verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -104,7 +104,7 @@ models:
- name: rejected_fee_in_gbp
data_type: numeric
description: "fee charged in gbp for rejected verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -113,7 +113,7 @@ models:
- name: cancelled_fee_in_txn_currency
data_type: numeric
description: "fee charged in used currency for cancelled verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -122,7 +122,7 @@ models:
- name: cancelled_fee_in_gbp
data_type: numeric
description: "fee charged in gbp for cancelled verifications"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -131,7 +131,7 @@ models:
- name: created_date_utc
data_type: date
description: "Date of creation of the verification in the system"
tests:
data_tests:
- not_null
- name: cancelled_date_utc
@ -141,11 +141,11 @@ models:
- name: checkin_date_utc
data_type: date
description: "Date of checkin for the booking"
tests:
data_tests:
- not_null
- name: checkout_date_utc
data_type: date
description: "Date of checkout for the booking"
tests:
data_tests:
- not_null

View file

@ -203,18 +203,18 @@ models:
description: A unique ID for the record, derived from concatenating the
currencies, date, source and version. Currency order is relevant
(EURUSD != USDEUR).
tests:
data_tests:
- not_null
- unique
- name: from_currency
data_type: character
description: The source currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: to_currency
data_type: character
description: The target currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: rate
data_type: numeric
@ -228,13 +228,13 @@ models:
always be one.
The rate can be smaller than one, but can't be negative.
tests:
data_tests:
- not_negative_or_zero
- not_null
- name: rate_date_utc
data_type: date
description: The date in which the rate record is relevant.
tests:
data_tests:
- not_null
- name: source
data_type: text
@ -249,7 +249,7 @@ models:
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.
tests:
data_tests:
- accepted_values:
values:
- guess
@ -262,7 +262,7 @@ models:
For external sources, this will be the point in time when the
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.
tests:
data_tests:
- not_null
- name: simple_exchange_rates
@ -274,7 +274,7 @@ models:
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.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- from_currency
@ -284,22 +284,22 @@ models:
- name: from_currency
data_type: character
description: The source currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: to_currency
data_type: character
description: The source currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: rate
data_type: numeric
description: The target currency, represented as an ISO 4217 code.
tests:
data_tests:
- not_null
- name: rate_date_utc
data_type: date
description: The date in which the rate record is relevant.
tests:
data_tests:
- not_null
- name: updated_at_utc
data_type: timestamp with time zone
@ -307,7 +307,7 @@ models:
For external sources, this will be the point in time when the
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.
tests:
data_tests:
- not_null
- name: mtd_aggregated_metrics
@ -317,7 +317,7 @@ models:
It's the main source of information for the Main KPIs reporting, specifically
on the MTD (Month To Date) and the Monthly Overview.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -329,25 +329,25 @@ models:
- name: year
data_type: int
description: Year number of the given date.
tests:
data_tests:
- not_null
- name: month
data_type: int
description: Month number of the given date.
tests:
data_tests:
- not_null
- name: day
data_type: int
description: Day monthly number of the given date.
tests:
data_tests:
- not_null
- name: is_end_of_month
data_type: boolean
description: Is end of month, 1 for yes, 0 for no.
tests:
data_tests:
- not_null
- name: is_current_month
@ -355,7 +355,7 @@ models:
description: |
Checks if the date is within the current executed month,
1 for yes, 0 for no.
tests:
data_tests:
- not_null
- name: is_end_of_month_or_yesterday
@ -363,7 +363,7 @@ models:
description: |
Checks if the date is end of month or yesterday,
1 for yes, 0 for no.
tests:
data_tests:
- not_null
- name: first_day_month
@ -371,7 +371,7 @@ models:
description: |
First day of the month corresponding to the date field.
It comes from int_dates_mtd logic.
tests:
data_tests:
- not_null
- name: date
@ -379,7 +379,7 @@ models:
description: |
Main date for the computation, that is used for filters.
It comes from int_dates_mtd logic.
tests:
data_tests:
- not_null
- latest_date_is_yesterday
@ -391,13 +391,13 @@ models:
dimension_display; this is, the name of the dimension for
displaying purposes.
tests:
data_tests:
- not_null
- name: dimension_value
data_type: string
description: The value or segment available for the selected dimension.
tests:
data_tests:
- not_null
- name: previous_year_date
@ -410,7 +410,7 @@ models:
- name: metric
data_type: text
description: Name of the business metric.
tests:
data_tests:
- not_null
- name: order_by
@ -422,7 +422,7 @@ models:
- name: number_format
data_type: text
description: Allows for grouping and formatting for displaying purposes.
tests:
data_tests:
- accepted_values:
values:
[
@ -475,7 +475,7 @@ models:
enforces that a booking/guest journey/listing/etc has a host with a deal assigned, which is
not necessarily the case.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -485,20 +485,20 @@ models:
- name: date
data_type: date
description: The last day of the month for historic metrics.
tests:
data_tests:
- not_null
- name: id_deal
data_type: character varying
description: Id of the deal associated to the host.
tests:
data_tests:
- not_null
- name: main_deal_name
data_type: string
description: |
Main name for this ID deal.
tests:
data_tests:
- not_null
- name: main_billing_country_iso_3_per_deal
@ -510,19 +510,19 @@ models:
- name: year
data_type: int
description: year number of the given date.
tests:
data_tests:
- not_null
- name: month
data_type: int
description: month number of the given date.
tests:
data_tests:
- not_null
- name: day
data_type: int
description: day monthly number of the given date.
tests:
data_tests:
- not_null
- name: monthly_growth_score_by_deal
@ -562,7 +562,7 @@ models:
Lastly, this model provides informative date fields, deal attributes, absolute
metric values and MoM & YoY relative incrementals to enrich reporting.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -575,7 +575,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: id_deal
@ -583,21 +583,21 @@ models:
description: |
Unique identifier of a Deal. Together with date, it acts as
the primary key of this model.
tests:
data_tests:
- not_null
- name: main_deal_name
data_type: string
description: |
Main name for a Deal, representing the client.
tests:
data_tests:
- not_null
- name: has_active_pms
data_type: boolean
description: |
Does the deal have an active associated PMS.
tests:
data_tests:
- not_null
- name: active_pms_list
@ -646,7 +646,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: previous_1_month_first_day_month
@ -716,7 +716,7 @@ models:
for a specific deal. This value corresponds to
the given month. This value can be negative,
but not null.
tests:
data_tests:
- not_null
- name: previous_1_month_revenue_in_gbp
@ -767,7 +767,7 @@ models:
the previous month.
It can be null if any revenue used in the computation
is null or it's negative.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -781,7 +781,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -794,7 +794,7 @@ models:
months ago.
It can be null if any revenue used in the computation
is null or it's negative.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -808,7 +808,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -819,7 +819,7 @@ models:
Monthly value representing created bookings
for a specific deal. This value corresponds to
the given month. This value cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -833,7 +833,7 @@ models:
the previous month.
This value can be null, thus indicating that no
history is available.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -846,7 +846,7 @@ models:
monthly amount generated 12 months ago.
This value can be null, thus indicating that no
history is available.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -860,7 +860,7 @@ models:
It can be null if the bookings created in the
previous month are null.
This field is used for the growth score computation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -874,7 +874,7 @@ models:
It can be null if the bookings created 12 months
ago are null.
This field is used for the growth score computation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -885,7 +885,7 @@ models:
Monthly value representing the listings booked in month
for a specific deal. This value corresponds to
the given month. This value cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -899,7 +899,7 @@ models:
the previous month.
This value can be null, thus indicating that no
history is available.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -912,7 +912,7 @@ models:
monthly amount generated 12 months ago.
This value can be null, thus indicating that no
history is available.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -926,7 +926,7 @@ models:
It can be null if the listings booked in month in the
previous month are null.
This field is used for the growth score computation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -940,7 +940,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: -1
strictly: false
@ -954,7 +954,7 @@ models:
aggregated_revenue_to_first_day_month.
It can be negative if the sum is negative.
It cannot be null.
tests:
data_tests:
- not_null
- name: effective_deal_revenue_12_months_window
@ -968,7 +968,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -985,7 +985,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -997,7 +997,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -1011,7 +1011,7 @@ models:
If more than one deal have the same share, the order is
not under control.
It cannot be null.
tests:
data_tests:
- not_null
- name: deal_created_bookings_12_months_window
@ -1022,7 +1022,7 @@ models:
aggregated_revenue_from_first_day_month to
aggregated_revenue_to_first_day_month.
It cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -1037,7 +1037,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -1050,7 +1050,7 @@ models:
In other words, what's the percentage of the global created
bookings that can be attributed to this deal.
It cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -1064,7 +1064,7 @@ models:
If more than one deal have the same share, the order is
not under control.
It cannot be null.
tests:
data_tests:
- not_null
- name: deal_avg_listings_booked_in_month_12_months_window
@ -1075,7 +1075,7 @@ models:
aggregated_revenue_from_first_day_month to
aggregated_revenue_to_first_day_month.
It cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -1091,7 +1091,7 @@ models:
It is used for the deal contribution share with respect
to the global average listings booked in month.
It cannot be null.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -1105,7 +1105,7 @@ models:
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.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -1119,7 +1119,7 @@ models:
If more than one deal have the same share, the order is
not under control.
It cannot be null.
tests:
data_tests:
- not_null
- name: avg_mom_growth_score
@ -1130,7 +1130,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: avg_yoy_growth_score
@ -1141,7 +1141,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: avg_growth_score
@ -1152,7 +1152,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: weighted_avg_growth_score
@ -1164,7 +1164,7 @@ models:
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.
tests:
data_tests:
- not_null
- name: categorisation_weighted_avg_growth_score
@ -1175,7 +1175,7 @@ models:
losers, flat, winners and top winners.
Currently the categorisation is based on the score itself
rather than selecting a top up/down.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -1202,7 +1202,7 @@ models:
description: |
The identifier of the booking. Acts as Primary Key to this table.
Cannot be null.
tests:
data_tests:
- not_null
- unique
@ -1210,7 +1210,7 @@ models:
data_type: string
description: |
Unique identifier of the account. It cannot be null.
tests:
data_tests:
- not_null
- name: main_billing_country
@ -1228,7 +1228,7 @@ models:
This field should be modified at the moment we have
a proper way to retrieve a common account name per deal.
It can contain duplicates.
tests:
data_tests:
- not_null
- name: hubspot_deal_name
@ -1246,7 +1246,7 @@ models:
data_type: string
description: |
The current status of the booking. Cannot be null.
tests:
data_tests:
- not_null
- name: program_name
@ -1254,7 +1254,7 @@ models:
description: |
The name of the program, or product bundle, applied to the booking.
Cannot be null.
tests:
data_tests:
- not_null
- name: booking_created_date_utc
@ -1262,7 +1262,7 @@ models:
description: |
Date of when the Booking record was created in the Backend.
Cannot be null.
tests:
data_tests:
- not_null
- name: booking_check_in_date_utc
@ -1270,14 +1270,14 @@ models:
description: |
Date of the Check-in of the Booking.
Cannot be null.
tests:
data_tests:
- not_null
- name: booking_check_out_date_utc
data_type: date
description: |
Date of the Check-out of the Booking.
tests:
data_tests:
- not_null
- name: booking_number_of_nights
@ -1296,7 +1296,7 @@ models:
description: |
Specifies the New Dash Version in which these users were
moved or joined.
tests:
data_tests:
- not_null
- name: user_in_new_dash_since_date_utc
@ -1350,7 +1350,7 @@ models:
not necessarily mean that it won't be in the future. Similarly, if
the booking is chargeable it does not necessarily mean that is actually
charged. It cannot be null.
tests:
data_tests:
- not_null
- name: is_booking_cancelled
@ -1389,7 +1389,7 @@ models:
additional metrics.
The data is segmented by deal and time window for detailed analysis.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -1402,20 +1402,20 @@ models:
description: |
The last day of the month or yesterday for historic metrics.
It's the same date as for KPIs related models.
tests:
data_tests:
- not_null
- name: id_deal
data_type: character varying
description: Id of the deal associated to the host.
tests:
data_tests:
- not_null
- name: time_window
data_type: character varying
description: |
Identifier of the time window used for the aggregation of the metrics.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -1445,14 +1445,14 @@ models:
data_type: string
description: |
Main name for this ID deal.
tests:
data_tests:
- not_null
- name: has_active_pms
data_type: boolean
description: |
Does the deal have an active associated PMS.
tests:
data_tests:
- not_null
- name: active_pms_list
@ -1503,7 +1503,7 @@ models:
Total amount of bookings created by the deal
in the time window. It can be null if no bookings
were created.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1514,7 +1514,7 @@ models:
Average amount of listings booked in month by the deal
in the time window. It can be null if no listings
were booked.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1555,7 +1555,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1574,7 +1574,7 @@ models:
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.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1609,7 +1609,7 @@ models:
- name: id_verification
data_type: text
description: "unique Superhog generated id for this verification"
tests:
data_tests:
- unique
- not_null
@ -1622,7 +1622,7 @@ models:
- name: id_user_partner
data_type: text
description: "unique Superhog generated id for partner"
tests:
data_tests:
- not_null
- name: id_accommodation
@ -1632,7 +1632,7 @@ models:
- name: version
data_type: text
description: "value to identify if it is Guesty (V1) or E-deposit (V2)"
tests:
data_tests:
- accepted_values:
values:
- V1
@ -1641,7 +1641,7 @@ models:
- name: verification_source
data_type: text
description: "source of the verification for the booking"
tests:
data_tests:
- accepted_values:
values:
- Guesty
@ -1816,7 +1816,7 @@ models:
- name: id_deal
data_type: character varying
description: "Unique ID for this deal."
tests:
data_tests:
- unique
- not_null
@ -1829,7 +1829,7 @@ models:
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"
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1843,7 +1843,7 @@ models:
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"
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false
@ -1857,7 +1857,7 @@ models:
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"
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: false

View file

@ -15,7 +15,7 @@ models:
- has_id_check,
- main_billing_country_iso_3_per_deal.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date_day
@ -27,13 +27,13 @@ models:
- name: date_day
data_type: date
description: "Date of when Guest Journeys have been completed."
tests:
data_tests:
- not_null
- name: date_week
data_type: string
description: "Week number of when Guest Journeys have been completed."
tests:
data_tests:
- not_null
- name: py_date_day
@ -45,7 +45,7 @@ models:
- name: has_payment
data_type: string
description: Has there been any guest payments on the guest journey.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -56,7 +56,7 @@ models:
data_type: string
description: Does the verification in the guest journey
includes Government Id Check for the bookings.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -67,7 +67,7 @@ models:
data_type: string
description: |
Main billing country of the host.
tests:
data_tests:
- not_null
- name: created_guest_journeys_not_cancelled
@ -75,7 +75,7 @@ models:
description: |
Count of daily guest journeys created, excluding cancelled bookings,
in a given date and per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: created_guest_journeys_not_cancelled
date_column: date_day
@ -85,7 +85,7 @@ models:
description: |
Count of daily guest journeys started, excluding cancelled bookings,
in a given date and per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: started_guest_journeys_not_cancelled
date_column: date_day
@ -95,7 +95,7 @@ models:
description: |
Count of daily guest journeys completed, excluding cancelled bookings,
in a given date and per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: completed_guest_journeys_not_cancelled
date_column: date_day
@ -105,7 +105,7 @@ models:
description: |
Count of daily guest journeys created in a given date and
per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: created_guest_journeys
date_column: date_day
@ -115,7 +115,7 @@ models:
description: |
Count of daily guest journeys started in a given date and
per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: started_guest_journeys
date_column: date_day
@ -125,7 +125,7 @@ models:
description: |
Count of daily guest journeys completed in a given date and
per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: completed_guest_journeys
date_column: date_day
@ -135,7 +135,7 @@ models:
description: |
Count of daily guest journeys with CSAT (customer satisfaction score)
in a given date and per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: total_csat_score_count
date_column: date_day
@ -150,7 +150,7 @@ models:
description: |
Sum of deposit fees paid by guests, without taxes, in GBP
in a given date and per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: deposit_fees_in_gbp
date_column: date_day
@ -160,7 +160,7 @@ models:
description: |
Sum of waiver payments paid by guests, without taxes, in GBP
in a given date and per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: waiver_payments_in_gbp
date_column: date_day
@ -170,7 +170,7 @@ models:
description: |
Sum of checkin cover fees paid by guests, without taxes, in GBP
in a given date and per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: checkin_cover_fees_in_gbp
date_column: date_day
@ -180,7 +180,7 @@ models:
description: |
Sum of total payments paid by guests, without taxes, in GBP
in a given date and per specified dimension.
tests:
data_tests:
- kpis_daily_outlier_detector:
column_name: total_guest_payments_in_gbp
date_column: date_day
@ -263,7 +263,7 @@ models:
of time granularity, dimension, dimension value and list of metrics
with their value.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- date
@ -277,13 +277,13 @@ models:
description: |
The end date of the time range specified in the time_granularity
for the dimension, dimension_value and metrics in this record.
tests:
data_tests:
- not_null
- name: time_granularity
data_type: string
description: The time dimension.
tests:
data_tests:
- accepted_values:
values:
- Daily
@ -293,7 +293,7 @@ models:
- name: dimension
data_type: string
description: The dimension or granularity of the metrics.
tests:
data_tests:
- accepted_values:
values:
- "Global"
@ -308,7 +308,7 @@ models:
- name: dimension_value
data_type: string
description: The value or segment available for the selected dimension.
tests:
data_tests:
- not_null
- name: created_services
@ -368,7 +368,7 @@ models:
- name: has_payment
data_type: string
description: Has there been any guest payments on the guest journey.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -379,7 +379,7 @@ models:
data_type: string
description: Does the verification in the guest journey
includes Government Id Check for the bookings.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -390,7 +390,7 @@ models:
data_type: string
description: |
Main billing country of the host aggregated at Deal level.
tests:
data_tests:
- not_null
- name: timeframe
@ -398,7 +398,7 @@ models:
description: |
Timeframe considered for the aggregation, it could be Year-to-date,
Month-to-date or Week-to-date
tests:
data_tests:
- not_null
- accepted_values:
values:

View file

@ -10,20 +10,20 @@ models:
- name: id_verification
data_type: text
description: Unique identifier for the verification request.
tests:
data_tests:
- unique
- not_null
- name: id_booking
data_type: text
description: Unique identifier for the booking associated with the verification.
tests:
data_tests:
- not_null
- name: id_user_partner
data_type: text
description: Identifier for the partner user initiating the verification.
tests:
data_tests:
- not_null
- name: id_accommodation
@ -34,13 +34,13 @@ models:
data_type: boolean
description: |
Indicates if the booking is protected or not.
tests:
data_tests:
- not_null
- name: protection_type
data_type: text
description: Specific protection type for the request.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -55,7 +55,7 @@ models:
description: Field used for protection type "STANDALONE PROTECTION" to
indicate the starting level of protection.
In local currency.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100000
@ -66,7 +66,7 @@ models:
description: Field used for protection type "SCREEN & PROTECT",
"BASIC PROTECTION" or "DAMAGE WAIVER" to show the basic amount of protection.
In local currency.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100000
@ -77,7 +77,7 @@ models:
description: Field used for protection type "SCREEN & PROTECT",
or "STANDALONE PROTECTION" to show the basic amount of protection.
In local currency.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 50000000
@ -90,7 +90,7 @@ models:
- name: verification_status
data_type: text
description: Outcome of the verification process.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -113,7 +113,7 @@ models:
- name: watch_list
data_type: text
description: Indicates if the guest was flagged on a watchlist.
tests:
data_tests:
- accepted_values:
values:
- "MATCH"
@ -138,13 +138,13 @@ models:
- name: is_cancelled
data_type: boolean
description: Indicates if the booking was canceled.
tests:
data_tests:
- not_null
- name: cancelled_at_utc
data_type: timestamp without time zone
description: Timestamp when the booking was canceled.
tests:
data_tests:
- not_null:
where: is_cancelled = true
@ -207,44 +207,44 @@ models:
- name: status_updated_at_utc
data_type: timestamp without time zone
description: Timestamp of the last status update for the verification.
tests:
data_tests:
- not_null
- name: status_updated_date_utc
data_type: date
description: Date of the last status update for the verification.
tests:
data_tests:
- not_null
- name: updated_at_utc
data_type: timestamp without time zone
description: Timestamp of the last update to the record.
tests:
data_tests:
- not_null
- name: updated_date_utc
data_type: date
description: Date of the last update to the record.
tests:
data_tests:
- not_null
- name: creation_at_utc
data_type: timestamp without time zone
description: |
Timestamp of when the reservation was created.
tests:
data_tests:
- not_null
- name: creation_date_utc
data_type: date
description: |
Date of when the reservation was created.
tests:
data_tests:
- not_null
- name: cosmos_created_date_utc
data_type: date
description: |
Date of when the verification request was created in Cosmos DB.
tests:
data_tests:
- not_null

View file

@ -795,7 +795,7 @@ models:
- name: id_bank_transaction
data_type: character varying
description: Xero's unique identifier for the transaction.
tests:
data_tests:
- not_null
- unique
@ -841,7 +841,7 @@ models:
negative, amounts we receive are positive.
You can read more here: https://developer.xero.com/documentation/api/accounting/types#bank-transactions
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -861,7 +861,7 @@ models:
receiving transactions show as 1. This helps in converting the
transaction amounts in the right sign, since Xero brings all amounts
as positive by default.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -876,7 +876,7 @@ models:
Can be one of: AUTHORISED, DELETED.
You can read more here: https://developer.xero.com/documentation/api/accounting/types#bank-transaction-status-codes
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -900,7 +900,7 @@ models:
description: |
Total of bank transaction tax inclusive, in the currency the
transaction is denominated in.
tests:
data_tests:
- not_null
- name: total_amount_in_gbp
@ -933,7 +933,7 @@ models:
- name: transaction_currency_iso_4217
data_type: character varying
description: The ISO 4217 code for the currency of the transaction.
tests:
data_tests:
- not_null
- length_between:
min_length: 3
@ -956,7 +956,7 @@ models:
For example, if the transaction is 135 ZAR, and this rate is 0.0167,
the transaction value in GBP is 2.25 (135ZAR * 0.0167GBP/ZAR =
2.25GBP).
tests:
data_tests:
- not_negative
- name: line_amount_tax_inclusiveness
@ -965,7 +965,7 @@ models:
Indicates whether the amounts included in line items are tax
inclusive (Inclusive), tax exclusive (Exclusive) or simply,
there are no taxes on the invoice (NoTax).
tests:
data_tests:
- accepted_values:
values:
- Inclusive
@ -975,7 +975,7 @@ models:
- name: is_reconciled
data_type: boolean
description: A flag indicating if the transaction has been reconciled.
tests:
data_tests:
- not_null
- name: has_attachments
@ -1011,13 +1011,13 @@ models:
- name: id_bank_transaction
data_type: character varying
description: Xero's unique identifier for the transaction.
tests:
data_tests:
- not_null
- name: id_line_item
data_type: text
description: Xero's unique identifier for the line item.
tests:
data_tests:
- not_null
- unique
@ -1121,7 +1121,7 @@ models:
- name: id_line_item
data_type: text
description: Xero's unique identifier for the line item.
tests:
data_tests:
- not_null
- unique
@ -1156,7 +1156,7 @@ models:
- name: id_line_item
data_type: text
description: ""
tests:
data_tests:
- not_null
- unique
@ -1168,7 +1168,7 @@ models:
data_type: text
description: |
Indicates whether the record belongs in an invoice or a credit note.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -1218,7 +1218,7 @@ models:
- name: document_currency_iso_4217
data_type: character varying
description: ""
tests:
data_tests:
- not_null
- length_between:
min_length: 3
@ -1231,7 +1231,7 @@ models:
- name: id_document
data_type: character varying
description: ""
tests:
data_tests:
- not_null
- name: reference
@ -1253,7 +1253,7 @@ models:
- name: document_type
data_type: character varying
description: ""
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -1269,14 +1269,14 @@ models:
- name: exchange_rate_to_gbp
data_type: numeric
description: ""
tests:
data_tests:
- not_null
- not_negative
- name: document_status
data_type: character varying
description: ""
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -1290,7 +1290,7 @@ models:
- name: line_amount_tax_inclusiveness
data_type: character varying
description: ""
tests:
data_tests:
- accepted_values:
values:
- Inclusive

View file

@ -12,21 +12,21 @@ models:
- name: id_verification
data_type: character varying
description: "Unique id for the specific transaction."
tests:
data_tests:
- unique
- not_null
- name: id_booking
data_type: text
description: ""
tests:
data_tests:
- not_null:
where: created_at_utc > '2024-04-01T00:00:00Z' and verification_status != 'InsufficientInformation'
- name: id_user_partner
data_type: text
description: The unique ID of the partner calling the API.
tests:
data_tests:
- not_null
- name: id_accommodation
@ -38,7 +38,7 @@ models:
description: |
Indicates whether the verification is for V1 (Athena) or V2
(e-deposit).
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -51,7 +51,7 @@ models:
of the user. Note that the Athena/e-deposit user also has a configured
nightly fee. It's unclear at this point which one has priority for
billing.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100
@ -61,7 +61,7 @@ models:
data_type: text
description: |
This field shows the outcome of the Verification itself.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -85,7 +85,7 @@ models:
description: |
Null if the phone number shows no issues, otherwise it details the
problems attached to the given phone number.
tests:
data_tests:
- accepted_values:
values:
- "Phone number not reachable"
@ -95,7 +95,7 @@ models:
- name: watch_list
data_type: text
description: ""
tests:
data_tests:
- accepted_values:
values:
- "Match"
@ -119,7 +119,7 @@ models:
Indicates if the booking has been cancelled or not. At the source,
null and false values have the same meaning, so here we turn nulls
into false to keep thing simple.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -129,7 +129,7 @@ models:
- name: cancelled_at_utc
data_type: timestamp without time zone
description: If the booking was cancelled, when did we learn about it.
tests:
data_tests:
- not_null:
where: is_cancelled = true
@ -207,7 +207,7 @@ models:
description: |
Timestamp of the last time the record was modified before screening
happened. Only relevant for V1 records.
tests:
data_tests:
- not_null:
where: version = 'V1'
@ -216,7 +216,7 @@ models:
description: |
Date of the last time the record was modified before screening
happened. Only relevant for V1 records.
tests:
data_tests:
- not_null:
where: version = 'V1'
@ -225,7 +225,7 @@ models:
description: |
Timestamp of the last edit of the record, as set by the
Athena/e-deposit application.
tests:
data_tests:
- not_null
- name: updated_date_utc
@ -233,7 +233,7 @@ models:
description: |
Date of the last edit of the record, as set by the
Athena/e-deposit application.
tests:
data_tests:
- not_null
- name: athena_creation_at_utc
@ -252,18 +252,18 @@ models:
data_type: timestamp without time zone
description: |
The internal application timestamp of when this record was created.
tests:
data_tests:
- not_null
- name: created_date_utc
data_type: timestamp without time zone
description: |
The internal application date of when this record was created.
tests:
data_tests:
- not_null
- name: cosmos_db_timestamp_utc
data_type: timestamp with time zone
description: The internal Cosmos DB timestamp of the last record update.
tests:
data_tests:
- not_null

View file

@ -9,26 +9,26 @@ models:
- name: id_record
data_type: text
description: Unique identifier for the record.
tests:
data_tests:
- unique
- not_null
- name: id_user_partner
data_type: text
description: Identifier for the partner user associated with the check-in.
tests:
data_tests:
- not_null
- name: id_reservation
data_type: text
description: Unique identifier for the reservation associated with the check-in.
tests:
data_tests:
- not_null
- name: id_accommodation
data_type: text
description: Unique identifier for the accommodation associated with the reservation.
tests:
data_tests:
- not_null
- name: guest_last_name
@ -54,7 +54,7 @@ models:
- name: reservation_total_amount_in_local_currency
data_type: numeric
description: Total cost amount in guest currency for the reservation.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
strictly: true
@ -63,19 +63,19 @@ models:
data_type: text
description: |
Currency ISO code used by guest for the reservation.
tests:
data_tests:
- not_null
- name: channel
data_type: text
description: Booking channel or source.
tests:
data_tests:
- not_null
- name: checkin_date_utc
data_type: date
description: Check-in date for the booking.
tests:
data_tests:
- not_null
- name: checkin_time_utc
@ -85,7 +85,7 @@ models:
- name: checkout_date_utc
data_type: date
description: Check-out date for the booking.
tests:
data_tests:
- not_null
- name: listing_name
@ -119,35 +119,35 @@ models:
- name: updated_at_utc
data_type: timestamp without time zone
description: Timestamp of the last update to the record.
tests:
data_tests:
- not_null
- name: updated_date_utc
data_type: date
description: Date of the last update to the record.
tests:
data_tests:
- not_null
- name: cosmos_creation_at_utc
data_type: timestamp without time zone
description: Timestamp when the record was created in Cosmos DB.
tests:
data_tests:
- not_null
- name: cosmos_creation_date_utc
data_type: date
description: Date when the record was created in Cosmos DB.
tests:
data_tests:
- not_null
- name: created_date_utc
data_type: date
description: Date when the record was created.
tests:
data_tests:
- not_null
- name: cosmos_db_timestamp_utc
data_type: timestamp with time zone
description: Internal Cosmos DB timestamp of the last record update.
tests:
data_tests:
- not_null

View file

@ -11,7 +11,7 @@ sources:
data_type: character varying
quote: True
description: "UUID for the user."
tests:
data_tests:
- unique
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
@ -20,14 +20,14 @@ sources:
data_type: bigint
quote: True
description: "WIP. Is this an increment unique ID?"
tests:
data_tests:
- unique
- not_null
- name: Email
data_type: character varying
quote: True
description: "Email for this user."
tests:
data_tests:
- unique
- not_null
- name: Title
@ -39,20 +39,20 @@ sources:
quote: True
description: "The Hubspot Deal Id that this user account belongs to. Multiple users can all be part of one Deal."
# This test can't be enforced yet due to some bad test data in the production database. Once that's deal with, this should be activated.
#tests:
#data_tests:
# - dbt_expectations.expect_column_values_to_match_regex:
# regex: "^[0-9]{10,11}$"
- name: Deleted
data_type: boolean
quote: True
description: "WIP. I'm guessing this signals that the user wanted to be deleted?"
tests:
data_tests:
- not_null
- name: JoinDate
data_type: timestamp without time zone
quote: True
description: "Timestamp on which the user was created."
tests:
data_tests:
- not_null
- name: LastName
data_type: character varying
@ -62,7 +62,7 @@ sources:
data_type: character varying
quote: True
description: ""
tests:
data_tests:
- not_null
- name: FirstName
data_type: character varying
@ -103,7 +103,7 @@ sources:
A user can be created by another user. If this user has been created by another user, this is the UUID of the creator.
Else, this is null.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$"
row_condition: '"CreatedUserId" is not null'
@ -151,7 +151,7 @@ sources:
data_type: boolean
quote: True
description: ""
tests:
data_tests:
- not_null
- name: _airbyte_raw_id
data_type: character varying
@ -159,7 +159,7 @@ sources:
- name: _airbyte_extracted_at
data_type: timestamp with time zone
description: "{{ doc('_airbyte_extracted_at_desc') }}"
tests:
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day

File diff suppressed because it is too large Load diff

View file

@ -12,21 +12,21 @@ models:
- name: id_verification
data_type: character varying
description: "Unique id for the specific transaction."
tests:
data_tests:
- unique
- not_null
- name: id_booking
data_type: text
description: ""
tests:
data_tests:
- not_null:
where: created_at_utc > '2024-04-01T00:00:00Z' and verification_status != 'InsufficientInformation'
- name: id_user_partner
data_type: text
description: The unique ID of the partner calling the API.
tests:
data_tests:
- not_null
- name: id_accommodation
@ -38,7 +38,7 @@ models:
description: |
Indicates whether the verification is for V1 (Athena) or V2
(e-deposit).
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -51,7 +51,7 @@ models:
of the user. Note that the Athena/e-deposit user also has a configured
nightly fee. It's unclear at this point which one has priority for
billing.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100
@ -61,7 +61,7 @@ models:
data_type: text
description: |
This field shows the outcome of the Verification itself.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -85,7 +85,7 @@ models:
description: |
Null if the phone number shows no issues, otherwise it details the
problems attached to the given phone number.
tests:
data_tests:
- accepted_values:
values:
- "Phone number not reachable"
@ -95,7 +95,7 @@ models:
- name: watch_list
data_type: text
description: ""
tests:
data_tests:
- accepted_values:
values:
- "Match"
@ -119,7 +119,7 @@ models:
Indicates if the booking has been cancelled or not. At the source,
null and false values have the same meaning, so here we turn nulls
into false to keep thing simple.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -129,7 +129,7 @@ models:
- name: cancelled_at_utc
data_type: timestamp without time zone
description: If the booking was cancelled, when did we learn about it.
tests:
data_tests:
- not_null:
where: is_cancelled = true
@ -207,7 +207,7 @@ models:
description: |
Timestamp of the last time the record was modified before screening
happened. Only relevant for V1 records.
tests:
data_tests:
- not_null:
where: version = 'V1'
@ -216,7 +216,7 @@ models:
description: |
Date of the last time the record was modified before screening
happened. Only relevant for V1 records.
tests:
data_tests:
- not_null:
where: version = 'V1'
@ -225,7 +225,7 @@ models:
description: |
Timestamp of the last edit of the record, as set by the
Athena/e-deposit application.
tests:
data_tests:
- not_null
- name: updated_date_utc
@ -233,7 +233,7 @@ models:
description: |
Date of the last edit of the record, as set by the
Athena/e-deposit application.
tests:
data_tests:
- not_null
- name: athena_creation_at_utc
@ -252,18 +252,18 @@ models:
data_type: timestamp without time zone
description: |
The internal application timestamp of when this record was created.
tests:
data_tests:
- not_null
- name: created_date_utc
data_type: timestamp without time zone
description: |
The internal application date of when this record was created.
tests:
data_tests:
- not_null
- name: cosmos_db_timestamp_utc
data_type: timestamp with time zone
description: The internal Cosmos DB timestamp of the last record update.
tests:
data_tests:
- not_null

View file

@ -7,7 +7,7 @@ models:
- name: id_contact
data_type: character varying
description: "Unique id for each contact information."
tests:
data_tests:
- unique
- not_null
@ -22,37 +22,37 @@ models:
- name: properties
data_type: jsonb
description: "Json with all contact information for this record."
tests:
data_tests:
- not_null
- name: created_at_utc
data_type: timestamp with time zone
description: "Timestamp of when this record was created."
tests:
data_tests:
- not_null
- name: created_date_utc
data_type: timestamp without time zone
description: "Date of when this record was created."
tests:
data_tests:
- not_null
- name: updated_at_utc
data_type: timestamp with time zone
description: "Timestamp of when this record was last updated."
tests:
data_tests:
- not_null
- name: updated_date_utc
data_type: timestamp without time zone
description: "Date of when this record was last updated."
tests:
data_tests:
- not_null
- name: dwh_extracted_at_utc
data_type: timestamp with time zone
description: "Timestamp of when data was extracted to DWH."
tests:
data_tests:
- not_null
- name: stg_hubspot__form_submissions
@ -61,14 +61,14 @@ models:
- name: id_form
data_type: character varying
description: "Unique id for each form submission."
tests:
data_tests:
- not_null
- unique
- name: values
data_type: jsonb
description: "Json with value information for each form"
tests:
data_tests:
- not_null
- name: page_url
@ -78,31 +78,31 @@ models:
- name: submitted_at_utc
data_type: timestamp with time zone
description: "Timestamp of when this record was created."
tests:
data_tests:
- not_null
- name: submitted_date_utc
data_type: timestamp without time zone
description: "Date of when this record was created."
tests:
data_tests:
- not_null
- name: updated_at_utc
data_type: timestamp with time zone
description: "Timestamp of when this record was last updated."
tests:
data_tests:
- not_null
- name: updated_date_utc
data_type: timestamp without time zone
description: "Date of when this record was last updated."
tests:
data_tests:
- not_null
- name: dwh_extracted_at_utc
data_type: timestamp with time zone
description: "Timestamp of when data was extracted to DWH."
tests:
data_tests:
- not_null
- name: stg_hubspot__deal_pipelines
@ -115,33 +115,33 @@ models:
- name: id_deal_pipeline
data_type: character varying
description: "Unique id for each pipeline."
tests:
data_tests:
- not_null
- unique
- name: deal_pipeline_name
data_type: character varying
description: Name for the pipeline.
tests:
data_tests:
- not_null
- unique
- name: is_active
data_type: boolean
description: Flag indicating if the pipeline is currently active.
tests:
data_tests:
- not_null
- name: created_at_utc
data_type: timestamp
description: When was this record created.
tests:
data_tests:
- not_null
- name: updated_at_utc
data_type: timestamp
description: When was this record last updated.
tests:
data_tests:
- not_null
- name: dwh_extracted_at_utc
@ -151,7 +151,7 @@ models:
- name: stg_hubspot__deal_pipeline_stages
description: |
The different stages of deal pipelines.
tests:
data_tests:
- dbt_utils.unique_combination_of_columns:
combination_of_columns:
- id_deal_pipeline
@ -160,13 +160,13 @@ models:
- name: id_deal_pipeline
data_type: character varying
description: ID of the deal pipeline this stage belongs to.
tests:
data_tests:
- not_null
- name: id_stage
data_type: character varying
description: Unique ID for this stage.
tests:
data_tests:
- not_null
- unique
@ -175,25 +175,25 @@ models:
description: |
The name of this stage. There might be name collisions across
pipelines.
tests:
data_tests:
- not_null
- name: is_active
data_type: boolean
description: Flag indicating wheter the stage is currently active.
tests:
data_tests:
- not_null
- name: created_at_utc
data_type: timestamp
description: When was this record created.
tests:
data_tests:
- not_null
- name: updated_at_utc
data_type: timestamp
description: When was this record last updated.
tests:
data_tests:
- not_null
- name: dwh_extracted_at_utc
@ -212,7 +212,7 @@ models:
- name: id_deal
data_type: character varying
description: Unique ID for this deal.
tests:
data_tests:
- unique
- not_null

View file

@ -10,20 +10,20 @@ models:
- name: id_verification
data_type: text
description: Unique identifier for the verification request.
tests:
data_tests:
- unique
- not_null
- name: id_booking
data_type: text
description: Unique identifier for the booking associated with the verification.
tests:
data_tests:
- not_null
- name: id_user_partner
data_type: text
description: Identifier for the partner user initiating the verification.
tests:
data_tests:
- not_null
- name: id_accommodation
@ -33,7 +33,7 @@ models:
- name: protection_type
data_type: text
description: Specific protection type for the request.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -48,7 +48,7 @@ models:
description: Field used for protection type "STANDALONE PROTECTION" to
indicate the starting amount of protection.
In local currency.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100000
@ -59,7 +59,7 @@ models:
description: Field used for protection type "SCREEN & PROTECT",
"BASIC PROTECTION" or "DAMAGE WAIVER" to show the basic amount of protection.
In local currency.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 100000
@ -70,7 +70,7 @@ models:
description: Field used for protection type "SCREEN & PROTECT",
or "STANDALONE PROTECTION" to show the basic amount of protection.
In local currency.
tests:
data_tests:
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
max_value: 50000000
@ -83,7 +83,7 @@ models:
- name: verification_status
data_type: text
description: Outcome of the verification process.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -106,7 +106,7 @@ models:
- name: watch_list
data_type: text
description: Indicates if the guest was flagged on a watchlist.
tests:
data_tests:
- accepted_values:
values:
- "MATCH"
@ -127,13 +127,13 @@ models:
- name: is_cancelled
data_type: boolean
description: Indicates if the booking was canceled.
tests:
data_tests:
- not_null
- name: cancelled_at_utc
data_type: timestamp without time zone
description: Timestamp when the booking was canceled.
tests:
data_tests:
- not_null:
where: is_cancelled = true
@ -196,50 +196,50 @@ models:
- name: status_updated_at_utc
data_type: timestamp without time zone
description: Timestamp of the last status update for the verification.
tests:
data_tests:
- not_null
- name: status_updated_date_utc
data_type: date
description: Date of the last status update for the verification.
tests:
data_tests:
- not_null
- name: updated_at_utc
data_type: timestamp without time zone
description: Timestamp of the last update to the record.
tests:
data_tests:
- not_null
- name: updated_date_utc
data_type: date
description: Date of the last update to the record.
tests:
data_tests:
- not_null
- name: creation_at_utc
data_type: timestamp without time zone
description: |
Timestamp of when the reservation was created.
tests:
data_tests:
- not_null
- name: creation_date_utc
data_type: date
description: |
Date of when the reservation was created.
tests:
data_tests:
- not_null
- name: cosmos_created_date_utc
data_type: date
description: |
Date of when the verification request was created in Cosmos DB.
tests:
data_tests:
- not_null
- name: cosmos_db_timestamp_utc
data_type: timestamp with time zone
description: Internal Cosmos DB timestamp of the last record update.
tests:
data_tests:
- not_null

View file

@ -9,20 +9,20 @@ models:
- name: id_verification
data_type: character varying
description: Unique id for the specific transaction.
tests:
data_tests:
- unique
- not_null
- name: id_seon
data_type: text
description: The identifier in Seon.
tests:
data_tests:
- not_null
- name: id_user_partner
data_type: text
description: The unique ID of the partner calling the API.
tests:
data_tests:
- not_null
- name: id_watch_list
@ -33,7 +33,7 @@ models:
data_type: text
description: |
noFlags if the email shows no issues, Flagged otherwise.
tests:
data_tests:
- accepted_values:
values:
- "Flagged"
@ -43,7 +43,7 @@ models:
data_type: text
description: |
noFlags if the phone number shows no issues, Flagged otherwise.
tests:
data_tests:
- accepted_values:
values:
- "Flagged"
@ -53,7 +53,7 @@ models:
data_type: text
description: |
noFlags if not in the watch list, Flagged otherwise.
tests:
data_tests:
- accepted_values:
values:
- "Flagged"
@ -98,7 +98,7 @@ models:
description: |
Timestamp of the last edit of the record, as set by
Screening API.
tests:
data_tests:
- not_null
- name: updated_date_utc
@ -106,25 +106,25 @@ models:
description: |
Date of the last edit of the record, as set by
Screening API.
tests:
data_tests:
- not_null
- name: created_at_utc
data_type: timestamp without time zone
description: |
The internal application timestamp of when this record was created.
tests:
data_tests:
- not_null
- name: created_date_utc
data_type: timestamp without time zone
description: |
The internal application date of when this record was created.
tests:
data_tests:
- not_null
- name: cosmos_db_timestamp_utc
data_type: timestamp with time zone
description: The internal Cosmos DB timestamp of the last record update.
tests:
data_tests:
- not_null

View file

@ -6,8 +6,8 @@ version: 2
# It reads two different schemas (stripe_uk and stripe_us) that have exactly the
# same table structure. To save work, we use YAML anchors (see the funny syntax)
# under sources > stripe_uk > tables and sources > stripe_us > tables.
# Basically, if you change anything in the stripe_uk section, changes will
# happen in both schemas.
# Basically, if you change anything in the stripe_uk section, changes will
# happen in both schemas.
sources:
- name: stripe_uk
@ -25,7 +25,7 @@ sources:
- name: id
data_type: character varying
description: "{{ doc('generic_id_desc') }}"
tests:
data_tests:
- unique
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
@ -33,17 +33,17 @@ sources:
- name: fee
data_type: bigint
description: "Fees (in cents) paid for this transaction. Represented as a positive integer when assessed."
tests:
data_tests:
- not_null
- name: net
data_type: bigint
description: "Net impact to a Stripe balance (in cents). A positive value represents incrementing a Stripe balance, and a negative value decrementing a Stripe balance. You can calculate the net impact of a transaction on a balance by amount - fee"
tests:
data_tests:
- not_null
- name: type
data_type: character varying
description: "Transaction type: adjustment, advance, advance_funding, anticipation_repayment, application_fee, application_fee_refund, charge, climate_order_purchase, climate_order_refund, connect_collection_transfer, contribution, issuing_authorization_hold, issuing_authorization_release, issuing_dispute, issuing_transaction, obligation_outbound, obligation_reversal_inbound, payment, payment_failure_refund, payment_network_reserve_hold, payment_network_reserve_release, payment_refund, payment_reversal, payment_unreconciled, payout, payout_cancel, payout_failure, network_cost, refund, refund_failure, reserve_transaction, reserved_funds, stripe_fee, stripe_fx_fee, tax_fee, topup, topup_reversal, transfer, transfer_cancel, transfer_failure, or transfer_refund. Learn more about balance transaction types and what they represent. To classify transactions for accounting purposes, consider reporting_category instead."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_in_set:
value_set:
@ -90,17 +90,17 @@ sources:
"transfer_failure",
"transfer_refund",
"balance_transfer_outbound",
"balance_transfer_inbound"
"balance_transfer_inbound",
]
- name: amount
data_type: bigint
description: "Gross amount of this transaction (in cents). A positive value represents funds charged to another party, and a negative value represents funds sent to another party."
tests:
data_tests:
- not_null
- name: object
data_type: character varying
description: "Silly column. The value is always `balance_transaction`."
tests:
data_tests:
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^balance_transaction$"
- name: source
@ -109,19 +109,19 @@ sources:
- name: status
data_type: character varying
description: "The transactions net funds status in the Stripe balance, which are either available or pending."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_in_set:
value_set: ["available", "pending"]
- name: created
data_type: bigint
description: "{{ doc('stripe_created_desc') }}"
tests:
data_tests:
- not_null
- name: currency
data_type: character varying
description: "{{ doc('raw_stripe_currency_desc') }}"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_value_lengths_to_equal:
value: 3
@ -134,7 +134,7 @@ sources:
- name: available_on
data_type: bigint
description: "The date that the transactions net funds become available in the Stripe balance."
tests:
data_tests:
- not_null
- name: exchange_rate
data_type: numeric
@ -145,7 +145,7 @@ sources:
- name: reporting_category
data_type: character varying
description: "Read more at https://stripe.com/docs/reports/reporting-categories."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_in_set:
value_set:
@ -160,7 +160,7 @@ sources:
"other_adjustment",
"refund_failure",
"dispute_reversal",
"payout_reversal"
"payout_reversal",
]
- name: _airbyte_raw_id
data_type: character varying
@ -168,7 +168,7 @@ sources:
- name: _airbyte_extracted_at
data_type: timestamp with time zone
description: "{{ doc('_airbyte_extracted_at_desc') }}"
tests:
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
@ -186,7 +186,7 @@ sources:
- name: id
data_type: character varying
description: "{{ doc('generic_id_desc') }}"
tests:
data_tests:
- unique
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
@ -197,7 +197,7 @@ sources:
- name: paid
data_type: boolean
description: "true if the charge succeeded, or was successfully authorized for later capture."
tests:
data_tests:
- not_null
- name: order
data_type: character varying
@ -205,14 +205,14 @@ sources:
- name: amount
data_type: bigint
description: "Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99)."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
- name: object
data_type: character varying
description: "Silly column. The value is always `charge`."
tests:
data_tests:
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^charge$"
- name: review
@ -224,14 +224,14 @@ sources:
- name: status
data_type: character varying
description: "The status of the payment is either succeeded, pending, or failed."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_in_set:
value_set: ["succeeded", "pending", "failed"]
- name: created
data_type: bigint
description: "{{ doc('stripe_created_desc') }}"
tests:
data_tests:
- not_null
- name: dispute
data_type: character varying
@ -248,17 +248,17 @@ sources:
- name: updated
data_type: bigint
description: "{{ doc('stripe_created_desc') }}"
tests:
data_tests:
- not_null
- name: captured
data_type: boolean
description: "If the charge was created without capturing, this Boolean represents whether it is still uncaptured or has since been captured."
tests:
data_tests:
- not_null
- name: currency
data_type: character varying
description: "{{ doc('raw_stripe_currency_desc') }}"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_value_lengths_to_equal:
value: 3
@ -277,7 +277,7 @@ sources:
- name: refunded
data_type: boolean
description: "Whether the charge has been fully refunded. If the charge is only partially refunded, this attribute will still be false."
tests:
data_tests:
- not_null
- name: shipping
data_type: jsonb
@ -315,14 +315,14 @@ sources:
- name: payment_intent
data_type: character varying
description: "ID of the PaymentIntent associated with this charge, if one exists."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^pi_.{24}$"
- name: payment_method
data_type: character varying
description: "ID of the payment method used in this charge."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^pm_.{24}$"
@ -335,7 +335,7 @@ sources:
- name: amount_captured
data_type: bigint
description: "Amount in cents captured (can be less than the amount attribute on the charge if a partial capture was made)."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -343,7 +343,7 @@ sources:
- name: amount_refunded
data_type: bigint
description: "Amount in cents refunded (can be less than the amount attribute on the charge if a partial refund was issued)."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -363,7 +363,7 @@ sources:
- name: balance_transaction
data_type: character varying
description: "ID of the balance transaction that describes the impact of this charge on your account balance (not including refunds or disputes)."
tests:
data_tests:
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^txn_.{24}$"
row_condition: "balance_transaction is not null"
@ -394,7 +394,7 @@ sources:
- name: _airbyte_extracted_at
data_type: timestamp with time zone
description: "{{ doc('_airbyte_extracted_at_desc') }}"
tests:
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
@ -414,7 +414,7 @@ sources:
- name: id
data_type: character varying
description: "{{ doc('generic_id_desc') }}"
tests:
data_tests:
- unique
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
@ -422,14 +422,14 @@ sources:
- name: amount
data_type: bigint
description: "Amount intended to be collected by this PaymentIntent. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The minimum amount is $0.50 US or equivalent in charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 for a USD charge of $999,999.99)."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
- name: object
data_type: character varying
description: "Silly column. The value is always `payment_intent`."
tests:
data_tests:
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^payment_intent$"
- name: review
@ -441,7 +441,7 @@ sources:
- name: status
data_type: character varying
description: "Status of this PaymentIntent, one of requires_payment_method, requires_confirmation, requires_action, processing, requires_capture, canceled, or succeeded. Read more about each PaymentIntent status."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_in_set:
value_set:
@ -461,7 +461,7 @@ sources:
- name: created
data_type: bigint
description: "{{ doc('stripe_created_desc') }}"
tests:
data_tests:
- not_null
- name: invoice
data_type: character varying
@ -469,12 +469,12 @@ sources:
- name: updated
data_type: bigint
description: "{{ doc('stripe_created_desc')}}"
tests:
data_tests:
- not_null
- name: currency
data_type: character varying
description: "{{ doc('raw_stripe_currency_desc') }}"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_value_lengths_to_equal:
value: 3
@ -492,7 +492,7 @@ sources:
- name: metadata
data_type: jsonb
description: "{{ doc('stripe_metadata_desc') }}"
tests:
data_tests:
- not_null
- name: shipping
data_type: jsonb
@ -526,7 +526,7 @@ sources:
- name: latest_charge
data_type: character varying
description: "The latest charge created by this PaymentIntent."
tests:
data_tests:
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^(ch|py)_.{24}$"
row_condition: "latest_charge is not null"
@ -551,7 +551,7 @@ sources:
- name: amount_received
data_type: bigint
description: "Amount that this PaymentIntent collects."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -559,7 +559,7 @@ sources:
- name: amount_capturable
data_type: bigint
description: "Amount that can be captured from this PaymentIntent."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -611,7 +611,7 @@ sources:
- name: _airbyte_extracted_at
data_type: timestamp with time zone
description: "{{ doc('_airbyte_extracted_at_desc') }}"
tests:
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day
@ -628,7 +628,7 @@ sources:
- name: id
data_type: character varying
description: "{{ doc('generic_id_desc') }}"
tests:
data_tests:
- unique
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
@ -636,21 +636,21 @@ sources:
- name: amount
data_type: bigint
description: "Amount, in cents."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
- name: charge
data_type: character varying
description: "ID of the charge thats refunded."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^(ch|py)_.{24}$"
- name: object
data_type: character varying
description: "Silly column. The value is always `refund`."
tests:
data_tests:
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^refund$"
- name: reason
@ -659,7 +659,7 @@ sources:
- name: status
data_type: character varying
description: "Status of the refund. This can be pending, requires_action, succeeded, failed, or canceled. Learn more about failed refunds."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_in_set:
value_set:
@ -673,7 +673,7 @@ sources:
- name: created
data_type: bigint
description: "{{ doc('stripe_created_desc') }}"
tests:
data_tests:
- not_null
- name: updated
data_type: bigint
@ -681,7 +681,7 @@ sources:
- name: currency
data_type: character varying
description: "{{ doc('raw_stripe_currency_desc') }}"
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_value_lengths_to_equal:
value: 3
@ -691,7 +691,7 @@ sources:
- name: payment_intent
data_type: character varying
description: "ID of the PaymentIntent thats refunded."
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^pi_.{24}$"
@ -704,7 +704,7 @@ sources:
- name: balance_transaction
data_type: character varying
description: "Balance transacion that describes the impact on your account balance."
tests:
data_tests:
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^txn_.{24}$"
row_condition: "balance_transaction is not null"
@ -720,7 +720,7 @@ sources:
- name: _airbyte_extracted_at
data_type: timestamp with time zone
description: "{{ doc('_airbyte_extracted_at_desc') }}"
tests:
data_tests:
- not_null
- dbt_expectations.expect_row_values_to_have_recent_data:
datepart: day

View file

@ -13,18 +13,18 @@ models:
description: A unique ID for the record, derived from concatenating the
currencies and date. Currency order is relevant (EURUSD != USDEUR).
data_type: text
tests:
data_tests:
- not_null
- unique
- name: from_currency
description: The source currency, represented as an ISO 4217 code.
data_type: character
tests:
data_tests:
- not_null
- name: to_currency
description: The target currency, represented as an ISO 4217 code.
data_type: character
tests:
data_tests:
- not_null
- name: rate
description: >-
@ -38,7 +38,7 @@ models:
The rate can be smaller than one, but can't be negative.
data_type: numeric
tests:
data_tests:
- not_negative_or_zero
- not_null
- name: rate_date_utc

View file

@ -10,7 +10,7 @@ models:
- name: id_contact
data_type: character varying
description: Xero's unique identifier for the contact.
tests:
data_tests:
- not_null
- unique
@ -21,14 +21,14 @@ models:
- name: contact_name
data_type: character varying
description: The name for the customer.
tests:
data_tests:
- not_null
- unique
- name: is_customer
data_type: boolean
description: Flag that shows if the contact is a Superhog customer.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -38,7 +38,7 @@ models:
- name: is_supplier
data_type: boolean
description: Flag that shows if the contact is a Superhog supplier.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -199,7 +199,7 @@ models:
- name: id_invoice
data_type: character varying
description: Xero's unique identifier for the invoice.
tests:
data_tests:
- not_null
- unique
@ -216,7 +216,7 @@ models:
description: |
This field indicates whether the invoice is from Superhog towards a customer
(value is "ACCREC") or from a supplier towards Superhog (value is "ACCPAY").
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -226,31 +226,31 @@ models:
- name: total_amount_local_curr
data_type: numeric
description: The total amount to be paid, in the currency the invoice is denominated in.
tests:
data_tests:
- not_null
- name: total_amount_wo_tax_local_curr
data_type: numeric
description: The total amount to be paid minus taxes, in the currency the invoice is denominated in.
tests:
data_tests:
- not_null
- name: total_tax_local_curr
data_type: numeric
description: The total tax, in the currency the invoice is denominated in.
tests:
data_tests:
- not_null
- name: total_due_local_curr
data_type: numeric
description: The total amount outstanding right now, in the currency the invoice is denominated in.
tests:
data_tests:
- not_null
- name: total_paid_local_curr
data_type: numeric
description: The total amount that has already been paid, in the currency the invoice is denominated in.
tests:
data_tests:
- not_null
- name: invoice_status
@ -261,7 +261,7 @@ models:
Can be one of: PAID, VOIDED, DRAFT, DELETED, AUTHORISED, SUBMITTED.
You can read more here: https://developer.xero.com/documentation/api/accounting/types#invoices
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -278,7 +278,7 @@ models:
The contact related to this invoice.
The customer if it's an Accounts Receivables one, the supplier if it's an Accounts Payables one.
tests:
data_tests:
- not_null
- name: invoice_due_date_utc
@ -297,7 +297,7 @@ models:
- name: line_items
data_type: jsonb
description: An array with all the line items and their details.
tests:
data_tests:
- not_null
- name: reference
@ -321,7 +321,7 @@ models:
- name: invoice_currency_iso_4217
data_type: character varying
description: The ISO 4217 code for the currency which this invoice uses as unit of account.
tests:
data_tests:
- not_null
- length_between:
min_length: 3
@ -337,7 +337,7 @@ models:
For example, if the invoice is 135 ZAR, and this rate is 0.0167, the invoice value in GBP is 2.25
(135ZAR * 0.0167GBP/ZAR = 2.25GBP).
tests:
data_tests:
- not_null
- not_negative
@ -399,7 +399,7 @@ models:
Indicates whether the amounts included in line items are tax
inclusive (Inclusive), tax exclusive (Exclusive) or simply,
there are no taxes on the invoice (NoTax).
tests:
data_tests:
- accepted_values:
values:
- Inclusive
@ -428,7 +428,7 @@ models:
- name: id_credit_note
data_type: character varying
description: Xero's unique identifier for the credit note.
tests:
data_tests:
- not_null
- unique
@ -451,7 +451,7 @@ models:
- name: credit_note_type
data_type: character varying
description: The type of the credit note (e.g., ACCRECCREDIT or ACCPAYCREDIT).
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -468,32 +468,32 @@ models:
The implied exchange rate between the credit note currency and GBP.
This is the XXX to GBP rate, indicating how many GBP one unit of XXX is worth.
tests:
data_tests:
- not_null
- not_negative
- name: total_amount_local_curr
data_type: numeric
description: The total amount of the credit note in the local currency.
tests:
data_tests:
- not_null
- name: subtotal_local_curr
data_type: numeric
description: The subtotal of the credit note in the local currency, before tax.
tests:
data_tests:
- not_null
- name: total_tax_local_curr
data_type: numeric
description: The total tax amount of the credit note in the local currency.
tests:
data_tests:
- not_null
- name: remaining_credit_local_curr
data_type: numeric
description: The remaining credit amount in the local currency.
tests:
data_tests:
- not_null
- name: applied_amount
@ -508,7 +508,7 @@ models:
Can be one of: PAID, VOIDED, DRAFT, DELETED, AUTHORISED, SUBMITTED.
You can read more here: https://developer.xero.com/documentation/api/accounting/types#invoices
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -522,7 +522,7 @@ models:
- name: full_contact_details
data_type: jsonb
description: The full contact details related to the credit note.
tests:
data_tests:
- not_null
- name: credit_note_due_date
@ -532,7 +532,7 @@ models:
- name: line_items
data_type: jsonb
description: An array of line items associated with the credit note.
tests:
data_tests:
- not_null
- name: date_string
@ -573,7 +573,7 @@ models:
Indicates whether the amounts included in line items are tax
inclusive (Inclusive), tax exclusive (Exclusive) or simply,
there are no taxes on the credit note (NoTax).
tests:
data_tests:
- accepted_values:
values:
- Inclusive
@ -597,7 +597,7 @@ models:
- name: id_bank_transaction
data_type: character varying
description: Xero's unique identifier for the transaction.
tests:
data_tests:
- not_null
- unique
@ -633,7 +633,7 @@ models:
negative, amounts we receive are positive.
You can read more here: https://developer.xero.com/documentation/api/accounting/types#bank-transactions
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -653,7 +653,7 @@ models:
receiving transactions show as 1. This helps in converting the
transaction amounts in the right sign, since Xero brings all amounts
as positive by default.
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -668,7 +668,7 @@ models:
Can be one of: AUTHORISED, DELETED.
You can read more here: https://developer.xero.com/documentation/api/accounting/types#bank-transaction-status-codes
tests:
data_tests:
- not_null
- accepted_values:
values:
@ -688,7 +688,7 @@ models:
description: |
Total of bank transaction tax inclusive, in the currency the
transaction is denominated in.
tests:
data_tests:
- not_null
- name: total_amount_wo_tax_local_curr
@ -706,7 +706,7 @@ models:
- name: transaction_currency_iso_4217
data_type: character varying
description: The ISO 4217 code for the currency of the transaction.
tests:
data_tests:
- not_null
- length_between:
min_length: 3
@ -729,7 +729,7 @@ models:
For example, if the transaction is 135 ZAR, and this rate is 0.0167,
the transaction value in GBP is 2.25 (135ZAR * 0.0167GBP/ZAR =
2.25GBP).
tests:
data_tests:
- not_negative
- name: line_amount_tax_inclusiveness
@ -738,7 +738,7 @@ models:
Indicates whether the amounts included in line items are tax
inclusive (Inclusive), tax exclusive (Exclusive) or simply,
there are no taxes on the invoice (NoTax).
tests:
data_tests:
- accepted_values:
values:
- Inclusive
@ -755,19 +755,19 @@ models:
- name: line_items
data_type: jsonb
description: An array with all the line items and their details.
tests:
data_tests:
- not_null
- name: bank_account
data_type: jsonb
description: An array with the details of the related bank account.
tests:
data_tests:
- not_null
- name: is_reconciled
data_type: boolean
description: A flag indicating if the transaction has been reconciled.
tests:
data_tests:
- not_null
- name: has_attachments
@ -801,11 +801,11 @@ models:
- name: id_account
data_type: character varying
description: Xero's unique identifier for the account.
tests:
data_tests:
- not_null
- unique
- name: account_code
data_type: character varying
description: Human readable account code.
tests:
data_tests:
- unique

View file

@ -13,14 +13,14 @@ seeds:
- name: iso_4217_code
data_type: character varying
description: The 3 character ISO 4217 code for this currency, in Uppercase.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^[A-Z]{3}$"
- name: iso_4217_numeric_code
data_type: character varying
description: The 3 digit ISO 4217 numeric code for this currency.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_match_regex:
regex: "^[0-9]{3}$"
@ -35,7 +35,7 @@ seeds:
To convert from normal unit (Dollar) to smallest unit (Cent), multiply by `10^decimal_positions`.
To convert from smallest unit (Cent) to normal unit (Dollar), divide by `10^decimal_positions`.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0
@ -65,7 +65,7 @@ seeds:
data_type: character varying
description: The name of the country.
tests:
data_tests:
- not_null
- unique
- name: alpha_2
@ -73,7 +73,7 @@ seeds:
description: |
The two characters ISO 3166-1 Alpha-2 code for the country.
tests:
data_tests:
- not_null
- unique
- dbt_expectations.expect_column_values_to_match_regex:
@ -83,7 +83,7 @@ seeds:
description: |
The three characters ISO 3166-1 Alpha-3 code for the country.
tests:
data_tests:
- not_null
- unique
- dbt_expectations.expect_column_values_to_match_regex:
@ -93,7 +93,7 @@ seeds:
description: |
The three digit ISO 3166-1 Numeric code for the country.
tests:
data_tests:
- not_null
- unique
- dbt_expectations.expect_column_values_to_match_regex:
@ -105,7 +105,7 @@ seeds:
of 0% does not necessarily mean that the country doesn't have VAT, but
rather that we don't need to charge it to guests from that country.
tests:
data_tests:
- not_null
- dbt_expectations.expect_column_values_to_be_between:
min_value: 0