# Description Fixes: * There was a data quality issue in which active listings with bundles were showing more listings than the total active listings. This has been fixed, plus a bunch of tests have been added to make sure this does not happen again. * There's a field that reaches the 63 character limit. I modified "paid" per "upgraded" which reduces this to intermediate model; however in reporting I need to keep as is to avoid breaking PBI. I did change the name of the field in the schema so tests/docs work well and explicitly mention this in the doc. This will need adaptation but can be done in the future. * There was tons of dead code tagged as to be deleted that was not deleted, not sure why or when. Anyway this is dropped now. It's not used in PBI except for the fact that columns are dropped in the data model, so we might have a bit of down time to just remove these. * Few fields were not displayed correctly in dbt docs. What's new: * New user categorisation as an alert-based system. This can be enhanced in the future but so far it covers hell of a lot of cases. This also includes data quality alerts (deal not in HS, or account defaults to MVP launch). * MVP Launch date moved to project yaml since it's a very standard date. # Checklist - [X] The edited models and dependants run properly with production data. - [X] The edited models are sufficiently documented. - [X] The edited models contain PK tests, and I've ran and passed them. - [X] I have checked for DRY opportunities with other models and docs. - [X] I've picked the right materialization for the affected models. # Other - [ ] Check if a full-refresh is required after this PR is merged. Related work items: #30407
2401 lines
79 KiB
YAML
2401 lines
79 KiB
YAML
version: 2
|
|
|
|
models:
|
|
- name: core__bookings
|
|
description: |
|
|
|
|
Bookings that have been processed by the Superhog backend.
|
|
|
|
Each record matches one booking.
|
|
|
|
All data is coming from the Superhog backend. Some dimensions have been denormalized.
|
|
Some pre-aggregations to the booking level have also been performed and added here.
|
|
|
|
columns:
|
|
- name: id_booking
|
|
data_type: bigint
|
|
description: The unique, Superhog generated id for this booking.
|
|
data_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.
|
|
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: The ID of the booked listing.
|
|
|
|
- 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 True.
|
|
|
|
- name: booking_fee_local
|
|
data_type: numeric
|
|
description: |
|
|
The fee that Superhog should charge the host for this booking, measured in local
|
|
currency.
|
|
|
|
This fee is calculated by finding what was the active price plan for the host user
|
|
when the booking fee had to be charged.
|
|
|
|
- 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: core__vr_check_in_cover
|
|
description: |
|
|
This is a check-in cover specific fact table designed to support basic
|
|
reporting on the Check-In Hero product.
|
|
|
|
Granularity is roughly on the Guest Journey (Verification Request) level.
|
|
It contains data from many entities, including Verification Request,
|
|
booking, payments, etc.
|
|
|
|
columns:
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description: |
|
|
Unique, incremental, internal ID for the related verification
|
|
request.
|
|
data_tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: uuid_verification_request
|
|
data_type: text
|
|
description: uuid for the related verification request.
|
|
|
|
- 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: Unique, incremental, internal ID for the related booking.
|
|
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: Unique, incremental, internal ID for the related listing.
|
|
|
|
- name: is_verification_request_complete
|
|
data_type: boolean
|
|
description: |
|
|
True if the verification request is considered is considered
|
|
complete, AKA the guest has finished the full guest journey.
|
|
|
|
- name: is_past_check_in
|
|
data_type: boolean
|
|
description: |
|
|
True if the check-in date is in the past, false otherwise. This value
|
|
only gets informed for users who have bought check-in cover.
|
|
|
|
- name: is_awaiting_check_in
|
|
data_type: boolean
|
|
description: |
|
|
True if the check-in date is in the future, false otherwise. This
|
|
value only gets informed for users who have bought check-in cover.
|
|
|
|
- name: cover_was_purchased
|
|
data_type: boolean
|
|
description: |
|
|
True if the guest purchased the check-in cover.
|
|
|
|
This is identified by the fact that there is a payment of type
|
|
check-in cover associated with this guest journey.
|
|
|
|
- name: cover_was_rejected
|
|
data_type: boolean
|
|
description: |
|
|
True if the guest didn't choose to purchase the check-in cover.
|
|
|
|
This is identified by the facts:
|
|
- There is no payment of type check-in cover associated with this
|
|
guest journey.
|
|
- The guest journey is completed, meaning the guest can't make the
|
|
choice of purchasing the check-in cover anymore.
|
|
|
|
- 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: ""
|
|
|
|
- name: guest_phone_number_2
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: check_in_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The date time when the guest will check-in, in UTC.
|
|
|
|
- name: check_in_date_utc
|
|
data_type: date
|
|
description: The date when the guest will check-in, in UTC.
|
|
|
|
- name: check_out_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The date time when the guest will check-out, in UTC.
|
|
|
|
- name: check_out_date_utc
|
|
data_type: date
|
|
description: The date time when the guest will check-out, in UTC.
|
|
|
|
- name: verification_start_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
The date and time at which the guest started the guest journey.
|
|
|
|
- name: verification_start_date_utc
|
|
data_type: date
|
|
description: The date on which the guest started the guest journey.
|
|
|
|
- name: verification_end_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
The date and time at which the guest finished the guest journey.
|
|
|
|
- name: verification_end_date_utc
|
|
data_type: date
|
|
description: |
|
|
The date at which the guest finished the guest journey.
|
|
|
|
- name: total_amount_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The amount paid by the guest for the check-in cover, in the currency
|
|
in which the payment actually took place. Tax inclusive.
|
|
|
|
- name: amount_without_taxes_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The equivalent amount paid by the guest for the check-in cover, in the currency
|
|
in which the payment actually took place, without taxes.
|
|
|
|
- name: currency
|
|
data_type: character varying
|
|
description: The currency used by the guest for the payment.
|
|
|
|
- name: total_amount_in_gbp
|
|
data_type: numeric
|
|
description: The amount paid by the guest, converted into GBP. Tax inclusive.
|
|
|
|
- name: amount_without_taxes_in_gbp
|
|
data_type: numeric
|
|
description: The equivalent amount paid by the guest, converted into GBP and without taxes.
|
|
|
|
- name: payment_status
|
|
data_type: character varying
|
|
description: The status of the payment.
|
|
|
|
- name: payment_paid_date_utc
|
|
data_type: date
|
|
description: The date in which the guest made the payment.
|
|
|
|
- name: checkin_cover_cover_amount_local_curr
|
|
data_type: numeric
|
|
description: |
|
|
The total amount for which the guest check-in is covered, according
|
|
to the Superhog backend, in the same currency as the guest payment.
|
|
|
|
Bear in mind that the implementation of Check-In Hero pricing in the
|
|
backend holds some tremendous technical debt, which pretty much
|
|
prevents changes in the pricing and has no concept of historical
|
|
pricing.
|
|
|
|
The current implementation of this model is very naive and assumes
|
|
that prices have not changed. If prices have been changed somehow in
|
|
the backend, but someone hasn't taken care of performing the right
|
|
updates in upstream dependencies of this model, then it's most
|
|
probably broken and unreliable.
|
|
|
|
For more details, contact pablo.martin or Lawrence.
|
|
|
|
- name: checkin_cover_cover_amount_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The total amount for which the guest check-in is covered, according
|
|
to the Superhog backend, converted to GBP.
|
|
|
|
Bear in mind that the implementation of Check-In Hero pricing in the
|
|
backend holds some tremendous technical debt, which pretty much
|
|
prevents changes in the pricing and has no concept of historical
|
|
pricing.
|
|
|
|
The current implementation of this model is very naive and assumes
|
|
that prices have not changed. If prices have been changed somehow in
|
|
the backend, but someone hasn't taken care of performing the right
|
|
updates in upstream dependencies of this model, then it's most
|
|
probably broken and unreliable.
|
|
|
|
For more details, contact pablo.martin or Lawrence.
|
|
|
|
- name: 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_start_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The date and time at which the guest started the guest journey.
|
|
|
|
- name: verification_start_date_utc
|
|
data_type: date
|
|
description: The date on which the guest started the guest journey.
|
|
|
|
- name: verification_end_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The date and time at which the guest finished the guest journey.
|
|
|
|
- name: verification_end_date_utc
|
|
data_type: date
|
|
description: The 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: 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: core__unified_user
|
|
description:
|
|
This is a table to join data from all users of Superhog (hosts, PMs, guests, etc).
|
|
|
|
It contains details of every user like name, last name, email address, etc.
|
|
columns:
|
|
- name: id_user
|
|
data_type: character varying
|
|
description: Unique, incremental, internal ID for the user.
|
|
data_tests:
|
|
- unique
|
|
- not_null
|
|
|
|
- name: id_account_type
|
|
data_type: bigint
|
|
description: Internal ID for type of user.
|
|
|
|
- name: id_billing_country
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: account_currency_iso4217
|
|
data_type: character varying
|
|
description: Currency used by host/pm/platform users.
|
|
|
|
- name: user_code
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: first_name
|
|
data_type: character varying
|
|
description: First name of user.
|
|
|
|
- name: last_name
|
|
data_type: character varying
|
|
description: Last name of user.
|
|
|
|
- name: email
|
|
data_type: character varying
|
|
description: The email of the user.
|
|
|
|
- name: title
|
|
data_type: character varying
|
|
description: Title of the user (Mr, Ms, etc).
|
|
|
|
- name: id_deal
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: is_deleted
|
|
data_type: boolean
|
|
description: ¦ True if the user has been deleted.
|
|
|
|
- name: joined_at_utc
|
|
data_type: timestamp without time zone
|
|
description: The date time when the user created it's account in Superhog.
|
|
|
|
- name: joined_date_utc
|
|
data_type: date
|
|
description: The date when the user created it's account in Superhog.
|
|
|
|
- name: user_name
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: code_prefix
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: billing_town
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: company_name
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: is_email_confirmed
|
|
data_type: boolean
|
|
description: ¦ True if the email has been confirmed.
|
|
|
|
- name: is_lockout_enabled
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: billing_postcode
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: is_twofactor_enabled
|
|
data_type: boolean
|
|
description: ""
|
|
|
|
- name: access_failed_count
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: lockout_end_date_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: avatar
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: id_airbnb
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: airbnb_url
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp
|
|
description: The timestamp when the user was created.
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: The date when the user was created.
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp
|
|
description: The timestamp when the user was updated.
|
|
|
|
- name: updated_date_utc
|
|
data_type: date
|
|
description: The date when the user was updated.
|
|
|
|
- name: verified_at_utc
|
|
data_type: timestamp without time zone
|
|
description: ""
|
|
|
|
- name: verified_date_utc
|
|
data_type: date
|
|
description: ""
|
|
|
|
- name: number_of_properties
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: id_superhog_verified_set
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: platform_comms_recipient
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: other_sharing_platform_url
|
|
data_type: character varying
|
|
description: ""
|
|
|
|
- name: id_user_verification_status
|
|
data_type: bigint
|
|
description: ""
|
|
|
|
- name: 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
|
|
data_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: 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
|
|
data_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
|
|
data_tests:
|
|
- 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: 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
|
|
data_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."
|
|
data_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: 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."
|
|
data_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.
|
|
data_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"
|
|
data_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: 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.
|
|
data_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.
|
|
data_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: user_estimated_migration_date_utc
|
|
data_type: date
|
|
description: |
|
|
The estimated date in which this user was migrated.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: deal_lifecycle_state
|
|
data_type: character varying
|
|
description: |
|
|
Contains the lifecycle state of a deal. The accepted values are:
|
|
01-New, 02-Never Booked, 04-Active, 05-Churning, 06-Inactive,
|
|
07-Reactivated, 99-Not in Husbpot.
|
|
data_tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- 01-New
|
|
- 02-Never Booked
|
|
- 04-Active
|
|
- 05-Churning
|
|
- 06-Inactive
|
|
- 07-Reactivated
|
|
- 99-Not in HubSpot
|
|
|
|
- name: has_active_pms
|
|
data_type: boolean
|
|
description: |
|
|
Does the host have an active associated PMS.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: active_pms_list
|
|
data_type: string
|
|
description: |
|
|
Name of the active PMS associated with the host. It can have more than
|
|
one PMS associated with it. It can be null if it doesn't have any PMS associated.
|
|
|
|
- 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.
|
|
data_tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
|
|
- 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.
|
|
data_tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
max_value: total_user_product_bundles
|
|
strictly: false
|
|
|
|
- name: total_listings
|
|
data_type: integer
|
|
description: |
|
|
Count of listings that the user owns or has owned.
|
|
data_tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
|
|
- 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).
|
|
data_tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
max_value: total_listings
|
|
strictly: false
|
|
|
|
- name: total_active_listings_with_active_product_bundle
|
|
data_type: integer
|
|
description: |
|
|
Count of active listings that currently have an active product bundle.
|
|
data_tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
max_value: total_active_listings
|
|
strictly: false
|
|
|
|
- name: total_active_listings_with_active_product_bundle_with_paid_serv
|
|
data_type: integer
|
|
description: |
|
|
Count of active listings that currently have an active paid service
|
|
product bundle.
|
|
Note the name of this column is truncated to fit the maximum length
|
|
of column characters in Postgres.
|
|
data_tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
max_value: total_active_listings
|
|
strictly: false
|
|
|
|
- name: has_active_listings
|
|
data_type: integer
|
|
description: |
|
|
Integer-based flag version of total_active_listings.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: has_active_listings_with_active_product_bundle_applied
|
|
data_type: integer
|
|
description: |
|
|
Integer-based flag version of
|
|
total_active_listings_with_active_product_bundle.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: has_active_listings_with_active_paid_service_applied
|
|
data_type: integer
|
|
description: |
|
|
Integer-based flag version of
|
|
total_active_listings_with_active_product_bundle_with_paid_service.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: total_bookings_with_product_bundle
|
|
data_type: integer
|
|
description: |
|
|
Count of bookings that have a product bundle associated.
|
|
data_tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
|
|
- 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.
|
|
data_tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
max_value: total_bookings_with_product_bundle
|
|
strictly: false
|
|
|
|
- name: has_bookings_with_product_bundle
|
|
data_type: integer
|
|
description: |
|
|
Integer-based flag version of total_bookings_with_product_bundle.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- 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.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: user_categorisation
|
|
data_type: string
|
|
description: |
|
|
Alert-based categorisation of the user based on the activity or lack of it.
|
|
The possible values are:
|
|
- "00 - No Alert"
|
|
- "01 - No Listings"
|
|
- "02 - No Active Listings"
|
|
- "03 - No Bookings - No Upgraded Program in Listings"
|
|
- "04 - No Bookings - Has Upgraded Program in Listings"
|
|
- "05 - Only Basic Screening Bookings - No Upgraded Program in Listings"
|
|
- "06 - Only Basic Screening Bookings - Has Upgraded Program in Listings"
|
|
- "07 - Has Upgraded Bookings - No Upgraded Program in Listings"
|
|
- "08 - Has Upgraded Bookings - Not all Listings have Upgraded Program Applied"
|
|
- "98 - Has Churned"
|
|
- "99 - Has Data Quality Issues"
|
|
It cannot be null.
|
|
|
|
data_tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- "00 - No Alert"
|
|
- "01 - No Listings"
|
|
- "02 - No Active Listings"
|
|
- "03 - No Bookings - No Upgraded Program in Listings"
|
|
- "04 - No Bookings - Has Upgraded Program in Listings"
|
|
- "05 - Only Basic Screening Bookings - No Upgraded Program in Listings"
|
|
- "06 - Only Basic Screening Bookings - Has Upgraded Program in Listings"
|
|
- "07 - Has Upgraded Bookings - No Upgraded Program in Listings"
|
|
- "08 - Has Upgraded Bookings - Not all Listings have Upgraded Program Applied"
|
|
- "98 - Has Churned"
|
|
- "99 - Has Data Quality Issues"
|
|
|
|
- name: core__accommodations_activity
|
|
description: |
|
|
This model provides a detailed information on listings, including their hosts,
|
|
and related booking activity. It contains identifiers, geographic information,
|
|
host details, and booking counts categorized by status.
|
|
|
|
columns:
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: "The unique identifier of the listing."
|
|
data_tests:
|
|
- unique
|
|
- not_null
|
|
|
|
- name: id_user_host
|
|
data_type: text
|
|
description: "The unique identifier of the host associated with the listing."
|
|
|
|
- name: id_deal
|
|
data_type: character varying
|
|
description: |
|
|
The primary identifier of the B2B client (deal). A deal can be linked to multiple hosts,
|
|
while a host can have at most one deal or none. This field can be null if there is no deal.
|
|
|
|
- name: company_name
|
|
data_type: character varying
|
|
description: |
|
|
The name of the company associated with the host. This value may sometimes match
|
|
the host's first name, last name, a combination of both, or be entirely different.
|
|
It can also be null or empty.
|
|
|
|
- name: email
|
|
data_type: character varying
|
|
description: "The email address of the host."
|
|
|
|
- name: first_name
|
|
data_type: character varying
|
|
description: "The first name of the host."
|
|
|
|
- name: last_name
|
|
data_type: character varying
|
|
description: "The last name of the host."
|
|
|
|
- name: is_active
|
|
data_type: boolean
|
|
description: |
|
|
Indicates whether the listing is currently active.
|
|
|
|
- name: friendly_name
|
|
data_type: character varying
|
|
description: "A user-friendly name assigned to the listing."
|
|
|
|
- name: country_name
|
|
data_type: character varying
|
|
description: "The full name of the country where the listing is located."
|
|
|
|
- name: town
|
|
data_type: character varying
|
|
description: "The town or city where the listing is located."
|
|
|
|
- name: address_line_1
|
|
data_type: character varying
|
|
description: "The first line of the listing's address."
|
|
|
|
- name: address_line_2
|
|
data_type: character varying
|
|
description: "The second line of the listing's address, if applicable."
|
|
|
|
- name: country_iso_2
|
|
data_type: character varying
|
|
description: "The two-letter ISO 3166-1 country code representing the listing's country."
|
|
|
|
- name: postcode
|
|
data_type: character varying
|
|
description: "The postal code of the listing's location."
|
|
|
|
- name: currency_iso4217
|
|
data_type: character varying
|
|
description: "The three-letter ISO 4217 currency code for transactions related to the listing."
|
|
|
|
- name: created_date_utc
|
|
data_type: date
|
|
description: "The date when the listing was first created."
|
|
|
|
- name: approved_bookings
|
|
data_type: bigint
|
|
description: "The total number of bookings with status approved for this accommodation."
|
|
|
|
- name: cancelled_bookings
|
|
data_type: bigint
|
|
description: "The total number of bookings with status cancelled for this accommodation."
|
|
|
|
- name: flagged_bookings
|
|
data_type: bigint
|
|
description: "The total number of bookings with status flagged for this accommodation."
|
|
|
|
- name: incomplete_information_bookings
|
|
data_type: bigint
|
|
description: "The total number of bookings with status incomplete information for this accommodation."
|
|
|
|
- name: no_flags_bookings
|
|
data_type: bigint
|
|
description: "The total number of bookings with status no flags for this accommodation."
|
|
|
|
- name: not_approved_bookings
|
|
data_type: bigint
|
|
description: "The total number of bookings with status not approved for this accommodation."
|
|
|
|
- name: rejected_bookings
|
|
data_type: bigint
|
|
description: "The total number of bookings with status rejected for this accommodation."
|
|
|
|
- name: total_bookings
|
|
data_type: bigint
|
|
description: "The total number of bookings for this accommodation."
|
|
|
|
- name: core__booking_details
|
|
description: |
|
|
"Contains detailed information about each booking, including host
|
|
and guest details, accommodation, and verification request data."
|
|
|
|
columns:
|
|
- name: id_booking
|
|
data_type: bigint
|
|
description: "The unique, Superhog generated id for this booking."
|
|
data_tests:
|
|
- unique
|
|
- not_null
|
|
|
|
- name: id_user_host
|
|
data_type: text
|
|
description: "The unique user ID for the Host."
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: id_deal
|
|
data_type: character varying
|
|
description:
|
|
"The ID of the deal of the user. It only applies to client accounts.
|
|
Can be null."
|
|
|
|
- name: id_user_guest
|
|
data_type: text
|
|
description: "The unique, Superhog generated id for the guest"
|
|
|
|
- name: id_accommodation
|
|
data_type: bigint
|
|
description: "Id of the accommodation or listing."
|
|
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description: |
|
|
The identifier of the verification request. It acts as Foreign Key to
|
|
Verification Request table. It can be null.
|
|
|
|
- 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"
|
|
data_tests:
|
|
- accepted_values:
|
|
values:
|
|
- "Approved"
|
|
- "NotApproved"
|
|
- "Cancelled"
|
|
- "Rejected"
|
|
- "NoFlags"
|
|
- "Flagged"
|
|
- "IncompleteInformation"
|
|
|
|
- name: is_accommodation_active
|
|
data_type: boolean
|
|
description: "Boolean value indicating if the accommodation is active."
|
|
|
|
- name: checkin_date_utc
|
|
data_type: date
|
|
description: "Date of check-in of the booking."
|
|
|
|
- name: checkout_date_utc
|
|
data_type: date
|
|
description: "Date of check-out of the booking."
|
|
|
|
- name: booking_nights
|
|
data_type: integer
|
|
description: "Number of nights of the booking."
|
|
|
|
- name: created_date_utc
|
|
data_type: timestamp without time zone
|
|
description: "Date when the booking was created."
|
|
|
|
- name: host_first_name
|
|
data_type: character varying
|
|
description: "First name of the host."
|
|
|
|
- name: host_last_name
|
|
data_type: character varying
|
|
description: "Last name of the host."
|
|
|
|
- name: host_email
|
|
data_type: character varying
|
|
description: "Email of the host."
|
|
|
|
- name: company_name
|
|
data_type: character varying
|
|
description: "The company name."
|
|
|
|
- name: guest_first_name
|
|
data_type: character varying
|
|
description: "First name of the guest."
|
|
|
|
- name: guest_last_name
|
|
data_type: character varying
|
|
description: "Last name of the guest."
|
|
|
|
- name: guest_email
|
|
data_type: character varying
|
|
description: "Email of the guest."
|
|
|
|
- name: guest_billing_country
|
|
data_type: character varying
|
|
description: "Billing country of the guest."
|
|
|
|
- name: guest_billing_town
|
|
data_type: character varying
|
|
description: "Billing town of the guest."
|
|
|
|
- name: friendly_name
|
|
data_type: character varying
|
|
description: "Name of the listing."
|
|
|
|
- name: accommodation_country
|
|
data_type: character varying
|
|
description: "Country of the listing"
|
|
|
|
- name: accommodation_address
|
|
data_type: character varying
|
|
description: "Address of the 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: verification_estimated_started_date_utc
|
|
data_type: date
|
|
description: "The estimated date on which the guest started 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: days_to_complete_verification
|
|
data_type: numeric
|
|
description: "Number of days it took to complete the verification."
|
|
|
|
- name: link_used_date_utc
|
|
data_type: date
|
|
description: "The date on which the guest used the link for the verification."
|
|
|
|
- name: verification_request_booking_source
|
|
data_type: text
|
|
description: Source type of host of the booking, this could be either;
|
|
- PMS
|
|
- OSL
|
|
- API/MANUAL
|
|
data_tests:
|
|
- accepted_values:
|
|
values:
|
|
- "PMS"
|
|
- "OSL"
|
|
- "API/MANUAL"
|
|
|
|
- name: chose_deposit
|
|
data_type: boolean
|
|
description: "Boolean value indicating if the guest chose Deposit payment validation."
|
|
|
|
- name: chose_fee
|
|
data_type: boolean
|
|
description: "Boolean value indicating if the guest chose Fee payment validation."
|
|
|
|
- name: chose_waiver
|
|
data_type: boolean
|
|
description: "Boolean value indicating if the guest chose Waiver payment validation."
|
|
|
|
- name: chose_no_cover
|
|
data_type: boolean
|
|
description: "Boolean value indicating if the guest chose No Cover payment validation."
|
|
|
|
- name: chose_checkin_cover
|
|
data_type: boolean
|
|
description: "Boolean value indicating if the guest chose CheckIn Cover."
|
|
|
|
- name: core__payments
|
|
description: |
|
|
A table holding payment details for guest journeys, including amounts in both
|
|
transaction currency and GBP, host and guest information, and payment status.
|
|
Currency conversions are done using using data from xexe.com.
|
|
|
|
columns:
|
|
- name: id_payment
|
|
data_type: bigint
|
|
description: Unique identifier for the payment.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: payment_reference
|
|
data_type: character varying
|
|
description: Unique reference code associated with the payment.
|
|
|
|
- name: verification_payment_type
|
|
data_type: character varying
|
|
description: Type of payment verification, categorizing the transaction.
|
|
data_tests:
|
|
- accepted_values:
|
|
values:
|
|
- "Waiver"
|
|
- "Deposit"
|
|
- "CheckInCover"
|
|
- "Fee"
|
|
|
|
- name: is_host_taking_waiver_risk
|
|
data_type: boolean
|
|
description: Boolean indicating whether the host is taking the risk
|
|
|
|
- name: payaway_percentage
|
|
data_type: numeric
|
|
description: Percentage of the payment that goes to Superhog.
|
|
|
|
- name: payaway_minimum_commission_local_curr
|
|
data_type: numeric
|
|
description: Minimum commission amount in local currency.
|
|
|
|
- name: payment_status
|
|
data_type: character varying
|
|
description: Current status of the payment (e.g., pending, paid, refunded).
|
|
|
|
- name: payment_due_date_utc
|
|
data_type: date
|
|
description: The due date for the payment, in UTC.
|
|
|
|
- name: payment_paid_date_utc
|
|
data_type: date
|
|
description: The date when the payment was successfully made, in UTC.
|
|
|
|
- name: refund_payment_reference
|
|
data_type: date
|
|
description: The reference code associated with the refund payment.
|
|
|
|
- name: refund_due_date_utc
|
|
data_type: date
|
|
description: The due date for the refund payment, in UTC.
|
|
|
|
- name: payment_refunded_date_utc
|
|
data_type: date
|
|
description: The date when the payment was refunded, in UTC.
|
|
|
|
- name: total_amount_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The total amount of the payment in local currency.
|
|
This includes taxes if applicable.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: total_amount_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The total amount of the payment in GBP.
|
|
This includes taxes if applicable.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: amount_without_taxes_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The net amount of the payment without taxes, in local currency.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: amount_without_taxes_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The net amount of the payment without taxes, in GBP.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: tax_amount_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The tax portion of the payment, in local currency.
|
|
Will be 0 if no taxes apply.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: tax_amount_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The tax portion of the payment, in GBP. Will be 0 if no
|
|
taxes apply.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: amount_due_to_host_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The amount payable to the host with taxes, in local currency.
|
|
|
|
- name: amount_due_to_host_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The amount payable to the host with taxes, in GBP.
|
|
|
|
- name: amount_due_to_host_without_taxes_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The amount payable to the host without taxes, in local currency.
|
|
|
|
- name: amount_due_to_host_without_taxes_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The amount payable to the host without taxes, in GBP.
|
|
|
|
- name: superhog_fee_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The service fee charged by Superhog with taxes, in local currency.
|
|
|
|
- name: superhog_fee_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The service fee charged by Superhog with taxes, in GBP.
|
|
|
|
- name: superhog_fee_without_taxes_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The service fee charged by Superhog without taxes, in local currency.
|
|
|
|
- name: superhog_fee_without_taxes_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The service fee charged by Superhog without taxes, in GBP.
|
|
|
|
- name: currency
|
|
data_type: text
|
|
description: |
|
|
The ISO 4217 currency code (e.g., GBP, USD, EUR) in which the payment
|
|
was originally made.
|
|
|
|
- name: exchange_rate_to_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The exchange rate used to convert the payment amount from local currency
|
|
to GBP.
|
|
|
|
- name: id_booking
|
|
data_type: bigint
|
|
description: The unique, Superhog generated id for this booking.
|
|
Can be null for verification request not related to a booking.
|
|
|
|
- name: booking_state
|
|
data_type: character varying
|
|
description: "State in which the booking is"
|
|
|
|
- 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: id_user_host
|
|
data_type: character varying
|
|
description: |
|
|
The unique identifier of the host receiving the payment.
|
|
|
|
- name: id_deal
|
|
data_type: character varying
|
|
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: host_first_name
|
|
data_type: character varying
|
|
description: First name of the host receiving the payment.
|
|
|
|
- name: host_last_name
|
|
data_type: character varying
|
|
description: Last name of the host receiving the payment.
|
|
|
|
- name: host_email
|
|
data_type: character varying
|
|
description: Email address of the host receiving the payment.
|
|
|
|
- name: company_name
|
|
data_type: character varying
|
|
description: |
|
|
The company name of the host.
|
|
|
|
- name: host_country
|
|
data_type: character varying
|
|
description: |
|
|
The country name of the host.
|
|
|
|
- name: guest_first_name
|
|
data_type: character varying
|
|
description: First name of the guest making the payment.
|
|
|
|
- name: guest_last_name
|
|
data_type: character varying
|
|
description: Last name of the guest making the payment.
|
|
|
|
- name: guest_email
|
|
data_type: character varying
|
|
description: Email address of the guest making the payment.
|
|
|
|
- name: guest_billing_country
|
|
data_type: text
|
|
description: |
|
|
The country name of the guest's billing address.
|
|
|
|
- name: guest_billing_town
|
|
data_type: text
|
|
description: |
|
|
The town or city name of the guest's billing address.
|
|
|
|
- name: id_accommodation
|
|
data_type: character varying
|
|
description: |
|
|
"Id of the accommodation or listing."
|
|
|
|
- name: accommodation_name
|
|
data_type: character varying
|
|
description: |
|
|
A user-friendly name for the booking or transaction, often used for
|
|
display purposes.
|
|
|
|
- name: accommodation_country
|
|
data_type: text
|
|
description: |
|
|
The country name of the accommodation.
|
|
|
|
- name: accommodation_town
|
|
data_type: text
|
|
description: |
|
|
The town or city name of the accommodation.
|
|
|
|
- name: accommodation_address
|
|
data_type: character varying
|
|
description: |
|
|
The first line of the property address associated with the payment.
|
|
|
|
- name: accommodation_postcode
|
|
data_type: character varying
|
|
description: |
|
|
The postal code of the property address associated with the payment
|
|
for the booking.
|
|
|
|
- name: check_in_date_utc
|
|
data_type: date
|
|
description: The scheduled check-in date of the guest, in UTC.
|
|
|
|
- name: check_out_date_utc
|
|
data_type: date
|
|
description: The scheduled check-out date of the guest, in UTC.
|
|
|
|
- name: host_currency
|
|
data_type: character varying
|
|
description: |
|
|
The currency in which the host receives their payment (may differ from
|
|
the transaction currency).
|
|
|
|
- name: core__active_property_managers_system
|
|
description: |
|
|
This model contains information about active property managers systems (PMS)
|
|
and their associated hosts.
|
|
It includes details about the host, their account type, company,
|
|
billing information, and the number of accommodations they manage.
|
|
columns:
|
|
- name: active_pms_name
|
|
data_type: text
|
|
description: |
|
|
The name of the active property management system.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: |
|
|
The unique ID for the host.
|
|
data_tests:
|
|
- not_null
|
|
- unique
|
|
|
|
- name: id_deal
|
|
data_type: character varying
|
|
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: account_type
|
|
data_type: character varying
|
|
description: |
|
|
Name of the account type. Can be null and might be not up-to-date.
|
|
|
|
- name: first_name
|
|
data_type: character varying
|
|
description: |
|
|
First name of the Host.
|
|
|
|
- name: last_name
|
|
data_type: character varying
|
|
description: |
|
|
Last name of the Host.
|
|
|
|
- name: company_name
|
|
data_type: character varying
|
|
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: character varying
|
|
description: |
|
|
Email of the Host.
|
|
|
|
- name: billing_country_name
|
|
data_type: character varying
|
|
description: |
|
|
Name of the country in which the Host is billed.
|
|
In some cases it's null.
|
|
|
|
- name: billing_country_iso_3
|
|
data_type: character varying
|
|
description: |
|
|
ISO 3166-1 alpha-3 country code in which the Host is billed.
|
|
In some cases it's null.
|
|
|
|
- name: joined_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when the Host user joined Superhog.
|
|
|
|
- name: booking_count
|
|
data_type: bigint
|
|
description: |
|
|
The number of bookings from the host made through the PMS.
|
|
|
|
- name: accommodation_count
|
|
data_type: bigint
|
|
description: |
|
|
The number of accommodations managed by the host.
|
|
|
|
- name: core__guest_journey_payments
|
|
description: |
|
|
A model that provides all payments that go through a Guest Journey.
|
|
This model unifies both Verification Product Payments (Waiver, Deposit)
|
|
and Guest Product Payments (Check In Cover, etc).
|
|
|
|
The different amounts are available in the transaction currency (the currency
|
|
used by the guest to pay) and in GBP. Additionally, this model provides tax
|
|
logic computation to convert amounts with taxes to amounts without taxes.
|
|
|
|
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_guest_journey_payment
|
|
data_type: text
|
|
description: |
|
|
Unique identifier for the guest journey payment.
|
|
It's a built-in unique ID that means nothing outside DWH.
|
|
It combines the id_verification_product_payment and the
|
|
id_guest_journey_payment into a unique ID by adding the prefix
|
|
"gpp" for Guest Product Payments and "vpp" for Verification Product
|
|
Payments.
|
|
data_tests:
|
|
- unique
|
|
- not_null
|
|
|
|
- name: guest_journey_product_type
|
|
data_type: text
|
|
description: |
|
|
Type of the product, either GUEST_PRODUCT or
|
|
VERIFICATION_PRODUCT.
|
|
It cannot be null.
|
|
data_tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- GUEST_PRODUCT
|
|
- VERIFICATION_PRODUCT
|
|
|
|
- name: product_name
|
|
data_type: text
|
|
description: |
|
|
Name of the guest journey product that has a
|
|
payment.
|
|
It cannot be null. Some old historical values
|
|
might be categorised as UNKNOWN.
|
|
data_tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- FEE
|
|
- DEPOSIT
|
|
- WAIVER
|
|
- CHECKINCOVER
|
|
- STAYDISRUPT
|
|
- UNKNOWN
|
|
|
|
- name: id_verification_product_payment
|
|
data_type: bigint
|
|
description: |
|
|
The ID for Verification Product Payments.
|
|
It cannot be null for Product Types equal to VERIFICATION_PRODUCT.
|
|
It's null for Product Types equal to GUEST_PRODUCT.
|
|
data_tests:
|
|
- not_null:
|
|
where: "guest_journey_product_type = 'VERIFICATION_PRODUCT'"
|
|
- is_null:
|
|
where: "guest_journey_product_type = 'GUEST_PRODUCT'"
|
|
|
|
- name: id_guest_product_payment
|
|
data_type: text
|
|
description: |
|
|
The ID for Guest Product Payments.
|
|
It's a built-in ID that concatenates the original ID with a prefix
|
|
depending on the source, to avoid clashes. This ID does not make
|
|
sense outside of DWH.
|
|
The prefix used is "leg_" for "legacy" Verification To Payment,
|
|
which corresponds to the historical CheckInCover that were considered
|
|
as verification payment, rather than Guest Products.
|
|
For the Guest Product Payments that follow the usual Guest Product
|
|
flow, no prefix is added. However, keep in mind that the field is
|
|
in text format.
|
|
It cannot be null for Product Types equal to GUEST_PRODUCT.
|
|
It's null for Product Types equal to VERIFICATION_PRODUCT.
|
|
data_tests:
|
|
- not_null:
|
|
where: "guest_journey_product_type = 'GUEST_PRODUCT'"
|
|
- is_null:
|
|
where: "guest_journey_product_type = 'VERIFICATION_PRODUCT'"
|
|
|
|
- name: id_payment
|
|
data_type: bigint
|
|
description: |
|
|
Unique ID for the payment itself.
|
|
data_tests:
|
|
- unique
|
|
- not_null
|
|
|
|
- name: id_verification_request
|
|
data_type: bigint
|
|
description: |
|
|
Unique identifier of the Verification Request that has a payment.
|
|
Since a Guest Journey is uniquely attributed to a single Verification
|
|
Request, this ID exists for any type of product payment.
|
|
It can be null for same-day payments due to different freshness
|
|
of the sources used to build this model.
|
|
data_tests:
|
|
- not_null:
|
|
where: "date(created_at_utc) < current_date"
|
|
|
|
- name: is_refundable
|
|
data_type: boolean
|
|
description: |
|
|
Indicates whether the payment is refundable or not.
|
|
This does NOT mean that the payment is actually refunded.
|
|
|
|
- name: created_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
Timestamp of when the payment was created.
|
|
It cannot be null.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: updated_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
Timestamp of when the payment was last updated.
|
|
It cannot be null.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: payment_due_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
Timestamp of when the payment is due.
|
|
It cannot be null.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: payment_due_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when the payment is due.
|
|
It cannot be null.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: payment_paid_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
Timestamp of when the payment was paid.
|
|
It can be null if the payment has not been paid yet.
|
|
If the payment is in PAID status, then this field
|
|
needs to be filled.
|
|
data_tests:
|
|
- not_null:
|
|
where: "is_paid_status = True"
|
|
|
|
- name: payment_paid_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when the payment was paid.
|
|
It can be null if the payment has not been paid yet.
|
|
If the payment is in PAID status, then this field
|
|
needs to be filled.
|
|
data_tests:
|
|
- not_null:
|
|
where: "is_paid_status = True"
|
|
|
|
- name: payment_reference
|
|
data_type: character varying
|
|
description: |
|
|
Reference code associated with the payment.
|
|
It can be null if the payment has not been paid yet.
|
|
|
|
- name: refund_due_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
Timestamp of when the refund is due.
|
|
It can be null if the payment has not been refunded.
|
|
|
|
- name: refund_due_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when the refund is due.
|
|
It can be null if the payment has not been refunded.
|
|
|
|
- name: payment_refunded_at_utc
|
|
data_type: timestamp without time zone
|
|
description: |
|
|
Timestamp of when the payment was refunded.
|
|
It can be null if the payment has not been refunded.
|
|
|
|
- name: payment_refunded_date_utc
|
|
data_type: date
|
|
description: |
|
|
Date of when the payment was refunded.
|
|
It can be null if the payment has not been refunded.
|
|
|
|
- name: refund_payment_reference
|
|
data_type: character varying
|
|
description: |
|
|
Reference code associated with the refund payment.
|
|
It can be null if the payment has not been refunded.
|
|
|
|
- name: id_user_host
|
|
data_type: character varying
|
|
description: |
|
|
Unique identifier of the Host linked to the Verification
|
|
Request that has a payment.
|
|
It can be null for same-day payments due to different freshness
|
|
of the sources used to build this model.
|
|
data_tests:
|
|
- not_null:
|
|
where: "date(created_at_utc) < current_date"
|
|
|
|
- name: id_user_guest
|
|
data_type: character varying
|
|
description: |
|
|
Unique identifier of the Guest linked to the Verification
|
|
Request that has a payment.
|
|
It cannot be null.
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: currency
|
|
data_type: character varying
|
|
description: |
|
|
The ISO 4217 currency code (e.g., GBP, USD, EUR) in which the payment
|
|
was originally made.
|
|
It can be null for same-day payments due to different freshness
|
|
of the sources used to build this model.
|
|
data_tests:
|
|
- not_null:
|
|
where: "date(created_at_utc) < current_date"
|
|
|
|
- name: payment_status
|
|
data_type: character varying
|
|
description: |
|
|
Current status of the payment (e.g., PAID).
|
|
It cannot be null.
|
|
data_tests:
|
|
- accepted_values:
|
|
values:
|
|
- PAID
|
|
- PAID MANUALLY
|
|
- CANCELLED
|
|
- REFUNDED
|
|
- REFUND FAILED
|
|
- FAILED WITH RETRY
|
|
- FAILED
|
|
- UNKNOWN
|
|
|
|
- name: notes
|
|
data_type: character varying
|
|
description: |
|
|
Notes or comments associated with the payment.
|
|
It can be null if there are no notes.
|
|
|
|
- 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.
|
|
data_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.
|
|
data_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.
|
|
data_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.
|
|
data_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
|
|
Truvi.
|
|
If the transaction accrues no taxes, will be equal to the field
|
|
total_amount_in_txn_currency.
|
|
data_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
|
|
Truvi.
|
|
If the transaction accrues no taxes, will be equal to the field
|
|
total_amount_in_txn_currency.
|
|
data_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.
|
|
data_tests:
|
|
- not_null
|
|
- dbt_expectations.expect_column_values_to_be_between:
|
|
min_value: 0
|
|
max_value: 0.99
|
|
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.
|
|
data_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.)
|
|
data_tests:
|
|
- not_null
|
|
|
|
- name: is_host_taking_waiver_risk
|
|
data_type: boolean
|
|
description: |
|
|
Boolean indicating whether the host is taking the risk.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: payaway_percentage
|
|
data_type: numeric
|
|
description: |
|
|
Percentage of the payment that goes to Truvi.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: payaway_minimum_commission_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
Minimum commission amount in the payment currency.
|
|
Note that this is converted from Host currency to the payment
|
|
currency for information purposes, but that the Host always gets
|
|
paid in its own currency.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: amount_due_to_host_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The amount payable to the host in the payment currency.
|
|
Note that this is converted from Host currency to the payment
|
|
currency for information purposes, but that the Host always gets
|
|
paid in its own currency.
|
|
This includes taxes if applicable.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: amount_due_to_host_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The amount payable to the host in GBP.
|
|
Note that this is converted from Host currency to GBP for
|
|
information purposes, but that the Host always gets paid
|
|
in its own currency.
|
|
This includes taxes if applicable.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: truvi_fee_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The service fee charged by Truvi in the payment currency.
|
|
This includes taxes if applicable.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: truvi_fee_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The service fee charged by Truvi in GBP.
|
|
This includes taxes if applicable.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: amount_due_to_host_without_taxes_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The amount payable to the host in the payment currency, without taxes.
|
|
Note that this is converted from Host currency to the payment
|
|
currency for information purposes, but that the Host always gets
|
|
paid in its own currency.
|
|
If the transaction accrues no taxes, will be equal to the field
|
|
amount_due_to_host_in_txn_currency.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: amount_due_to_host_without_taxes_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The amount payable to the host in GBP, without taxes.
|
|
Note that this is converted from Host currency to GBP for
|
|
information purposes, but that the Host always gets paid in
|
|
its own currency.
|
|
If the transaction accrues no taxes, will be equal to the field
|
|
amount_due_to_host_in_gbp.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: truvi_fee_without_taxes_in_txn_currency
|
|
data_type: numeric
|
|
description: |
|
|
The service fee charged by Truvi in the payment currency,
|
|
without taxes.
|
|
If the transaction accrues no taxes, will be equal to the field
|
|
truvi_fee_in_txn_currency.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- name: truvi_fee_without_taxes_in_gbp
|
|
data_type: numeric
|
|
description: |
|
|
The service fee charged by Truvi in GBP, without taxes.
|
|
If the transaction accrues no taxes, will be equal to the field
|
|
truvi_fee_in_gbp.
|
|
It is always null if the payment is not a Waiver payment.
|
|
data_tests:
|
|
- is_null:
|
|
where: "product_name <> 'WAIVER'"
|
|
|
|
- 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.
|
|
data_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.
|
|
data_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.
|
|
|
|
data_tests:
|
|
- not_null
|
|
- accepted_values:
|
|
values:
|
|
- false
|
|
|
|
- name: is_paid_status
|
|
data_type: boolean
|
|
description: |
|
|
A handy boolean that just considers payments that are
|
|
currently in the PAID status. Keep in mind that if the
|
|
payment gets paid and then refunded, this boolean will
|
|
be false as status only reflects the latest transition.
|
|
data_tests:
|
|
- not_null
|