# Description Removes Address Validation within DWH. Note that I keep the 2 reporting fields, nullified. These should be removed after the removal of these fields in PBI. # Checklist - [X] The edited models and dependants run properly with production data. - [NA] The edited models are sufficiently documented. - [X] The edited models contain PK tests, and I've ran and passed them. - [NA] I have checked for DRY opportunities with other models and docs. - [NA] I've picked the right materialization for the affected models. # Other - [ ] Check if a full-refresh is required after this PR is merged. Related work items: #23976
3151 lines
109 KiB
YAML
3151 lines
109 KiB
YAML
version: 2
|
|
|
|
models:
|
|
- name: int_core__duplicate_bookings
|
|
description: |
|
|
A list of bookings which are considered duplicates of other bookings.
|
|
|
|
We currently consider two bookings to be duplicate if they have the same:
|
|
- Guest user id
|
|
- Accomodation id
|
|
- Check-in date
|
|
|
|
Bear in mind these bookings do have different booking ids.
|
|
|
|
Out of a duplicated tuple of 2 or more bookings:
|
|
- Our logic will consider the oldest one to be the "original", not duplicate one.
|
|
- This table will contain only the duplicates, and not the original.
|
|
columns:
|
|
- name: id_booking
|
|
data_type: bigint
|
|
description: The unique, Superhog generated id for this booking.
|
|
tests:
|
|
- unique
|
|
- not_null
|
|
|
|
- name: is_duplicate_booking
|
|
data_type: boolean
|
|
description: |
|
|
True if the booking is duplicate.
|
|
|
|
If you are thinking that this is redundant, you are right. All
|
|
records in this table will be true. But we keep this field to
|
|
make your life easier when joining with other tables.
|
|
|
|
- name: is_duplicating_booking_with_id
|
|
data_type: bigint
|
|
description: |
|
|
|
|
Indicates what's the original booking being duplicated.
|
|
|
|
If there is a tuple of duplicate bookings {A, B, C}, where A is the
|
|
original and the others are the duplicates:
|
|
- B and C will appear in this table, A will not.
|
|
- The value of this field for both B and C will be A's id.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: int_core__booking_charge_events
|
|
description: |
|
|
|
|
Booking charge events is a fancy word for saying: a booking happened,
|
|
the related host had a booking fee set up at the right time, hence we
|
|
need to charge him.
|
|
|
|
The table contains one record per booking and shows the associated
|
|
booking fee, as well as the point in time in which the charge event was
|
|
considered.
|
|
|
|
Be wary of the booking fees: they don't have an associated currency.
|
|
Crazy, I know, but we currently don't store that information in the
|
|
backend.
|
|
|
|
As for the charge dates: the exact point in time at which we consider
|
|
that we should be charging a fee depends on billing details of the host
|
|
customer. For some bookings, this will be the check-in. For others, it's
|
|
when the guest 'begins the verification process'. Here, depending on whether
|
|
the booking has or not a verification request linked to it, we will consider
|
|
either by when the guest joined or when the verification request was last
|
|
updated. Be aware that this 'begins the verification process' logic is different
|
|
from other DWH models; the current one explained here aiming to replicate what
|
|
is currently being done for invoicing.
|
|
|
|
Note: even though we aim to replicate what is happening for the invoicing process,
|
|
you need to be aware that the monthly volumes do not match exactly with what we
|
|
have in the invoicing exporter.
|
|
|
|
An additional column called is_booking_created_after_charging_date exemplifies the
|
|
fact that some bookings will get created after the verification process should have
|
|
happened - thus these are likely billable bookings that have not been billed.
|
|
|
|
Not all bookings appear here since we don't charge a fee for all
|
|
bookings.
|
|
|
|
columns:
|
|
- name: id_booking
|
|
data_type: bigint
|
|
description: The unique, Superhog generated id for this booking.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_price_plan
|
|
data_type: bigint
|
|
description: The id of the price plan that relates to this booking.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: booking_fee_local
|
|
data_type: numeric
|
|
description: The fee to apply to the booking, in host currency.
|
|
|
|
- name: account_currency_iso4217
|
|
data_type: character varying
|
|
description: Currency used by host/pm/platform users.
|
|
|
|
- name: booking_fee_in_gbp
|
|
data_type: numeric
|
|
description: The fee to apply to the booking, in GBP.
|
|
|
|
- name: booking_fee_charge_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
The point in time in which the booking should be invoiced.
|
|
|
|
This could be the check-in date of the booking or the date in which the guest verification
|
|
started, depending on the billing settings of the host.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: booking_fee_charge_date_utc
|
|
data_type: date
|
|
description: |
|
|
The date in which the booking should be invoiced.
|
|
|
|
This could be the check-in date of the booking or the date in which the guest verification
|
|
started, depending on the billing settings of the host.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: is_booking_created_after_charging_date
|
|
data_type: boolean
|
|
description: |
|
|
Flag to identify if the booking was created after the
|
|
expected charge date. It can identify cases that might not
|
|
be covered within the current invoicing process.
|
|
|
|
- name: int_core__check_in_cover_prices
|
|
description: |
|
|
|
|
This table shows the active price and cover for the Check-In Hero
|
|
product.
|
|
|
|
The prices are obtained through a gross `GROUP BY` thrown at the payment
|
|
validation sets table. It works this way because the price settings of
|
|
this product were done with a terrible backend data model design.
|
|
|
|
How could the prices be changed remains a mystery, and the current design
|
|
does not support any kind of history tracking. When the time comes to
|
|
adjust prices, we will have a lot of careful work to do to make sure that
|
|
we keep history and that no downstream dependencies of this model blow
|
|
up.
|
|
|
|
columns:
|
|
- name: local_currency_iso_4217
|
|
data_type: character varying
|
|
description: A currency code.
|
|
|
|
- name: checkin_cover_guest_fee_local_curr
|
|
data_type: numeric
|
|
description: |
|
|
The fee that the guest user must pay if he wants to purchase the
|
|
cover. This fee is tax inclusive if happen in a country in which
|
|
taxes are to be applied
|
|
|
|
- name: checkin_cover_cover_amount_local_curr
|
|
data_type: numeric
|
|
description: |
|
|
The amount for which the guest user is covered if he faces problems
|
|
during check-in.
|
|
|
|
- name: int_core__unified_user
|
|
columns:
|
|
- name: id_user
|
|
data_type: character varying
|
|
description: The unique ID for the user.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: int_core__vr_check_in_cover
|
|
description: "This tables holds information on verification requests
|
|
with Ckeck-in Hero available for the guests."
|
|
columns:
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description:
|
|
"Unique, incremental, internal ID for the related verification
|
|
request."
|
|
tests:
|
|
- unique
|
|
- not_null
|
|
|
|
- name: uuid_verification_request
|
|
data_type: text
|
|
description: "uuid for the related verification request"
|
|
|
|
- name: id_verification_set
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: id_superhog_verified_set
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: id_payment_validation_set
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: id_user_guest
|
|
data_type: character varying
|
|
description: Unique, incremental, internal ID for the guest user.
|
|
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: Unique, incremental, internal ID for the host user.
|
|
|
|
- name: id_booking
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: "Id of the accommodation or listing."
|
|
|
|
- name: is_verification_request_complete
|
|
data_type: boolean
|
|
description: "True if the verification request is considered
|
|
complete, AKA the guest has finished the full guest journey."
|
|
|
|
- name: is_past_check_in
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: is_awaiting_check_in
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: cover_was_purchased
|
|
data_type: boolean
|
|
description: "Boolean to indicate if the cover was purchased by the guest or not."
|
|
|
|
- name: cover_was_rejected
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: verification_url
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: callback_url
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: redirect_url
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: logo
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: guest_email
|
|
data_type: character varying
|
|
description: "The email of the guest"
|
|
|
|
- name: last_name
|
|
data_type: character varying
|
|
description: The last name of the guest.
|
|
|
|
- name: first_name
|
|
data_type: character varying
|
|
description: The first name of the guest.
|
|
|
|
- name: guest_phone_number
|
|
data_type: character varying
|
|
description: The phone number of the guest.
|
|
|
|
- name: telephone_code
|
|
data_type: character varying
|
|
description: The telephone code of the guest.
|
|
|
|
- name: guest_phone_number_2
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: check_in_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: check_in_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: check_out_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: check_out_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: verification_start_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: verification_start_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: verification_end_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: verification_end_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: link_used_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: link_used_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: expire_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: expire_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: is_deleted
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: redirect_name
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: id_one_step_link
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: success_message
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: summary
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: rejection_reason
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: has_switched_to_mobile
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: is_verifier_rejected
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: config
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: metadata
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp without time zone
|
|
description: "Date and time at which the validation was created."
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp without time zone
|
|
description: "Date and time at which the validation was last updated."
|
|
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: dwh_extracted_at_utc
|
|
data_type: timestamp with time zone
|
|
description: "Date and time at which the record was extracted from the backend into the DWH."
|
|
|
|
- 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."
|
|
|
|
- name: currency
|
|
data_type: text
|
|
description: "The currency in which the transaction actually happened."
|
|
|
|
- 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."
|
|
|
|
- name: payment_status
|
|
data_type: character varying
|
|
description: "The status of the payment. It can be one of: Paid, Refunded, Refund Failed."
|
|
|
|
- name: payment_paid_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: checkin_cover_limit_amount_local_curr
|
|
data_type: numeric
|
|
description:
|
|
"The amount for which the guest user is covered if he faces problems
|
|
during check-in in their local currency."
|
|
|
|
- name: checkin_cover_limit_amount_in_gbp
|
|
data_type: numeric
|
|
description:
|
|
"The amount for which the guest user is covered if he faces problems
|
|
during check-in in GBP."
|
|
|
|
- name: int_core__verification_request_completeness
|
|
description: |
|
|
The `int_core__verification_request_completeness` model allows to determine if a verification request is
|
|
completed or not. To achieve it, it encapsulates the logic to determine the different possibilites. Its main
|
|
output is the column is_verification_request_complete, but it also provides outputs of the intermediate logic
|
|
steps to be used for further modeling, such as determining the completion date.
|
|
|
|
columns:
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description: id of the verification request. It's the unique key for this model.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: expected_verification_count
|
|
data_type: int
|
|
description: count of verifications that are expected to be passed in order to complete the request.
|
|
|
|
- name: confirmed_from_same_verification_request_count
|
|
data_type: int
|
|
description: count of confirmed verifications that its logic is computed from the same verification request.
|
|
|
|
- name: confirmed_from_previous_verification_requests_count
|
|
data_type: int
|
|
description: count of confirmed verifications that its logic is computed from previous verification requests.
|
|
|
|
- name: confirmed_verification_count
|
|
data_type: int
|
|
description: |
|
|
total count of confirmed verifications. Mainly, it's the sum of the confirmed verifications
|
|
that come from the same verification request plus the ones that come from previous verifications requests.
|
|
|
|
- name: is_verification_request_complete
|
|
data_type: boolean
|
|
description: if the verification request can be considered as completed or not.
|
|
|
|
- name: used_verification_from_same_verification_request
|
|
data_type: boolean
|
|
description: |
|
|
if the verification request can be considered as completed and has at least one confirmed verification
|
|
from the same verification request.
|
|
|
|
- name: used_verification_from_previous_verification_requests
|
|
data_type: boolean
|
|
description: |
|
|
if the verification request can be considered as completed and has at least one confirmed verification
|
|
from a previous verification request.
|
|
|
|
- name: is_complete_only_from_previous_verification_requests
|
|
data_type: boolean
|
|
description: |
|
|
if the verification request can be considered as completed and all confirmed verifications are from
|
|
previous verification requests.
|
|
|
|
- name: int_core__verification_request_completed_date
|
|
description: |
|
|
The `int_core__verification_request_completed_date` model allows to retrieve the time in which the guest
|
|
journey, or verification request, was completed. It only considers that a guest journey is completed based
|
|
on the positive outcome of the is_verification_complete boolean coming from verification_request_completeness
|
|
model.
|
|
|
|
The completion time is computed as follows:
|
|
- Only considering verification requests that have been tagged as completed. From here, we have:
|
|
- If the verification request has, at least, one verification linked; the date will be the creation date
|
|
of the last verification created linked to that verification request.
|
|
To keep in mind: for some cases, the last verification can have updates after the creation, but these
|
|
generally happen with very low time differences with respect to the creation date. However, there are
|
|
some outliers - mostly linked to admin override - that we're not considering here, since these might
|
|
not necessarily be linked to the Guest completing the Guest Journey.
|
|
- If the verification request does not have any verification linked; we assume an automatic completion.
|
|
In this case, we use the time from which the verification request was created.
|
|
|
|
For some cases, it is possible that this logic still generates some completed times that are actually
|
|
before a user usage of the link. For these cases, we do an override and we apply the used_link_at_utc
|
|
as the completed time. To account for this cases, check the boolean column
|
|
is_completed_at_overriden_with_used_link_at.
|
|
|
|
In summary, the guest journey completion time provided here is an estimation.
|
|
|
|
Finally, this model only contains those request that have been completed, so keep it in mind when joining this
|
|
table.
|
|
|
|
columns:
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description: id of the completed verification request. It's the unique key for this model.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: estimated_completed_at_utc
|
|
data_type: timestamp
|
|
description: estimated timestamp of when the verification request was completed.
|
|
|
|
- name: estimated_completed_date_utc
|
|
data_type: date
|
|
description: estimated date from the timestamp of when the verification request was completed.
|
|
|
|
- name: is_completed_at_overriden_with_used_link_at
|
|
data_type: boolean
|
|
description: >
|
|
boolean indicating if the estimated dates have been overriden with the
|
|
used link since the initial computation was still considering an end
|
|
date before a starting date.
|
|
|
|
- name: int_core__verification_payments
|
|
latest_version: 2
|
|
description: >-
|
|
A simplified table that holds guest journey payments with details around
|
|
when they happen, what service was being paid, what was the related
|
|
verification request, etc.
|
|
|
|
Currency rates are converted to GBP with our simple exchange rates view.
|
|
|
|
Guest taxes get calculated here. You can find out more about Guest Tax
|
|
calculation here: https://www.notion.so/knowyourguest-superhog/Guest-Services-Taxes-How-to-calculate-a5ab4c049d61427fafab669dbbffb3a2?pvs=4
|
|
columns:
|
|
- name: id_verification_to_payment
|
|
data_type: bigint
|
|
description: Unique ID for the relation between the payment verification
|
|
and the payment at hand.
|
|
tests:
|
|
- unique
|
|
- not_null
|
|
- name: id_payment
|
|
data_type: bigint
|
|
description: Unique ID for the payment itself.
|
|
tests:
|
|
- unique
|
|
- not_null
|
|
- name: is_refundable
|
|
data_type: boolean
|
|
- name: created_at_utc
|
|
data_type: timestamp without time zone
|
|
- name: updated_at_utc
|
|
data_type: timestamp without time zone
|
|
- name: payment_due_at_utc
|
|
data_type: timestamp without time zone
|
|
tests:
|
|
- not_null
|
|
- name: payment_due_date_utc
|
|
data_type: date
|
|
tests:
|
|
- not_null
|
|
- name: payment_paid_at_utc
|
|
data_type: timestamp without time zone
|
|
- name: payment_paid_date_utc
|
|
data_type: date
|
|
- name: payment_reference
|
|
data_type: character varying
|
|
- name: refund_due_at_utc
|
|
data_type: timestamp without time zone
|
|
- name: refund_due_date_utc
|
|
data_type: date
|
|
- name: payment_refunded_at_utc
|
|
data_type: timestamp without time zone
|
|
- name: payment_refunded_date_utc
|
|
data_type: date
|
|
- name: refund_payment_reference
|
|
data_type: character varying
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: |
|
|
UUID of the Host linked to the Verification Request
|
|
that has a payment. It's included here to speed up
|
|
KPIs execution, even though the host itself has nothing
|
|
to do with the guest payments.
|
|
- name: id_guest_user
|
|
data_type: character varying
|
|
- name: id_verification
|
|
data_type: bigint
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
- name: verification_payment_type
|
|
data_type: character varying
|
|
- name: currency
|
|
data_type: character varying
|
|
tests:
|
|
- not_null
|
|
- name: amount_in_txn_currency
|
|
data_type: numeric
|
|
tests:
|
|
- not_null
|
|
- name: amount_in_gbp
|
|
data_type: numeric
|
|
tests:
|
|
- not_null
|
|
- name: payment_status
|
|
data_type: character varying
|
|
- name: notes
|
|
data_type: character varying
|
|
versions:
|
|
- v: 2
|
|
columns:
|
|
- name: total_amount_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The total amount due created by the interaction, in the currency
|
|
of the transaction.
|
|
|
|
Should we refund the payment, this is also the amount we will give
|
|
back to the guest.
|
|
tests:
|
|
- not_null
|
|
- name: total_amount_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The total amount due created by the interaction, in GBP.
|
|
|
|
Should we refund the payment, this is the GBP equivalent of the
|
|
amount we will give back to the guest, but we won't be paying in
|
|
GBP unless the original payment was in GBP.
|
|
tests:
|
|
- not_null
|
|
- name: tax_amount_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The tax amount applicable to this transaction, in the currency of
|
|
the transaction.
|
|
|
|
If the transaction accrues no taxes, will be 0.
|
|
tests:
|
|
- not_null
|
|
- name: tax_amount_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The tax amount applicable to this transaction, in GBP.
|
|
|
|
If the transaction accrues no taxes, will be 0.
|
|
tests:
|
|
- not_null
|
|
- name: amount_without_taxes_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The total amount minus taxes, in the currency of the transaction.
|
|
|
|
This is what should be considered net-of-taxes revenue for
|
|
Superhog.
|
|
|
|
If the transaction accrues no taxes, will be equal to the field
|
|
total_amount_in_txn_currency.
|
|
tests:
|
|
- not_null
|
|
- name: amount_without_taxes_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The total amount minus taxes, in GBP.
|
|
|
|
This is what should be considered net-of-taxes revenue for
|
|
Superhog.
|
|
|
|
If the transaction accrues no taxes, will be equal to the field
|
|
total_amount_in_txn_currency.
|
|
tests:
|
|
- not_null
|
|
- name: vat_rate
|
|
data_type: numeric
|
|
description: |
|
|
The applicable VAT rate to this payment. This is inferred from (1)
|
|
which service is the payment related to and (2) what's the billing
|
|
country of the guest.
|
|
tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
max_value: 0.99 # If we ever have a 100% tax rate... Let's riot working please
|
|
strictly: false
|
|
|
|
- name: is_service_subject_to_vat
|
|
data_type: boolean
|
|
description: |
|
|
Whether the related payment is subject to VAT. For instance,
|
|
deposit payments are not.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: is_vat_taxed
|
|
data_type: boolean
|
|
description: |
|
|
Syntactic sugar to indicate if there's any VAT on this payment.
|
|
Will be true if so, false if not for any reason (guest country has
|
|
no VAT, the payment is for a deposit, etc.)
|
|
tests:
|
|
- not_null
|
|
|
|
- name: is_missing_user_country
|
|
data_type: boolean
|
|
description: |
|
|
True if, for some reason, the user doesn't have an informed
|
|
country.
|
|
|
|
The only known, justified reason for this is that the user was
|
|
deleted, along with the billing details.
|
|
|
|
If this turns true in any other case, you should really find out
|
|
why the guest doesn't have a billing country.
|
|
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- false
|
|
where: (are_user_details_deleted != true and are_user_details_deleted is not null)
|
|
|
|
- name: is_missing_vat_rate_for_country
|
|
data_type: boolean
|
|
description: |
|
|
True if the user country is informed, but no VAT rates were found
|
|
for it.
|
|
|
|
This has to be a joining issue, since our database for VAT rates
|
|
covers all the countries in the world. We simply assign a 0% rate
|
|
to countries where we don't collect taxes.
|
|
|
|
If this turns true in any other case, you should really find out
|
|
what's happening.
|
|
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- false
|
|
where: (are_user_details_deleted != true and are_user_details_deleted is not null)
|
|
|
|
- name: are_user_details_deleted
|
|
data_type: boolean
|
|
description: |
|
|
True if the user has been deleted, which is a possible explanation
|
|
for why there might be no country informed.
|
|
|
|
- name: is_missing_vat_details_without_known_cause
|
|
data_type: boolean
|
|
description: |
|
|
True if the VAT rate is missing as a fallback for any
|
|
other reason beyond the other one specified in the table.
|
|
|
|
If this turns true, you have an unhandled problem and you should
|
|
fix it.
|
|
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- false
|
|
- include: all
|
|
exclude: [amount_in_txn_currency, amount_in_gbp]
|
|
- name: int_core__country
|
|
description: |
|
|
This model contains information regarding countries, such as codes,
|
|
names and preferred currencies
|
|
|
|
columns:
|
|
- name: id_country
|
|
data_type: bigint
|
|
description: id of the country. It's the unique key for this model.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: iso_2
|
|
data_type: char(2)
|
|
description: ISO 3166-1 alpha-2 country code. Cannot be null.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: iso_3
|
|
data_type: char(3)
|
|
description: |
|
|
ISO 3166-1 alpha-3 country code. Some countries can have this value as not set,
|
|
therefore it's nullable.
|
|
|
|
- name: country_name
|
|
data_type: character varying
|
|
description: name of the country. Cannot be null.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: iso_num_code
|
|
data_type: int
|
|
description: |
|
|
ISO 3166-1 numeric code. Usually it's 3 digits, but since it's categorised as
|
|
an integer, the preceding zeros are removed. Nullable.
|
|
|
|
- name: phone_code
|
|
data_type: int
|
|
description: |
|
|
Phone code prefix for a given country. Can contain default / duplicated values.
|
|
|
|
- name: id_preferred_currency
|
|
data_type: int
|
|
description: |
|
|
Id of the preferred currency for a given country. Might not be the only currency
|
|
used in the country, it's just the preferred one.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: preferred_currency_name
|
|
data_type: character varying
|
|
description: |
|
|
Currency name of the preferred currency for a given country.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: preferred_iso4217_code
|
|
data_type: char(3)
|
|
description: |
|
|
Three-letter code assigned to the preferred currency for a given country by the ISO.
|
|
These codes are part of the ISO 4217 standard.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: int_core__accommodation
|
|
description: |
|
|
This model contains information regarding accommodations, also known as listings.
|
|
It contains information regarding the host this accommodation is linked to,
|
|
the geographic details, the preferred currency according to the country, details about
|
|
the listing itself (floors, bedrooms, etc) and time-related information of when the
|
|
listing was created.
|
|
|
|
columns:
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: Id of the accommodation or listing. It's the unique key for this model.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: The unique ID for the host. Can be null.
|
|
|
|
- name: id_payment_validation_set
|
|
data_type: bigint
|
|
description: Id of the payment validation set linked to a listing. Can be null.
|
|
|
|
- name: friendly_name
|
|
data_type: character varying
|
|
|
|
- name: country_iso_2
|
|
data_type: char(2)
|
|
description: ISO 3166-1 alpha-2 country code where the listing is located.
|
|
|
|
- name: country_name
|
|
data_type: character varying
|
|
description: Name of the country where the listing is located.
|
|
|
|
- name: country_preferred_currency_code
|
|
data_type: char(3)
|
|
description: |
|
|
Three-letter code assigned to the preferred currency for a given country by the ISO.
|
|
These codes are part of the ISO 4217 standard. Keep in mind this are preferred, not
|
|
necessarily the actual currency.
|
|
|
|
- name: is_active
|
|
data_type: boolean
|
|
description: |
|
|
Boolean to indicate if the listing is active or not. If false, this is considered as a
|
|
hard deactivation - meaning no more bookings can be assigned to this listing. However,
|
|
even if a listing is active, that does not necessarily mean that it's receiving bookings.
|
|
Do not confuse this column with the lifecycle activity of a listing.
|
|
|
|
- name: town
|
|
data_type: character varying
|
|
|
|
- name: postcode
|
|
data_type: character varying
|
|
|
|
- name: address_line_1
|
|
data_type: character varying
|
|
|
|
- name: address_line_2
|
|
data_type: character varying
|
|
|
|
- name: verification_level
|
|
data_type: integer
|
|
|
|
- name: floor_area
|
|
data_type: integer
|
|
|
|
- name: number_of_floors
|
|
data_type: integer
|
|
|
|
- name: number_of_bedrooms
|
|
data_type: integer
|
|
|
|
- name: number_of_bathrooms
|
|
data_type: integer
|
|
|
|
- name: number_of_other_rooms
|
|
data_type: integer
|
|
|
|
- name: construction_details
|
|
data_type: character varying
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: Timestamp of when the listing was created. Cannot be null.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: Date of when the listing was created
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp
|
|
description: Timestamp of when the listing was last updated according to the backend.
|
|
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: Date of when the listing was last updated according to the backend.
|
|
|
|
- name: dwh_extracted_at_utc
|
|
data_type: timestamp
|
|
description: Timestamp of when the accommodation record was extracted from the backend into the DWH.
|
|
|
|
- name: int_core__check_in_cover_users
|
|
description:
|
|
This model contains information about hosts that offer check in cover.
|
|
It has basic information on the users like name, phone, email or joined date.
|
|
|
|
This model is restricted to active user so it doesn't include historical data
|
|
like users that had check-in cover but are currently inactive.
|
|
columns:
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: Unique id value for the user
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_deal
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: last_name
|
|
data_type: character varying
|
|
description: Last name of the user
|
|
|
|
- name: user_name
|
|
data_type: character varying
|
|
description: User name of the user
|
|
|
|
- name: first_name
|
|
data_type: character varying
|
|
description: First name of the user
|
|
|
|
- name: host_email
|
|
data_type: character varying
|
|
description: Email of the user
|
|
|
|
- name: phone_number
|
|
data_type: character varying
|
|
description: Phone number of the user
|
|
|
|
- name: joined_at_utc
|
|
data_type: timestamp without time zone
|
|
description: Date and time the user joined
|
|
|
|
- name: joined_date_utc
|
|
data_type: date
|
|
description: Date the user joined
|
|
|
|
- name: check_in_cover_added_date_utc
|
|
data_type: date
|
|
description: Date the user first included check-in cover
|
|
|
|
- name: billing_town
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: company_name
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: int_core__guest_satisfaction_responses
|
|
description:
|
|
This model contains information on guests satisfaction survey responses,
|
|
it contains some basic information on the guests, a rating of their experience
|
|
and some comments on it.
|
|
It also includes information on the services provided by Superhog that they payed for.
|
|
columns:
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description: Unique id value for the verification request
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_user_guest
|
|
data_type: character varying
|
|
description: Unique id value for the guest
|
|
|
|
- name: guest_email
|
|
data_type: character varying
|
|
description: Guest email
|
|
|
|
- name: verification_request_booking_source
|
|
data_type: text
|
|
description: Source type of host of the booking, this could be either;
|
|
- PMS
|
|
- OSL
|
|
- API/MANUAL
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "PMS"
|
|
- "OSL"
|
|
- "API/MANUAL"
|
|
|
|
- name: experience_rating
|
|
data_type: bigint
|
|
description: Guest rating of their experience with Superhog from 1 to 5
|
|
|
|
- name: guest_comments
|
|
data_type: character varying
|
|
description: Guest comments on their experience with Superhog
|
|
|
|
- name: is_contactable
|
|
data_type: boolean
|
|
description: |
|
|
True if the guest allows to be contacted for more feedback
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp without time zone
|
|
description: Date and time of response creation
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp without time zone
|
|
description: Date and time of last update of response
|
|
|
|
- name: selected_payment_option
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: date_of_birth
|
|
data_type: numeric
|
|
description: ""
|
|
|
|
- name: age_of_guest
|
|
data_type: numeric
|
|
description: ""
|
|
|
|
- name: has_check_in_cover_payment
|
|
data_type: boolean
|
|
description: |
|
|
True if guest payed for check-in cover
|
|
|
|
- name: has_waiver_payment
|
|
data_type: boolean
|
|
description: |
|
|
True if guest payed the waiver
|
|
|
|
- name: has_deposit_payment
|
|
data_type: boolean
|
|
description: |
|
|
True if guest payed the deposit
|
|
|
|
- name: has_fee_payment
|
|
data_type: boolean
|
|
description: |
|
|
True if guest payed the fee
|
|
|
|
- name: int_core__verification_request_booking_source
|
|
description: This model contains information on verification requests
|
|
and the category type of host that manages the associated
|
|
booking.
|
|
For PMS (Property Manager System) we use the id_integration
|
|
from stg_core__booking, if it isn't Null then the host is PMS type.
|
|
For OSL (One Step Link) we use the id_one_step_link from
|
|
stg_core__verification_request, similarly if it isn't Null then
|
|
the host is OSL type.
|
|
Finally if both id_integration and id_one_step_link are Null,
|
|
then we classify them as API/MANUAL. (At this point we can't
|
|
differentiate between these 2 categories so for now we keep
|
|
them together)
|
|
|
|
columns:
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description: Id value for the verification request, there can be more
|
|
than 1 record for each verification request since they can
|
|
be associated to more than 1 booking
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp without time zone
|
|
description: Date and time of creation of the verification request
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: Date of creation of the verification request
|
|
|
|
- name: verification_request_booking_source
|
|
data_type: text
|
|
description: Source type of host of the booking, this could be either;
|
|
- PMS
|
|
- OSL
|
|
- API/MANUAL
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "PMS"
|
|
- "OSL"
|
|
- "API/MANUAL"
|
|
|
|
- name: int_core__verification_requests
|
|
description:
|
|
This is a table that shows all guest journey from our guests users with
|
|
each record matching each guest journey.
|
|
|
|
It holds information about the guests like name, email, phone, etc.., as
|
|
well as dates regarding the process of the guest journey like when it
|
|
was started or finished.
|
|
columns:
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description:
|
|
Unique, incremental, internal ID for the related verification
|
|
request.
|
|
|
|
- name: uuid_verification_request
|
|
data_type: text
|
|
description: uuid for the related verification request.
|
|
|
|
- name: id_verification_set
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: id_superhog_verified_set
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: id_payment_validation_set
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: id_user_guest
|
|
data_type: character varying
|
|
description: Unique, incremental, internal ID for the guest user.
|
|
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: Unique, incremental, internal ID for the host user.
|
|
|
|
- name: is_verification_request_complete
|
|
data_type: boolean
|
|
description: True if the verification request is considered
|
|
complete, AKA the guest has finished the full guest journey.
|
|
|
|
- name: verification_url
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: callback_url
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: redirect_url
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: logo
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: guest_email
|
|
data_type: character varying
|
|
description: The email of the guest.
|
|
|
|
- name: last_name
|
|
data_type: character varying
|
|
description: The last name of the guest.
|
|
|
|
- name: first_name
|
|
data_type: character varying
|
|
description: The first name of the guest.
|
|
|
|
- name: guest_phone_number
|
|
data_type: character varying
|
|
description: The phone number of the guest.
|
|
|
|
- name: telephone_code
|
|
data_type: character varying
|
|
description: The telephone code of the guest.
|
|
|
|
- name: guest_phone_number_2
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: verification_estimated_started_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The estimated date and time at which the guest started the guest journey.
|
|
|
|
- name: verification_estimated_started_date_utc
|
|
data_type: date
|
|
description: The estimated date on which the guest started the guest journey.
|
|
|
|
- name: verification_estimated_completed_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The estimated date and time at which the guest finished the guest journey.
|
|
|
|
- name: verification_estimated_completed_date_utc
|
|
data_type: date
|
|
description: The estimated date on which the guest finished the guest journey.
|
|
|
|
- name: link_used_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The date and time at which the guest used the link for the verification.
|
|
|
|
- name: link_used_date_utc
|
|
data_type: date
|
|
description: The date on which the guest used the link for the verification.
|
|
|
|
- name: expire_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The date and time at which the link for the verification expires.
|
|
|
|
- name: expire_date_utc
|
|
data_type: date
|
|
description: The date on which the link for the verification expires.
|
|
|
|
- name: is_deleted
|
|
data_type: boolean
|
|
description: |
|
|
True if the link for verification expired before finishing the
|
|
verification.
|
|
|
|
- name: redirect_name
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: id_one_step_link
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: verification_request_booking_source
|
|
data_type: text
|
|
description: Source type of host of the booking, this could be either;
|
|
- PMS
|
|
- OSL
|
|
- API/MANUAL
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "PMS"
|
|
- "OSL"
|
|
- "API/MANUAL"
|
|
|
|
- name: success_message
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: summary
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: rejection_reason
|
|
data_type: character varying
|
|
description: Reason as to why the guest was rejected.
|
|
|
|
- name: has_switched_to_mobile
|
|
data_type: boolean
|
|
description: |
|
|
True if the guest changed has switched to mobile
|
|
during the verification process.
|
|
|
|
- name: is_verifier_rejected
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: config
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: metadata
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The date and time at which the verification process was created.
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: The date on which the verification process was created.
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The date and time at which the last update on the entry happened.
|
|
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: The date on which the last update on the entry happened.
|
|
|
|
- name: dwh_extracted_at_utc
|
|
data_type: timestamp with time zone
|
|
description: ""
|
|
|
|
- name: int_core__bookings
|
|
description: ""
|
|
columns:
|
|
- name: id_booking
|
|
data_type: bigint
|
|
description: "The unique, Superhog generated id for this booking."
|
|
tests:
|
|
- unique
|
|
- not_null
|
|
|
|
- name: id_user_guest
|
|
data_type: character varying
|
|
description: "The unique, Superhog generated id for the guest"
|
|
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: "The unique, Superhog generated id for the host"
|
|
|
|
- name: id_integration
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: "The ID of the booked listing."
|
|
|
|
- name: id_booking_source
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description: "Id value for the verification request, there can be more than 1 record for each verification request since they can be associated to more than 1 booking"
|
|
|
|
- name: verification_request_booking_source
|
|
data_type: text
|
|
description: Source type of host of the booking, this could be either;
|
|
- PMS
|
|
- OSL
|
|
- API/MANUAL
|
|
- null (bookings without verification request)
|
|
tests:
|
|
- accepted_values:
|
|
values:
|
|
- "PMS"
|
|
- "OSL"
|
|
- "API/MANUAL"
|
|
|
|
- name: id_staging_host_booking
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: is_duplicate_booking
|
|
data_type: boolean
|
|
description: A flag that identifies whether the booking is a duplicate.
|
|
|
|
A booking is considered a duplicate if there's an older booking with the same user,
|
|
accomodation and check-in date. If there are two or more bookings with the same user,
|
|
accomodation and check-in date, the oldest one will have False as a value in this field,
|
|
and the other ones will have True as a value in this Failed."
|
|
|
|
Put simply, if you don't want to receive duplicates, filter this field to False.
|
|
|
|
- name: is_duplicating_booking_with_id
|
|
data_type: bigint
|
|
description: "If is_duplicate_booking is True then gives id_booking"
|
|
|
|
- name: booking_state
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: check_in_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: check_in_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: check_out_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: check_out_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: check_in_sits_in_future
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: check_out_sits_in_future
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: booking_fee_local
|
|
data_type: numeric
|
|
description: "The fee to apply to the booking, in host currency."
|
|
|
|
- name: booking_fee_charge_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The point in time in which the booking should be invoiced.
|
|
This could be the check-in date of the booking or the date in which the guest verification
|
|
started, depending on the billing settings of the host.
|
|
|
|
- name: booking_fee_charge_date_utc
|
|
data_type: date
|
|
description: The date in which the booking should be invoiced.
|
|
This could be the check-in date of the booking or the date in which the guest verification
|
|
started, depending on the billing settings of the host.
|
|
|
|
- name: summary
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: guest_email
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: guest_last_name
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: guest_first_name
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: guest_telephone
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: additional_guests
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: unsubscribe_verification_reminder
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp without time zone
|
|
description: "Date and time of creation of the verification request"
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: "Date of creation of the verification request"
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: dwh_extracted_at_utc
|
|
data_type: timestamp with time zone
|
|
description: ""
|
|
|
|
- name: int_core__check_in_cover_listings
|
|
description: This model contains information about hosts and their listings
|
|
that offer check in cover.
|
|
It has basic information on the users and listings like country,
|
|
town, address and if they are active or not.
|
|
|
|
This model is restricted to active user so it doesn't include historical
|
|
data like users that had check-in cover but are currently inactive.
|
|
columns:
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: Unique id value for the user
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_deal
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: last_name
|
|
data_type: character varying
|
|
description: Last name of the user
|
|
|
|
- name: user_name
|
|
data_type: character varying
|
|
description: User name of the user
|
|
|
|
- name: first_name
|
|
data_type: character varying
|
|
description: First name of the user
|
|
|
|
- name: host_email
|
|
data_type: character varying
|
|
description: Email of the user
|
|
|
|
- name: phone_number
|
|
data_type: character varying
|
|
description: Phone number of the user
|
|
|
|
- name: joined_at_utc
|
|
data_type: timestamp without time zone
|
|
description: Date and time the user joined
|
|
|
|
- name: joined_date_utc
|
|
data_type: date
|
|
description: Date the user joined
|
|
|
|
- name: check_in_cover_added_date_utc
|
|
data_type: date
|
|
description: Date the user first included check-in cover
|
|
|
|
- name: billing_town
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: company_name
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: "Id of the accommodation or listing. It's the unique key for this model."
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: is_active
|
|
data_type: boolean
|
|
description: "Boolean to indicate if the accommodation is active or not"
|
|
|
|
- name: friendly_name
|
|
data_type: character varying
|
|
description: "Name of the accommodation"
|
|
|
|
- name: country_name
|
|
data_type: character varying
|
|
description: "Name of the country where the accommodation is located."
|
|
|
|
- name: town
|
|
data_type: character varying
|
|
description: "Town in which the accommodation is located"
|
|
|
|
- name: postcode
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: address_line_1
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: check_in_cover_purchased
|
|
data_type: bigint
|
|
description: "Count of how many Check-in covers have been
|
|
purchased for this accommodation"
|
|
|
|
- name: int_core__host_booking_fees
|
|
description: Bookings that have been processed by the Superhog backend.
|
|
Each record matches one booking and has information on host
|
|
booking fees, when they were charged and the currency used by
|
|
the host.
|
|
|
|
columns:
|
|
- name: id_booking
|
|
data_type: bigint
|
|
description: "The unique, Superhog generated id for this booking."
|
|
tests:
|
|
- unique
|
|
- not_null
|
|
|
|
- name: id_user_guest
|
|
data_type: character varying
|
|
description: The UUID of the Superhog user playing the guest role in the booking.
|
|
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: The UUID of the Superhog user playing the host role in the booking.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: The ID of the booked listing.
|
|
|
|
- name: booking_state
|
|
data_type: character varying
|
|
description:
|
|
"State in which the booking is, could be either of the following:
|
|
- Approved
|
|
- NotApproved
|
|
- Cancelled
|
|
- Rejected
|
|
- NoFlags
|
|
- Flagged
|
|
- IncompleteInformation"
|
|
tests:
|
|
- accepted_values:
|
|
values:
|
|
- "Approved"
|
|
- "NotApproved"
|
|
- "Cancelled"
|
|
- "Rejected"
|
|
- "NoFlags"
|
|
- "Flagged"
|
|
- "IncompleteInformation"
|
|
|
|
- name: is_duplicate_booking
|
|
data_type: boolean
|
|
description: |
|
|
A flag that identifies whether the booking is a duplicate.
|
|
A booking is considered a duplicate if there's an older booking with the same user,
|
|
accomodation and check-in date. If there are two or more bookings with the same user,
|
|
accomodation and check-in date, the oldest one will have False as a value in this field,
|
|
and the other ones will have True as a value in this Failed."
|
|
Put simply, if you don't want to receive duplicates, filter this field to False.
|
|
|
|
- name: booking_fee_local
|
|
data_type: numeric
|
|
description: "The fee to apply to the booking, in host currency."
|
|
|
|
- name: account_currency_iso4217
|
|
data_type: character varying
|
|
description: "Currency used by host/pm/platform users."
|
|
|
|
- name: booking_fee_in_gbp
|
|
data_type: numeric
|
|
description: "The fee to apply to the booking, in GBP"
|
|
|
|
- name: booking_fee_charge_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
The point in time in which the booking should be invoiced.
|
|
|
|
This could be the check-in date of the booking or the date in which the guest verification
|
|
started, depending on the billing settings of the host.
|
|
|
|
- name: booking_fee_charge_date_utc
|
|
data_type: date
|
|
description: |
|
|
The date in which the booking should be invoiced.
|
|
|
|
This could be the check-in date of the booking or the date in which the guest verification
|
|
started, depending on the billing settings of the host.
|
|
|
|
- name: int_core__user_role
|
|
description: |
|
|
This model contains the relationship of user has a role.
|
|
A User in this table can have 1 or more than 1 roles.
|
|
Not all Users in this table appear in the standard user table,
|
|
meaning that not all users have a role assigned.
|
|
|
|
The possible roles are:
|
|
- Host
|
|
- Platform
|
|
- EDeposit
|
|
- Guest
|
|
- Admin
|
|
- KnowYourGuest
|
|
- ScreeningAPI
|
|
- PropertyVerificationManager
|
|
- CheckInHeroApi
|
|
- CancellationApi
|
|
|
|
tests:
|
|
- dbt_utils.unique_combination_of_columns:
|
|
combination_of_columns:
|
|
- id_user
|
|
- role_name
|
|
|
|
columns:
|
|
- name: id_user
|
|
data_type: string
|
|
description: |
|
|
The identifier of the user. Can be duplicated if it has multiple roles.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: role_name
|
|
data_type: string
|
|
description: The name of the role a user has.
|
|
tests:
|
|
- accepted_values:
|
|
values:
|
|
- Host
|
|
- Platform
|
|
- EDeposit
|
|
- Guest
|
|
- Admin
|
|
- KnowYourGuest
|
|
- ScreeningApi
|
|
- PropertyVerificationManager
|
|
- CheckInHeroApi
|
|
- CancellationApi
|
|
|
|
- name: int_core__user_host
|
|
description: |
|
|
This table provides information of the users that act as Hosts.
|
|
A Host needs to be understood in the broad sense of the term. Here host means any
|
|
user that acts as a "B2B" client.
|
|
The categorisation as a Host is based on two possibilities: the role of the user or if
|
|
the user comes from Know Your Guest (KYG) within the claim table. Any user that has
|
|
any of the following roles will be considered as a Host in this table:
|
|
- Host
|
|
- Platform
|
|
- EDeposit
|
|
- KnowYourGuest
|
|
- ScreeningAPI
|
|
- PropertyVerificationManager
|
|
Additionally, any user that has any of these claim types will be considered as a Host:
|
|
- KygRegistrationSignUpType
|
|
- KygRegistrationIntegrationTypeName
|
|
- KygMvp
|
|
Lastly, in case a user satisfies multiple conditions, it will only appear once in this table.
|
|
|
|
columns:
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: The unique user ID for the Host.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
- name: id_account_type
|
|
data_type: integer
|
|
description: |
|
|
Account type ID. Can be null and might be not up-to-date.
|
|
- name: id_billing_country
|
|
data_type: integer
|
|
description: |
|
|
ID of the country in which the Host is billed.
|
|
In some cases it's null.
|
|
- name: billing_country_name
|
|
data_type: string
|
|
description: |
|
|
Name of the country in which the Host is billed.
|
|
In some cases it's null.
|
|
- name: billing_country_iso_2
|
|
data_type: string
|
|
description: |
|
|
ISO 3166-1 alpha-2 country code in which the Host is billed.
|
|
In some cases it's null.
|
|
- name: billing_country_iso_3
|
|
data_type: string
|
|
description: |
|
|
ISO 3166-1 alpha-3 country code in which the Host is billed.
|
|
In some cases it's null.
|
|
- name: account_currency_iso4217
|
|
data_type: string
|
|
description: |
|
|
3 character currency code linked to the account.
|
|
In some cases it's null.
|
|
- name: user_code
|
|
data_type: integer
|
|
description: |
|
|
A code identifying users.
|
|
- name: first_name
|
|
data_type: string
|
|
description: |
|
|
First name of the Host.
|
|
- name: last_name
|
|
data_type: string
|
|
description: |
|
|
Last name of the Host.
|
|
- name: company_name
|
|
data_type: string
|
|
description: |
|
|
Name of the company. In some cases, it's the same
|
|
as the first_name, the last_name, a concatenation of
|
|
both, or something different. Can be null and empty.
|
|
- name: email
|
|
data_type: string
|
|
description: |
|
|
Electronic mail of the Host.
|
|
- name: id_deal
|
|
data_type: string
|
|
description: |
|
|
Main identifier of the B2B clients. A Deal can have multiple Hosts.
|
|
A Host can have only 1 Deal or no Deal at all. This field can be null.
|
|
- name: main_billing_country_name_per_deal
|
|
data_type: string
|
|
description: |
|
|
Name of the main country in which the Deal is billed.
|
|
It's a simplification of the billing country that is common to all users
|
|
that share the same Deal. It can be null.
|
|
- name: main_billing_country_iso_2_per_deal
|
|
data_type: string
|
|
description: |
|
|
ISO 3166-1 alpha-2 main country code in which the Deal is billed.
|
|
It's a simplification of the billing country that is common to all users
|
|
that share the same Deal. It can be null.
|
|
- name: main_billing_country_iso_3_per_deal
|
|
data_type: string
|
|
description: |
|
|
ISO 3166-1 alpha-3 main country code in which the Deal is billed.
|
|
It's a simplification of the billing country that is common to all users
|
|
that share the same Deal. It can be null.
|
|
- name: joined_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when the Host user joined Superhog.
|
|
- name: joined_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when the Host user joined Superhog.
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when the Host user was created in our systems.
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of the last time the information of the Host was updated
|
|
in our systems.
|
|
- name: is_user_in_new_dash
|
|
data_type: boolean
|
|
description: |
|
|
Flag to determine if this user host is in New Dash or not.
|
|
- name: has_user_moved_from_old_dash
|
|
data_type: boolean
|
|
description: |
|
|
Flag to determine if this user host is in New Dash and has
|
|
been moved from the old dash.
|
|
- name: new_dash_version
|
|
data_type: string
|
|
description: |
|
|
For users that are in New Dash, specifies the New Dash Version
|
|
in which these users were moved or joined.
|
|
- name: new_dash_move_date_utc
|
|
data_type: date
|
|
description: |
|
|
For users that are in New Dash and have been moved from
|
|
Old Dash, specifies the date in which users switched.
|
|
- name: new_dash_move_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
For users that are in New Dash and have been moved from
|
|
Old Dash, specifies the timestamp in which users switched.
|
|
This is an estimate since we don't know for sure the exact
|
|
timestamp. Currently defaulting to 00:00:00h of given move
|
|
date.
|
|
- name: user_in_new_dash_since_date_utc
|
|
data_type: date
|
|
description: |
|
|
For users that are in New Dash, the effective date since
|
|
these users can be considered in New Dash. It the user
|
|
has moved from Old Dash, it will be the new_dash_move_date_utc.
|
|
If not, it will correspond to the joined_date_utc.
|
|
- name: user_in_new_dash_since_timestamp_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
For users that are in New Dash, the effective date since
|
|
these users can be considered in New Dash. It the user
|
|
has moved from Old Dash, it will be the new_dash_move_at_utc.
|
|
If not, it will correspond to the joined_at_utc.
|
|
|
|
- name: int_core__new_dash_users
|
|
description: |
|
|
This table provides information of the host users that are in New Dash.
|
|
Users can be in New Dash because 1) have moved (migrated) from Old Dash
|
|
or 2) have been directly created within New Dash.
|
|
|
|
columns:
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: The unique user ID for the Host.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
- name: new_dash_version
|
|
data_type: string
|
|
description: |
|
|
The name of the New Dash version this user appeared firstly.
|
|
tests:
|
|
- not_null
|
|
- name: has_user_moved_from_old_dash
|
|
data_type: boolean
|
|
description: |
|
|
Flag to determine if this user host is in New Dash and has
|
|
been moved from the old dash.
|
|
- name: new_dash_move_date_utc
|
|
data_type: date
|
|
description: |
|
|
For users that are in New Dash and have been moved from
|
|
Old Dash, specifies the date in which users switched.
|
|
- name: new_dash_move_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
For users that are in New Dash and have been moved from
|
|
Old Dash, specifies the timestamp in which users switched.
|
|
This is an estimate since we don't know for sure the exact
|
|
timestamp. Currently defaulting to 00:00:00h of given move
|
|
date.
|
|
- name: user_in_new_dash_since_date_utc
|
|
data_type: date
|
|
description: |
|
|
For users that are in New Dash, the effective date since
|
|
these users can be considered in New Dash. It the user
|
|
has moved from Old Dash, it will be the new_dash_move_date_utc.
|
|
If not, it will correspond to the joined_date_utc.
|
|
- name: user_in_new_dash_since_timestamp_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
For users that are in New Dash, the effective date since
|
|
these users can be considered in New Dash. It the user
|
|
has moved from Old Dash, it will be the new_dash_move_at_utc.
|
|
If not, it will correspond to the joined_at_utc.
|
|
|
|
- name: int_core__user_product_bundle
|
|
description: |
|
|
This model contains the relationship of a User has a Product Bundle. It contains
|
|
both the active Product Bundles as well as inactive, past ones, for each user,
|
|
with the dates in which it was active. If a Product Bundle is active, then the
|
|
end date is null.
|
|
|
|
In the initiatives of "new pricing" and "new dashboard" (2024), a User that
|
|
has been migrated into this setup can have one or many Product Bundles active.
|
|
This table won't display Product Bundles from users that have not been migrated.
|
|
|
|
A Product Bundle is a bundle of one or many Product Services. In other words,
|
|
different combinations of Product Services (Basic Screening, Id Verification,
|
|
Screening Plus, Basic Damage Deposit, Damage Deposit Plus, Waiver Pro, etc)
|
|
) would result into different Product Bundles.
|
|
|
|
For instance, for the New Dashboard MVP, we only have 2 Product Bundles:
|
|
- Basic Screening: only contains one service, which is Basic Screening
|
|
- Basic Program: contains 2 services, which are Basic Screening and
|
|
Waiver Pro.
|
|
|
|
Important:
|
|
A User having an active Product Bundle does NOT mean that the bundle is in use.
|
|
In order to be in use, the Product Bundle needs to be applied to a Listing.
|
|
Thus, the relationship in this table only shows, from user point of view, what
|
|
Product Bundles she/he can apply into a Listing.
|
|
|
|
columns:
|
|
- name: id_user_product_bundle
|
|
data_type: bigint
|
|
description: |
|
|
The unique identifier of this table.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_user_host
|
|
data_type: string
|
|
description: |
|
|
The identifier of the User. Can be duplicated if it has many Product Bundles.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_product_bundle
|
|
data_type: int
|
|
description: |
|
|
The identifier of the Product Bundle associated to the user. The same Product
|
|
Bundle can be applied into many users. Can be null if the bundle is custom.
|
|
|
|
- name: id_protection_plan
|
|
data_type: int
|
|
description: |
|
|
The identifier of the Protection Plan. There's a 1 to 1 relationship between
|
|
a Product Bundle and a Protection Plan.
|
|
|
|
- name: product_bundle_name
|
|
data_type: string
|
|
description: |
|
|
The CamelCase name of the Product Bundle.
|
|
|
|
- name: product_bundle_display_name
|
|
data_type: string
|
|
description: |
|
|
The name of the Product Bundle, better fit for visualisations.
|
|
|
|
- name: protection_name
|
|
data_type: string
|
|
description: |
|
|
The name of the Protection Plan associated to the Product Bundle.
|
|
|
|
- name: protection_display_name
|
|
data_type: string
|
|
description: |
|
|
The name of the Protection Plan, better fit for visualisations.
|
|
|
|
- name: display_on_front_end
|
|
data_type: boolean
|
|
description: |
|
|
Flag that accounts for the capacity of a Host being able to modify the Product Bundle.
|
|
|
|
- name: chosen_product_services
|
|
data_type: int
|
|
description: |
|
|
Identifier of the combination of Services that apply to a Product Bundle. In essence,
|
|
the sum of Service Ids applied return the number displayed in this column. For example,
|
|
a chosen_product_services = 257 means it has the services 1 + 256, which are the
|
|
Basic Screening and the Waiver Pro.
|
|
|
|
- name: original_starts_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this User has Product Bundle was active for the first time, according to
|
|
the Backend.
|
|
Keep in mind that this timestamp can be before the migration of the user, thus
|
|
effective_start_date_utc might be better for reporting and analysis purposes.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: original_ends_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this User has Product Bundle was active for the last time, according to
|
|
the Backend. If null it means that it's currently active.
|
|
Keep in mind that this timestamp can be before the migration of the user, thus
|
|
effective_end_date_utc might be better for reporting and analysis purposes.
|
|
|
|
- name: effective_start_date_utc
|
|
data_type: date
|
|
description: |
|
|
Effective date of when this User has Product Bundle was active for the first time.
|
|
It takes into account the fact that a User needs to be migrated in order for
|
|
the Product Bundle to be active. In case of doubt, use this date.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: effective_end_date_utc
|
|
data_type: date
|
|
description: |
|
|
Effective date of when this User has Product Bundle was active for the last time.
|
|
If null it means that it's currently active.
|
|
It takes into account the fact that a User needs to be migrated in order for
|
|
the Product Bundle to be active. In case of doubt, use this date.
|
|
|
|
- name: has_no_end_date
|
|
data_type: boolean
|
|
description: |
|
|
Flag to determine if the end date is filled or not.
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this User has Product Bundle was created in the Backend.
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this User has Product Bundle was created in the Backend.
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this User has Product Bundle was last updated in the Backend.
|
|
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this User has Product Bundle was last updated in the Backend.
|
|
|
|
- name: dwh_extracted_at
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this row was ingested from the Backend to the DWH.
|
|
|
|
- name: int_core__booking_to_product_bundle
|
|
description: |
|
|
This model contains the information of which booking is linked to a
|
|
specific product bundle. It's a subset of all bookings since it only
|
|
applies to bookings that come from hosts that have been migrated into
|
|
the New Dash. Only the latest product bundle associated to the booking
|
|
is shown.
|
|
|
|
Note: at this moment, it's not straight-forward to know which product service
|
|
is applied in the booking. We only know that a booking is linked to a product
|
|
bundle, but not the service that applies from those available within the
|
|
product bundle. Likely this is not an issue for the MVP since there's only 2
|
|
bundles and 2 services, and the only bundle that has a paid service is Basic
|
|
Program.
|
|
|
|
Note: to improve data quality, there's an inner join with
|
|
int_core__user_product_bundle to ensure that bookings need to 1) come from
|
|
hosts that appear in the table and 2) be created after the user's effective
|
|
start of the product bundle. This is because there's some previous booking
|
|
data that it's before the New Dash MVP start date.
|
|
|
|
columns:
|
|
- name: id_booking_to_product_bundle
|
|
data_type: bigint
|
|
description: |
|
|
The unique identifier of this table.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_booking
|
|
data_type: bigint
|
|
description: |
|
|
The identifier of the booking that has a product bundle.
|
|
A booking appearing here would mean it's under the New Dash &
|
|
the New Pricing structure. It is expected that bookings are
|
|
unique within this model.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_user_product_bundle
|
|
data_type: bigint
|
|
description: |
|
|
The identifier of the user product bundle. This allows the retrieval
|
|
of the information of the product bundle associated at the user level.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_user_host
|
|
data_type: string
|
|
description: |
|
|
The identifier of the user that acts as a host. Only Hosts that have
|
|
New Pricing in the New Dash structure that have had bookings will
|
|
appear in this model.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: product_bundle_name
|
|
data_type: string
|
|
description: |
|
|
The CamelCase name of the Product Bundle.
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this Booking to Product Bundle row was created in the Backend.
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this Booking to Product Bundle row was created in the Backend.
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this Booking to Product Bundle row was last updated in the Backend.
|
|
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this Booking to Product Bundle row was last updated in the Backend.
|
|
|
|
- name: dwh_extracted_at
|
|
data_type: timestamp with timezone
|
|
description: |
|
|
Timestamp of when this row was ingested from the Backend to the DWH.
|
|
|
|
- name: int_core__accommodation_to_product_bundle
|
|
description: |
|
|
This model contains the information of which product bundle is assigned
|
|
into an accommodation, also known as listing.
|
|
It's a subset of all accommodations since it only applies to listings that
|
|
come from hosts that have been migrated into the New Dash.
|
|
|
|
Note: to improve data quality, there's an inner join with
|
|
int_core__user_product_bundle to ensure that accommodations need to be linked
|
|
to hosts that appear in the table.
|
|
|
|
Important note: the lack of entries in this table does NOT mean that the
|
|
users do not have Product Bundles in an Accommodation. A migrated user in New
|
|
Dash have by default the Product Bundle "Basic Screening", which only contains
|
|
the Product Service "Basic Screening". This is a free, default service at the
|
|
moment of creating this model, but according to Dash Product Manager, it is
|
|
likely that this service will at some point be charged - though likely 2025.
|
|
In the meantime, it's possible an quite frequent that users that have been
|
|
migrated have Bookings without the respective Accommodation appearing in this
|
|
table. For these cases, keep in mind that this Basic Screening has this default
|
|
behavior, so it has to be modelised differently.
|
|
|
|
columns:
|
|
- name: id_accommodation_to_product_bundle
|
|
data_type: bigint
|
|
description: |
|
|
The unique identifier of this table.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: |
|
|
The identifier of the accommodation that has a product bundle.
|
|
An accommodation appearing here would mean it's under the New Dash &
|
|
the New Pricing structure; as well as having a product bundle different
|
|
than the default "Basic Screening".
|
|
Accommodations can have several entries in this table for each time
|
|
there's a change on the bundle assigned into it.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_user_product_bundle
|
|
data_type: bigint
|
|
description: |
|
|
The identifier of the user product bundle. This allows the retrieval
|
|
of the information of the product bundle associated at the user level.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_user_host
|
|
data_type: string
|
|
description: |
|
|
The identifier of the user that acts as a host. Only Hosts that have
|
|
New Pricing in the New Dash structure that have an accommodation with
|
|
a product bundle different than the default "Basic Screening" assigned
|
|
into it will appear in this model.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: product_bundle_name
|
|
data_type: string
|
|
description: |
|
|
The CamelCase name of the Product Bundle.
|
|
|
|
- name: original_starts_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this Product Bundle is assigned into an Accommodation was
|
|
active for the first time, according to the Backend.
|
|
Keep in mind that this timestamp can be before the migration of the user, thus
|
|
effective_start_date_utc might be better for reporting and analysis purposes.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: original_ends_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this Product Bundle is assigned into an Accommodation was
|
|
active for the last time, according to the Backend. If null it means that
|
|
it's currently active.
|
|
Keep in mind that this timestamp can be before the migration of the user, thus
|
|
effective_end_date_utc might be better for reporting and analysis purposes.
|
|
|
|
- name: effective_start_date_utc
|
|
data_type: date
|
|
description: |
|
|
Effective date of when this Product Bundle is assigned into an Accommodation was
|
|
active for the first time.
|
|
It takes into account the fact that a User needs to be migrated in order for
|
|
the Product Bundle to be active in the Accommodation. In case of doubt, use this date.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: effective_end_date_utc
|
|
data_type: date
|
|
description: |
|
|
Effective date of when this Product Bundle is assigned into an Accommodation was
|
|
active for the last time. If null it means that it's currently active.
|
|
It takes into account the fact that a User needs to be migrated in order for
|
|
the Product Bundle to be active in the Accommodation. In case of doubt, use this date.
|
|
|
|
- name: has_no_end_date
|
|
data_type: boolean
|
|
description: |
|
|
Flag to determine if the end date is filled or not.
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this Accommodation to Product Bundle row was created in the Backend.
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this Accommodation to Product Bundle row was created in the Backend.
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this Accommodation to Product Bundle row was last updated in the Backend.
|
|
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this Accommodation to Product Bundle row was last updated in the Backend.
|
|
|
|
- name: dwh_extracted_at
|
|
data_type: timestamp with timezone
|
|
description: |
|
|
Timestamp of when this row was ingested from the Backend to the DWH.
|
|
|
|
- name: int_core__new_dash_user_overview
|
|
description: |
|
|
This model allows for minimum tracking of how the new dash initative is
|
|
performing in the different migrations.
|
|
|
|
It's a user-centric model in which, for each user, we retrieve some
|
|
basic performance indicators in the form of listings and bookings.
|
|
|
|
columns:
|
|
- name: id_user_host
|
|
data_type: string
|
|
description: |
|
|
The unique identifier of this table. It corresponds to the host users
|
|
that have been migrated to the New Dashboard.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_deal
|
|
data_type: character varying
|
|
description: The ID for the Deal.
|
|
|
|
- name: user_migration_phase
|
|
data_type: string
|
|
description: |
|
|
The migration phase in which this user was migrated, for informative
|
|
purposes.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: user_estimated_migration_date_utc
|
|
data_type: date
|
|
description: |
|
|
The estimated date in which this user was migrated.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: company_name
|
|
data_type: string
|
|
description: |
|
|
Information about the host user.
|
|
|
|
- name: first_name
|
|
data_type: string
|
|
description: |
|
|
Information about the host user.
|
|
|
|
- name: last_name
|
|
data_type: string
|
|
description: |
|
|
Information about the host user.
|
|
|
|
- name: email
|
|
data_type: string
|
|
description: |
|
|
Information about the host user.
|
|
|
|
- name: account_currency
|
|
data_type: string
|
|
description: |
|
|
Currency associated to the host user.
|
|
|
|
- name: total_user_product_bundles
|
|
data_type: integer
|
|
description: |
|
|
Count of product bundles that this user has or has had.
|
|
It contains both active and historic cases.
|
|
|
|
- name: total_active_user_product_bundles
|
|
data_type: integer
|
|
description: |
|
|
Count of product bundles that this user currently has.
|
|
It contains only currently active cases.
|
|
|
|
- name: total_listings
|
|
data_type: integer
|
|
description: |
|
|
Count of listings that the user owns or has owned.
|
|
|
|
- name: total_active_listings
|
|
data_type: integer
|
|
description: |
|
|
Count of listings that the user owns.
|
|
It contains only those that can accept bookings (hard
|
|
activation - not to be confused with activity-based
|
|
segmentation).
|
|
|
|
- name: total_listings_with_product_bundle_with_paid_service
|
|
data_type: integer
|
|
description: |
|
|
Count of listings that have, or have had, a paid service
|
|
product bundle activated.
|
|
|
|
- name: total_listings_with_active_product_bundle_with_paid_service
|
|
data_type: integer
|
|
description: |
|
|
Count of listings that currently have an active paid service
|
|
product bundle.
|
|
|
|
- name: has_active_listings
|
|
data_type: integer
|
|
description: |
|
|
Integer-based flag version of total_active_listings.
|
|
|
|
- name: has_listings_with_paid_service_applied
|
|
data_type: integer
|
|
description: |
|
|
Integer-based flag version of total_listings_with_product_bundle_with_paid_service.
|
|
|
|
- name: has_listings_with_active_paid_service_applied
|
|
data_type: integer
|
|
description: |
|
|
Integer-based flag version of total_listings_with_active_product_bundle_with_paid_service.
|
|
|
|
- name: total_bookings_with_product_bundle
|
|
data_type: integer
|
|
description: |
|
|
Count of bookings that have a product bundle associated.
|
|
|
|
- name: total_bookings_with_product_bundle_with_paid_service
|
|
data_type: integer
|
|
description: |
|
|
Count of bookings that have a product bundle associated that contain
|
|
a paid service.
|
|
|
|
- name: has_bookings_with_product_bundle
|
|
data_type: integer
|
|
description: |
|
|
Integer-based flag version of total_bookings_with_product_bundle.
|
|
|
|
- name: has_bookings_with_product_bundle_with_paid_service
|
|
data_type: integer
|
|
description: |
|
|
Integer-based flag version of total_bookings_with_product_bundle_with_paid_service.
|
|
|
|
- name: int_core__invoicing_price_plans_per_month
|
|
description: |
|
|
This model contains the price plans that were considered as active
|
|
for the invoicing process each month. This is, given that more than
|
|
one plan coexist within the same month, we take the price plan that
|
|
was active at the end of the month. This price plan is the one that
|
|
should apply for the invoicing of that month, indisctintly of the
|
|
fact that there was other plans active before.
|
|
|
|
tests:
|
|
- dbt_utils.unique_combination_of_columns:
|
|
combination_of_columns:
|
|
- id_user_host
|
|
- id_price_plan
|
|
- active_in_month_start_date_utc
|
|
|
|
columns:
|
|
- name: id_price_plan
|
|
data_type: bigint
|
|
description: |
|
|
The unique identifier of this table, representing
|
|
the identifier of the price plan.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_user_host
|
|
data_type: string
|
|
description: |
|
|
The unique identifier of the user host that has
|
|
a price plan.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: price_plan_charged_by_type
|
|
data_type: string
|
|
description: |
|
|
Type of price plan that determines that will affect
|
|
the billing logic applied.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: price_plan_start_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Original timestamp of when a given price plan
|
|
started to be active.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: price_plan_end_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Original timestamp of when a given price plan
|
|
ended to be active. If it's currently active,
|
|
a default end date on 2099 will apply.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: price_plan_created_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Original timestamp of when a given price plan
|
|
was created.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: active_in_month_start_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date that refers to the first day of the
|
|
month on which we will consider a price plan
|
|
as active.
|
|
If we're interested in retrieving the information from
|
|
June, this date will be the 1st of June.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: active_in_month_end_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date that refers to the last day of the
|
|
month on which we will consider a price plan
|
|
as active.
|
|
If we're interested in retrieving the information from
|
|
June, this date will be the 30th of June.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: price_plans_active_in_month
|
|
data_type: integer
|
|
description: |
|
|
Integer that refers to how many price plans
|
|
have been active in a given month for a user
|
|
host. The price plan retrieved will be the
|
|
last one that was active, so this is just an
|
|
informative field of how many changes of price
|
|
plans happened during that month.
|
|
tests:
|
|
- not_null
|
|
- name: int_core__payaway_per_month_user
|
|
description: |
|
|
This model contains the payaway plans that were considered as active
|
|
for the invoicing process each month. This is, given that more than
|
|
one plan coexist within the same month, we take the one plan that
|
|
was active at the end of the month. This is the one that should apply for
|
|
the invoicing of that month, indisctintly of the fact that there was other
|
|
plans active before.
|
|
|
|
The time scope of the model is limited to the current month. This means
|
|
that, even though some plans will end in future dates or have no planned
|
|
end date, this table will only reflect activeness within months up to the
|
|
current month.
|
|
|
|
tests:
|
|
- dbt_utils.unique_combination_of_columns:
|
|
combination_of_columns:
|
|
- id_user_host
|
|
- id_payaway_plan
|
|
- active_in_month_start_date_utc
|
|
|
|
columns:
|
|
- name: id_payaway_plan
|
|
data_type: bigint
|
|
description: |
|
|
The unique identifier of this table, representing
|
|
the identifier of the payaway plan.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_user_host
|
|
data_type: string
|
|
description: |
|
|
The unique identifier of the user host that has
|
|
a price plan.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: start_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Original timestamp of when a given plan started to be active.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: end_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Original timestamp of when a given plan stopped being active. If it's
|
|
null, it means the plan is open ended (has no planned end date yet).
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Original timestamp of when a given plan was created.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: active_in_month_start_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date that refers to the first day of the month on which we will
|
|
consider a plan as active. If we're interested in retrieving the
|
|
information from June, this date will be the 1st of June.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: active_in_month_end_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date that refers to the last day of the month on which we will
|
|
consider a plan as active. If we're interested in retrieving the
|
|
information from June, this date will be the 30th of June.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: int_core__deal
|
|
description: |
|
|
This table provides information about the unique entity that identifies a
|
|
client, which is a Deal.
|
|
A Deal is a common way to match information between Core, Xero and Hubspot
|
|
data sources. It's different from the typical User Host in the sense that
|
|
a Deal can have multiple User accounts (usually referred to as Platform
|
|
accounts). This is because in the past, different Host configurations could
|
|
only be done if multiple users were created.
|
|
It can happen that a Deal has 1 or multiple hosts, as mentioned above. At
|
|
the same time, not all users that act as hosts have a deal associated. One
|
|
example is Know Your Guest (KYG) Lite accounts. However, there's also historical
|
|
cases that for whatever reason there's no Deal associated.
|
|
For this model, the billing country and the deal name are estimated based on
|
|
the information available in int_core__unified_user.
|
|
|
|
columns:
|
|
- name: id_deal
|
|
data_type: character varying
|
|
description: The unique ID for the Deal. One row per id_deal.
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
- name: main_deal_name
|
|
data_type: string
|
|
description: |
|
|
Main name for this ID deal. It's a clean version of
|
|
the most repeated name within the user tables in the
|
|
fields of first_name, last_name and company name.
|
|
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:
|
|
- not_null
|
|
- name: main_id_billing_country_per_deal
|
|
data_type: integer
|
|
description: |
|
|
ID of the main country in which the Deal is billed.
|
|
It's an estimation since in some cases, a Deal can have
|
|
different User Hosts and these are not forced to be billed
|
|
within the same country. However, the volume of these cases
|
|
is very low, thus we proceed with this estimation.
|
|
In some cases it's null.
|
|
- name: main_billing_country_name_per_deal
|
|
data_type: string
|
|
description: |
|
|
Name of the main country in which the Deal is billed.
|
|
In some cases it's null.
|
|
- name: main_billing_country_iso_2_per_deal
|
|
data_type: string
|
|
description: |
|
|
ISO 3166-1 alpha-2 main country code in which the Deal is billed.
|
|
In some cases it's null.
|
|
- name: main_billing_country_iso_3_per_deal
|
|
data_type: string
|
|
description: |
|
|
ISO 3166-1 alpha-3 main country code in which the Deal is billed.
|
|
In some cases it's null.
|
|
- name: users_with_this_id_deal
|
|
data_type: integer
|
|
description: |
|
|
Informative field of how many Users have this same Deal associated.
|
|
- name: billing_countries_for_this_id_deal
|
|
data_type: integer
|
|
description: |
|
|
Informative field of how many different billing countries are
|
|
associated to this Deal based on the user account configuration.
|
|
- name: int_core__payaway
|
|
description: |
|
|
Contains all the PayAway plans, which are basically the settings for
|
|
host-takes-waiver plans with our host customers. All plans have a start
|
|
and end point in time, which means that any waivers that happen during
|
|
the range of plan should use the settings of this plan as a reference.
|
|
|
|
Plans can be open ended, as in not having a specified end in time. This
|
|
just means they are indefinitely active until someone changes it.
|
|
|
|
Plans can also have a planned end time which sits in the future.
|
|
columns:
|
|
- name: id_payaway_plan
|
|
data_type: bigint
|
|
description: "The unique id for this plan."
|
|
tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: "The Superhog ID of the host user this record applies to."
|
|
|
|
- name: start_at_utc
|
|
data_type: timestamp without time zone
|
|
description:
|
|
The point in time in which this plan became active. It can never be
|
|
null.
|
|
|
|
- name: end_at_utc
|
|
data_type: timestamp without time zone
|
|
description:
|
|
The point in time in which this plan will stop being active. It can
|
|
be null, which means the plan has no planned end date yet. Should this
|
|
column have a value, it should always be after the start time of the
|
|
plan.
|
|
|
|
- name: has_no_end_date
|
|
data_type: boolean
|
|
description: Syntactic sugar for checking if the plan has a specified end date.
|
|
|
|
- name: payaway_percentage
|
|
data_type: numeric
|
|
description: |
|
|
The percentage of the Waiver payments that Superhog will keep as a
|
|
a fee. Should be between 0% and a 100%. 0% is a valid amount.
|
|
|
|
This means that the Superhog fee is computed as:
|
|
Waiver Amount * payaway_percentage.
|
|
|
|
If the amount that comes out of this calculation is smaller than the
|
|
amount in column payaway_minimum_commission_local_curr, then the
|
|
Superhog fee becomes payaway_minimum_commission_local_curr instead.
|
|
So, the final logic becomes:
|
|
MAX(
|
|
Waiver Amount * payaway_percentage,
|
|
payaway_minimum_commission_local_curr
|
|
)
|
|
|
|
- name: payaway_minimum_commission_local_curr
|
|
data_type: numeric
|
|
description:
|
|
The minimum fee that we take from each waiver payment, specified in
|
|
the currency of the guest payment (so if this record is in dollars, it
|
|
means it applies to guest payments made in dollars). We will never
|
|
charge less than this. This can be 0.
|
|
|
|
- name: currency
|
|
data_type: character varying
|
|
description:
|
|
The ISO 4217 code for the currency of this record. Must always be
|
|
filled, otherwise the records is meaningless.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp without time zone
|
|
description: Timestamp of when the pay away plan was created.
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp without time zone
|
|
description: Timestamp of when the pay away plan to currency was last updated
|
|
|
|
- name: dwh_extracted_at_utc
|
|
data_type: timestamp with time zone
|
|
description: Timestamp of when this data was extracted into DWH.
|
|
|
|
- name: int_core__user_product_bundle_contains_services
|
|
description: |
|
|
This table contains the information of "this user has a certain product bundle which
|
|
contains these services."
|
|
It's a denormalised relationship to break the power of 2 link between chosen_product_services
|
|
and product_service_binary_tier, which allows standard joins using the ids.
|
|
|
|
tests:
|
|
- dbt_utils.unique_combination_of_columns:
|
|
combination_of_columns:
|
|
- id_user_product_bundle
|
|
- id_product_service
|
|
|
|
columns:
|
|
- name: id_user_product_bundle
|
|
data_type: bigint
|
|
description: |
|
|
The identifier of the record for a user having a product bundle. It's the foreign key
|
|
pointing to user_product_bundle.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_user_host
|
|
data_type: string
|
|
description: |
|
|
The Superhog ID of the host user this record applies to.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: id_product_bundle
|
|
data_type: bigint
|
|
description: |
|
|
The identifier of the product bundle. Can be null if it's a custom bundle.
|
|
|
|
- name: id_product_service
|
|
data_type: bigint
|
|
description: |
|
|
The identifier of the product service.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: product_bundle_name
|
|
data_type: string
|
|
description: |
|
|
The CamelCase name of the product bundle.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: product_service_name
|
|
data_type: string
|
|
description: |
|
|
The CamelCase name of the product service.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: int_core__product_service_to_price
|
|
description: |
|
|
This model provides the information related to the prices of the different
|
|
product services in the scope of New Pricing. Each product service can have
|
|
prices in different currencies. Each price is storified and applies in the range
|
|
of starts to end. If the end date is null, then the price is currently active.
|
|
There is no possibility to allow custom pricing at user level.
|
|
|
|
tests:
|
|
- dbt_expectations.expect_column_pair_values_A_to_be_greater_than_B:
|
|
column_A: ends_at_utc
|
|
column_B: starts_at_utc
|
|
or_equal: True
|
|
|
|
columns:
|
|
- name: id_product_service_to_price
|
|
data_type: integer
|
|
description: |
|
|
Identifier of the product service to price. Acts as the primary key for this table.
|
|
tests:
|
|
- unique
|
|
- not_null
|
|
- name: id_product_service
|
|
data_type: integer
|
|
description: |
|
|
Identifier of the product service.
|
|
tests:
|
|
- not_null
|
|
- name: payment_type
|
|
data_type: string
|
|
description: |
|
|
Type of the payment, namely if the price represents a
|
|
percentage or an amount.
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "AMOUNT"
|
|
- "PERCENTAGE"
|
|
- name: price_base_unit
|
|
data_type: string
|
|
description: |
|
|
Represents how the price value should be taken into account, either
|
|
if the price is representing the total amount at booking level or
|
|
it's a nightly fee.
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "PER BOOKING"
|
|
- "PER NIGHT"
|
|
- name: invoicing_trigger
|
|
data_type: string
|
|
description: |
|
|
Represents at which moment in time this service should be invoiced.
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "PRE-BOOKING"
|
|
- "POST-CHECKOUT"
|
|
- "AT WAIVER PAYMENT"
|
|
- "AT DEPOSIT PAYMENT"
|
|
- "N/A"
|
|
- name: currency_code
|
|
data_type: string
|
|
description:
|
|
Currency iso4217 code. It identifies the currency for the amount stated in
|
|
amount_local_curr.
|
|
tests:
|
|
- not_null
|
|
- name: amount_local_curr
|
|
data_type: decimal
|
|
description: |
|
|
Price amount of a given product service in the currency stated in id_currency.
|
|
tests:
|
|
- not_null
|
|
- name: product_service_price_name
|
|
data_type: string
|
|
description: |
|
|
The name given to a product service to price, for example "Waiver Pro Default Price".
|
|
- name: product_service_name
|
|
data_type: string
|
|
description: |
|
|
The name of the product service, for example "Waiver Pro".
|
|
- name: starts_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this product service to price starts to be active.
|
|
tests:
|
|
- not_null
|
|
- name: ends_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this product service to price ends to be active.
|
|
It can be null, thus meaning it's currently active.
|
|
- name: has_no_end_date
|
|
data_type: boolean
|
|
description: |
|
|
True when ends_at_utc is not set, false otherwise.
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this product service to price was created.
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this product service to price was created.
|
|
- name: updated_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this product service to price was last updated.
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this product service to price was last updated.
|
|
- name: dwh_extracted_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this data was extracted into DWH.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: int_core__protection_plan_to_price
|
|
description: |
|
|
This model provides the information related to the prices of the different
|
|
protection plans in the scope of New Pricing. It does not contain the amounts being
|
|
protected, just how much it costs to purchase a given protection.
|
|
Each protection plan can have prices in different currencies. Each price is
|
|
storified and applies in the range of starts to end. If the end date is null,
|
|
then the price is currently active.
|
|
There is no possibility to allow custom pricing at user level.
|
|
tests:
|
|
- dbt_expectations.expect_column_pair_values_A_to_be_greater_than_B:
|
|
column_A: ends_at_utc
|
|
column_B: starts_at_utc
|
|
or_equal: True
|
|
columns:
|
|
- name: id_protection_plan_to_price
|
|
data_type: integer
|
|
description: |
|
|
Identifier of the protection plan to price. Acts as the primary key for this table.
|
|
tests:
|
|
- unique
|
|
- not_null
|
|
- name: id_protection_plan
|
|
data_type: integer
|
|
description: |
|
|
Identifier of the protection plan.
|
|
tests:
|
|
- not_null
|
|
- name: payment_type
|
|
data_type: string
|
|
description: |
|
|
Type of the payment, namely if the price represents a
|
|
percentage or an amount.
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "AMOUNT"
|
|
- "PERCENTAGE"
|
|
- name: price_base_unit
|
|
data_type: string
|
|
description: |
|
|
Represents how the price value should be taken into account, either
|
|
if the price is representing the total amount at booking level or
|
|
it's a nightly fee.
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "PER BOOKING"
|
|
- "PER NIGHT"
|
|
- name: invoicing_trigger
|
|
data_type: string
|
|
description: |
|
|
Represents at which moment in time this service should be invoiced.
|
|
tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "PRE-BOOKING"
|
|
- "POST-CHECKOUT"
|
|
- "AT WAIVER PAYMENT"
|
|
- "AT DEPOSIT PAYMENT"
|
|
- "N/A"
|
|
- name: currency_code
|
|
data_type: string
|
|
description:
|
|
Currency iso4217 code. It identifies the currency for the amount stated in
|
|
amount_local_curr.
|
|
tests:
|
|
- not_null
|
|
- name: amount_local_curr
|
|
data_type: decimal
|
|
description: |
|
|
Price amount of a given protection plan in the currency stated in id_currency.
|
|
tests:
|
|
- not_null
|
|
- name: protection_plan_price_name
|
|
data_type: string
|
|
description: |
|
|
The name given to a protection plan to price, for example "ProtectionPlus Default Price".
|
|
- name: pprotection_plan_name
|
|
data_type: string
|
|
description: |
|
|
The name of the protection plan, for example "ProtectionPlus".
|
|
- name: starts_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this protection plan to price starts to be active.
|
|
tests:
|
|
- not_null
|
|
- name: ends_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this protection plan to price ends to be active.
|
|
It can be null, thus meaning it's currently active.
|
|
- name: has_no_end_date
|
|
data_type: boolean
|
|
description: |
|
|
True when ends_at_utc is not set, false otherwise.
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this protection plan to price was created.
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this protection plan to price was created.
|
|
- name: updated_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this protection plan to price was last updated.
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this protection plan to price was last updated.
|
|
- name: dwh_extracted_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this data was extracted into DWH.
|
|
tests:
|
|
- not_null
|
|
|
|
- name: int_core__protection_plan_cover
|
|
description: |
|
|
This model provides the information related to the cover, or amount protected,
|
|
of the different protection plans in the scope of New Pricing.
|
|
Each protection plan can have amounts protected in different currencies.
|
|
There is no possibility to allow custom protection amounts at user level.
|
|
|
|
columns:
|
|
- name: id_protection_plan_cover
|
|
data_type: integer
|
|
description: |
|
|
Identifier of the protection plan cover. Acts as the primary key for this table.
|
|
tests:
|
|
- unique
|
|
- not_null
|
|
- name: id_protection_plan
|
|
data_type: integer
|
|
description: |
|
|
Identifier of the protection plan.
|
|
tests:
|
|
- not_null
|
|
- name: currency_code
|
|
data_type: string
|
|
description: Currency iso4217 code. It identifies the currency for the different protection covers.
|
|
tests:
|
|
- not_null
|
|
- name: baseline_protection_cover_local_curr
|
|
data_type: decimal
|
|
description: |
|
|
Baseline cover amount of a given protection plan in the currency stated in currency_code.
|
|
tests:
|
|
- not_null
|
|
- name: lower_protection_cover_local_curr
|
|
data_type: decimal
|
|
description: |
|
|
Lower cover amount of a given protection plan in the currency stated in currency_code.
|
|
tests:
|
|
- not_null
|
|
- name: maximum_protection_cover_local_curr
|
|
data_type: decimal
|
|
description: |
|
|
Maximum cover amount of a given protection plan in the currency stated in currency_code.
|
|
tests:
|
|
- not_null
|
|
- name: protection_plan_cover_name
|
|
data_type: string
|
|
description: |
|
|
The name given to a protection plan cover, for example "Basic Protection £50K".
|
|
- name: protection_plan_name
|
|
data_type: string
|
|
description: |
|
|
The name given to a protection plan, for example "Basic Protection".
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this protection plan cover was created.
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this protection plan cover was created.
|
|
- name: updated_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this protection plan cover was last updated.
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when this protection plan cover was last updated.
|
|
- name: dwh_extracted_at_utc
|
|
data_type: timestamp
|
|
description: |
|
|
Timestamp of when this data was extracted into DWH.
|
|
tests:
|
|
- not_null
|