data-dwh-dbt-project/models/reporting/core/schema.yaml

567 lines
No EOL
19 KiB
YAML

version: 2
models:
- name: core__verification_payments
description: |
Payments that have happened as part of the Guest Journey.
Each record matches one payment in a guest journey. For example, if a guest pays a fee and a deposit for a booking, this table will hold two records.
Lookups to dimensions have been denormalized.
The data is mostly coming from Superhog, with money conversion happening through hardcoded rates.
columns:
- name: id_verification_to_payment
data_type: bigint
description: Superhog id for the record that relates this Payment to a Verification.
- name: id_payment
data_type: bigint
description: Superhog id for this Payment.
tests:
- unique
- not_null
- name: is_refundable
data_type: boolean
description: Whether they payment is refundable or not.
- name: payment_due_at_utc
data_type: timestamp without time zone
description: The point in time at which this payment had to be paid.
- name: payment_due_date_utc
data_type: date
description: The date on which this payment had to be paid.
- name: payment_paid_at_utc
data_type: timestamp without time zone
description: The point in time at which this payment was paid.
- name: payment_paid_date_utc
data_type: date
description: The date on which this payment was paid.
- name: payment_reference
data_type: character varying
description: |
The payment reference code in the payment processor.
For Acquired, this is typically and 10-12 digits number.
For Stripe, this is a payment intent code. This is formatted as `pi_3OieViJK46Ulzq6A16IWxeW5`, with the part after `pi_` being 24 digits long.
You can use the Stripe code to match this payment with our Stripe records.
- name: refund_due_at_utc
data_type: timestamp without time zone
description: The point in time at which this payment had to be refunded.
- name: refund_due_date_utc
data_type: date
description: The date on which this payment had to be refunded.
- name: payment_refunded_at_utc
data_type: timestamp without time zone
description: The point in time at which this payment was refunded.
- name: payment_refunded_date_utc
data_type: date
description: The date on which this payment was refunded.
- name: refund_payment_reference
data_type: character varying
description: |
The payment reference for the refund in the payment processor.
For Acquired, this is typically and 10-12 digits number.
For Stripe, this is a refund code. This is formatted as `pyr_3OieViJK46Ulzq6A16IWxeW5` or `re_3OfWeTJK46Ulzq6A02gVvZuk`.
You can use the Stripe code to match this refund with our Stripe records.
- name: id_guest_user
data_type: character varying
description: The UUID of the guest user in the Superhog backend.
- name: id_verification
data_type: bigint
description: The ID of the verification that generated this payment.
- name: verification_payment_type
data_type: character varying
description: "The payment type. Can be one of: Waiver, Fee, Deposit, Reschedule, Cancellation."
- 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: character varying
description: The currency in which the transaction actually happened. If the guest paid in Australian Dollars, this is measured in AUD.
- 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: notes
data_type: character varying
description: Free text description on the payment. Typically, contains explanations for integration issues with the payment processor.
- 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.
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.
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: 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.
- name: currency
data_type: character varying
description: The currency used by the guest for the payment.
- name: amount_in_gbp
data_type: numeric
description: The amount paid by the guest, converted into GBP.
- 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: ""