The Snapshots Table is the daily, point-in-time summary of every loan available through Peach Data Replica. It holds one row per loan per reporting day, capturing balances, payment history, delinquency, and status as of that day. The Snapshots Table is the upstream source for most loan-tape columns.
This page documents the table's 114 columns, which correspond one-to-one to the fields of the Snapshot protocol-buffer message in Peach's loansnap service. Money values are stored in minor units (integer cents). Enum-valued columns are stored as integer codes; the description lists the code mapping where one applies.
Use Ctrl+F to find a column by name.
The replica/warehouse column names documented here are taken from the Peach data dictionary. For 17 columns they differ from the underlying Snapshot proto field names by a single convention — the proto inserts an underscore before a digit (times_overdue_15_days) where the replica column does not (times_overdue15_days). The naming a given client queries can depend on the access path (replica database vs. Snowflake share). See Column naming: replica vs. proto and confirm against your own delivered schema.
- Replica column — the column name as delivered in Peach Data Replica, per the data dictionary.
- Proto field — the corresponding
Snapshotproto field name. It matches the replica column except for the 17 fields noted below. - Type — the warehouse SQL type. Money amounts are
bigintin minor units; rates arenumeric; dates are stored asbigintepoch values ordate/timestamptzdepending on the column. - Description — what the column means, and the loan-tape column it feeds where applicable.
- Columns whose proto field is read when Peach builds a loan tape note "Surfaced in loan tapes as
…". The loan tape reads 96 of the 114 snapshot fields; the rest are envelope, identity, or internal columns.
For these 17 columns, the replica column name drops the underscore the proto places before a digit. The data are identical; only the name differs.
| Replica column | Proto field |
|---|---|
times_overdue15_days | times_overdue_15_days |
times_overdue30_days | times_overdue_30_days |
times_overdue60_days | times_overdue_60_days |
times_overdue90_days | times_overdue_90_days |
times_overdue120_days | times_overdue_120_days |
overdue_over30_days_from_date | overdue_over_30_days_from_date |
overdue_over30_days_balance_total_amount | overdue_over_30_days_balance_total_amount |
overdue_over60_days_balance_total_amount | overdue_over_60_days_balance_total_amount |
overdue_over90_days_balance_total_amount | overdue_over_90_days_balance_total_amount |
overdue_over120_days_balance_total_amount | overdue_over_120_days_balance_total_amount |
overdue_over150_days_balance_total_amount | overdue_over_150_days_balance_total_amount |
overdue_over180_days_balance_total_amount | overdue_over_180_days_balance_total_amount |
overdue_over60_days_from_date | overdue_over_60_days_from_date |
overdue_over90_days_from_date | overdue_over_90_days_from_date |
overdue_over120_days_from_date | overdue_over_120_days_from_date |
overdue_over150_days_from_date | overdue_over_150_days_from_date |
overdue_over180_days_from_date | overdue_over_180_days_from_date |
Two further differences exist between the proto and the replica/data-dictionary view:
deleted_atis present in the replica table (a soft-delete timestamp) but is not aSnapshotproto field.is_closedand the four*_membership_fees_amountcolumns are proto fields that are absent from the source data dictionary. The membership-fee columns are gated by a feature flag and may not appear in older replica snapshots.
Fields are grouped by function. Within each group, the description notes the loan-tape column each value feeds, where one exists.
| Replica column | Proto field | Type | Description |
|---|---|---|---|
id | id | bigint | The identifier of this record. |
company_id | company_id | bigint | The company internal identifier in Peach. |
loan_id | loan_id | bigint | The account unique identifier in Peach. |
loan_external_id | loan_external_id | text | The account unique external identifier. |
loan_type | loan_type | integer | The account type (installment, lineOfCredit, draw). Stored as an integer code: 0 unknown, 1 installment, 2 line of credit, 3 draw. |
loan_type_id | loan_type_id | bigint | The account type (also called asset policies) unique internal identifier in Peach. This is created specifically for each lender's credit product by Peach. |
currency | currency | char(3) | The currency of the account. |
loan_status | loan_status | integer | The current status of the account (pending, originated, declined, active, frozen, accelerated, chargedOff, paidOff, canceled). Stored as an integer code: 0 unknown, 1 active, 2 pending, 3 originated, 4 declined, 5 frozen, 6 accelerated, 7 charged off, 8 paid off, 9 canceled. Surfaced in loan tapes as loanStatus. |
is_closed | is_closed | boolean | Whether the loan is closed. Not surfaced as a loan-tape column. |
created_at | created_at | timestamptz | Timestamp when this record was created. |
updated_at | updated_at | timestamptz | Timestamp when this record was updated. |
effective_date | effective_date | timestamptz | The effective date of the information reported. The amounts and statuses are as of the reportDate end of day. |
| Replica column | Proto field | Type | Description |
|---|---|---|---|
credit_limit | credit_limit | bigint | The account credit limit. Relevant only to Line of Credit loans and Draws. Surfaced in loan tapes as currentCreditLimit. |
last_due_date | last_due_date | timestamptz | The last due date of the account. The date might change if the account terms changed (e.g. a due date was deferred). Surfaced in loan tapes as lastDueDate. |
interest_rate | interest_rate | numeric | The annual interest rate effective on the reportDate. Surfaced in loan tapes as interestRate. |
promo_rate | promo_rate | numeric | The promo interest rate effective on the reportDate. Surfaced in loan tapes as promoRate. |
index_rate | index_rate | numeric | The index rate. Surfaced in loan tapes as indexRate. |
interest_type | interest_type | text | The type of interest used. Absolute interest or spread interest tied to a defined index interest rate type. Surfaced in loan tapes as interestType. |
contractual_recurring_amount | contractual_recurring_amount | bigint | The recurring amount as communicated to the borrower in the agreement. Surfaced in loan tapes as contractualRecurringAmount. |
current_recurring_amount | current_recurring_amount | bigint | The current recurring amount. |
amount_financed | amount_financed | bigint | The amount financed. Surfaced in loan tapes as amountFinanced. |
principal_amount | principal_amount | bigint | The principal amount Surfaced in loan tapes as principalAmount. |
origination_fee_amount | origination_fee_amount | bigint | The origination fee amount. Surfaced in loan tapes as originationFeeAmount. |
first_due_date_expected_amount | first_due_date_expected_amount | bigint | The amount that the borrower is or was expected to pay by the first due date. Surfaced in loan tapes as firstDueDateExpectedAmount. |
first_due_date_payment_amount_by_first_due_date | first_due_date_payment_amount_by_first_due_date | bigint | The actual amount that the borrower paid by the first due date. Surfaced in loan tapes as firstDueDatePaymentAmountByDueDate. |
upcoming_due_date | upcoming_due_date | timestamptz | The upcoming due date. Surfaced in loan tapes as upcomingDueDate. |
upcoming_due_date_expected_amount | upcoming_due_date_expected_amount | bigint | The amount that the borrower is expected to pay by the upcoming due date. Surfaced in loan tapes as upcomingDueDateExpectedAmount. |
projected_payoff_date | projected_payoff_date | date | The projected pay off date of the loan. Surfaced in loan tapes as projectedPayoffDate. |
remaining_duration | remaining_duration | bigint | The remaining duration of the loan. Surfaced in loan tapes as remainingDuration. |
is_loan_modified | is_loan_modified | boolean | Was the loan modified from its original terms. Surfaced in loan tapes as isLoanModified. |
| Replica column | Proto field | Type | Description |
|---|---|---|---|
outstanding_balance_total_amount | outstanding_balance_total_amount | bigint | The total outstanding balance sums outstanding principal, interest, and fees. Also called the account payoff amount. If the account status is chargedOff, the amount will be equal to chargedOffPrincipalAmount. Surfaced in loan tapes as outstandingBalanceTotalAmount. |
outstanding_balance_principal_amount | outstanding_balance_principal_amount | bigint | The principal portion of the outstandingBalanceTotalAmount. Surfaced in loan tapes as outstandingBalancePrincipalAmount. |
outstanding_balance_interest_amount | outstanding_balance_interest_amount | bigint | The interest portion of the outstandingBalanceTotalAmount. Surfaced in loan tapes as outstandingBalanceInterestAmount. |
outstanding_balance_fees_amount | outstanding_balance_fees_amount | bigint | The fees portion of the outstandingBalanceTotalAmount. Surfaced in loan tapes as outstandingBalanceFeesAmount. |
due_balance_total_amount | due_balance_total_amount | bigint | Due balances represent balances that are currently due. The total due balance sums due principal, interest, and fees. Surfaced in loan tapes as dueBalanceTotalAmount. |
due_balance_principal_amount | due_balance_principal_amount | bigint | The principal portion of the dueBalanceTotalAmount. Surfaced in loan tapes as dueBalancePrincipalAmount. |
due_balance_interest_amount | due_balance_interest_amount | bigint | The interest portion of the dueBalanceTotalAmount. Surfaced in loan tapes as dueBalanceInterestAmount. |
due_balance_fees_amount | due_balance_fees_amount | bigint | The fees portion of the dueBalanceTotalAmount. Surfaced in loan tapes as dueBalanceFeesAmount. |
non_due_balance_total_amount | non_due_balance_total_amount | bigint | Non due balances represent balances that are not yet due. The total non-due balance sums non-due principal, interest, and fees. Surfaced in loan tapes as nonDueBalanceTotalAmount. |
non_due_balance_principal_amount | non_due_balance_principal_amount | bigint | The principal portion of the nonDueBalanceTotalAmount. Surfaced in loan tapes as nonDueBalancePrincipalAmount. |
non_due_balance_interest_amount | non_due_balance_interest_amount | bigint | The interest portion of the nonDueBalanceTotalAmount. Surfaced in loan tapes as nonDueBalanceInterestAmount. |
non_due_balance_fees_amount | non_due_balance_fees_amount | bigint | The fees portion of the nonDueBalanceTotalAmount. Surfaced in loan tapes as nonDueBalanceFeesAmount. |
overdue_number_days | overdue_number_days | bigint | The number of days that the account is overdue. Surfaced in loan tapes as overdueNumberDays. |
overdue_balance_total_amount | overdue_balance_total_amount | bigint | The account overdue balance. Surfaced in loan tapes as overdueBalanceTotalAmount. |
overdue_balance_principal_amount | overdue_balance_principal_amount | bigint | The principal portion of the overdue balance. Surfaced in loan tapes as overdueBalancePrincipalAmount. |
overdue_balance_interest_amount | overdue_balance_interest_amount | bigint | The interest portion of the overdue balance. Surfaced in loan tapes as overdueBalanceInterestAmount. |
overdue_balance_fees_amount | overdue_balance_fees_amount | bigint | The fees portion of the overdue balance. Surfaced in loan tapes as overdueBalanceFeesAmount. |
overdue_over30_days_balance_total_amount | overdue_over_30_days_balance_total_amount | bigint | The account balance that is over 30 days overdue. Surfaced in loan tapes as overdueOver30DaysBalanceTotalAmount. |
overdue_over60_days_balance_total_amount | overdue_over_60_days_balance_total_amount | bigint | The overdue total amount that is overdue for over 60 days. Surfaced in loan tapes as overdueOver60DaysBalanceTotalAmount. |
overdue_over90_days_balance_total_amount | overdue_over_90_days_balance_total_amount | bigint | The overdue total amount that is overdue for over 90 days. Surfaced in loan tapes as overdueOver90DaysBalanceTotalAmount. |
overdue_over120_days_balance_total_amount | overdue_over_120_days_balance_total_amount | bigint | The overdue total amount that is overdue for over 120 days. Surfaced in loan tapes as overdueOver120DaysBalanceTotalAmount. |
overdue_over150_days_balance_total_amount | overdue_over_150_days_balance_total_amount | bigint | The overdue total amount that is overdue for over 150 days. Surfaced in loan tapes as overdueOver150DaysBalanceTotalAmount. |
overdue_over180_days_balance_total_amount | overdue_over_180_days_balance_total_amount | bigint | The overdue total amount that is overdue for over 180 days. Surfaced in loan tapes as overdueOver180DaysBalanceTotalAmount. |
overdue_over30_days_from_date | overdue_over_30_days_from_date | timestamptz | The date since the account is overdue for over 30 days. |
overdue_over60_days_from_date | overdue_over_60_days_from_date | date | The date from which the loan was over due for over 60 days. |
overdue_over90_days_from_date | overdue_over_90_days_from_date | date | The date from which the loan was over due for over 90 days. |
overdue_over120_days_from_date | overdue_over_120_days_from_date | date | The date from which the loan was over due for over 120 days. |
overdue_over150_days_from_date | overdue_over_150_days_from_date | date | The date from which the loan was over due for over 150 days. |
overdue_over180_days_from_date | overdue_over_180_days_from_date | date | The date from which the loan was over due for over 180 days. |
non_due_balance_origination_fees_amount | non_due_balance_origination_fees_amount | bigint | The current non due amount of origination fees. Surfaced in loan tapes as nonDueBalanceOriginationFeesAmount. |
non_due_balance_draw_fees_amount | non_due_balance_draw_fees_amount | bigint | The current non due amount of draw fees. Surfaced in loan tapes as nonDueBalanceDrawFeesAmount. |
non_due_balance_late_fees_amount | non_due_balance_late_fees_amount | bigint | The current non due amount of late fees. Surfaced in loan tapes as nonDueBalanceLateFeesAmount. |
non_due_balance_modification_fees_amount | non_due_balance_modification_fees_amount | bigint | The current non due amount of modification fees. Surfaced in loan tapes as nonDueBalanceModificationFeesAmount. |
due_balance_origination_fees_amount | due_balance_origination_fees_amount | bigint | The current due amount of origination fees. Surfaced in loan tapes as dueBalanceOriginationFeesAmount. |
due_balance_draw_fees_amount | due_balance_draw_fees_amount | bigint | The current due amount of draw fees. Surfaced in loan tapes as dueBalanceDrawFeesAmount. |
due_balance_late_fees_amount | due_balance_late_fees_amount | bigint | The current due amount of late fees. Surfaced in loan tapes as dueBalanceLateFeesAmount. |
due_balance_modification_fees_amount | due_balance_modification_fees_amount | bigint | The current due amount of modification fees. Surfaced in loan tapes as dueBalanceModificationFeesAmount. |
overdue_balance_origination_fees_amount | overdue_balance_origination_fees_amount | bigint | The overdue amount of origination fees. Surfaced in loan tapes as overdueBalanceOriginationFeesAmount. |
overdue_balance_draw_fees_amount | overdue_balance_draw_fees_amount | bigint | The overdue amount of draw fees. Surfaced in loan tapes as overdueBalanceDrawFeesAmount. |
overdue_balance_late_fees_amount | overdue_balance_late_fees_amount | bigint | The overdue amount of late fees. Surfaced in loan tapes as overdueBalanceLateFeesAmount. |
overdue_balance_modification_fees_amount | overdue_balance_modification_fees_amount | bigint | The overdue amount of modification fees. Surfaced in loan tapes as overdueBalanceModificationFeesAmount. |
outstanding_balance_origination_fees_amount | outstanding_balance_origination_fees_amount | bigint | The outstanding amount of origination fees. Surfaced in loan tapes as outstandingBalanceOriginationFeesAmount. |
outstanding_balance_draw_fees_amount | outstanding_balance_draw_fees_amount | bigint | The outstanding amount of draw fees. Surfaced in loan tapes as outstandingBalanceDrawFeesAmount. |
outstanding_balance_late_fees_amount | outstanding_balance_late_fees_amount | bigint | The outstanding amount of late fees. Surfaced in loan tapes as outstandingBalanceLateFeesAmount. |
outstanding_balance_modification_fees_amount | outstanding_balance_modification_fees_amount | bigint | The outstanding amount of modification fees. Surfaced in loan tapes as outstandingBalanceModificationFeesAmount. |
non_due_balance_membership_fees_amount | non_due_balance_membership_fees_amount | bigint | The membership-fees portion of the non-due balance. Membership-fee feature; gated by a feature flag; absent from older replica snapshots. Surfaced in loan tapes as nonDueBalanceMembershipFeesAmount. |
due_balance_membership_fees_amount | due_balance_membership_fees_amount | bigint | The membership-fees portion of the due balance. Membership-fee feature; gated by a feature flag; absent from older replica snapshots. Surfaced in loan tapes as dueBalanceMembershipFeesAmount. |
overdue_balance_membership_fees_amount | overdue_balance_membership_fees_amount | bigint | The membership-fees portion of the overdue balance. Membership-fee feature; gated by a feature flag; absent from older replica snapshots. Surfaced in loan tapes as overdueBalanceMembershipFeesAmount. |
outstanding_balance_membership_fees_amount | outstanding_balance_membership_fees_amount | bigint | The membership-fees portion of the outstanding balance. Membership-fee feature; gated by a feature flag; absent from older replica snapshots. Surfaced in loan tapes as outstandingBalanceMembershipFeesAmount. |
| Replica column | Proto field | Type | Description |
|---|---|---|---|
credits_applied_total_amount | credits_applied_total_amount | bigint | The total amount of service credits applied to the account from the account activation through reportDate. Surfaced in loan tapes as creditsAppliedTotalAmount. |
paid_total_amount | paid_total_amount | bigint | The total amount of payments applied to the account from the account activation through reportDate. Surfaced in loan tapes as paymentsMadeTotalAmount. |
paid_principal_amount | paid_principal_amount | bigint | The principal portion of payments and credits made (also called principal split). Surfaced in loan tapes as paymentsMadePrincipalAmount. |
paid_interest_amount | paid_interest_amount | bigint | The interest portion of payments and credits made (also called interest split). Surfaced in loan tapes as paymentsMadeInterestAmount. |
paid_fees_amount | paid_fees_amount | bigint | The fees portion of payments and credits made (also called fees split). Surfaced in loan tapes as paymentsMadeFeesAmount. |
paid_over_amount | paid_over_amount | bigint | The amount over paid. Surfaced in loan tapes as paymentsMadeOverAmount. |
paid_reimbursements_amount | paid_reimbursements_amount | bigint | The amount of reimbursements paid. Surfaced in loan tapes as paymentsMadeReimbursementsAmount. |
last_successful_payment_effective_date | last_successful_payment_effective_date | timestamptz | The effective date of the most recent successful payment. Surfaced in loan tapes as lastSuccessfulPaymentEffectiveDate. |
last_successful_payment_total_amount | last_successful_payment_total_amount | bigint | The amount of the most recent successful payment. Surfaced in loan tapes as lastSuccessfulPaymentTotalAmount. |
last_successful_payment_principal_amount | last_successful_payment_principal_amount | bigint | The principal portion of the most recent successful payment amount (also called payment principal split). Surfaced in loan tapes as lastSuccessfulPaymentPrincipalAmount. |
last_successful_payment_interest_amount | last_successful_payment_interest_amount | bigint | The interest portion of the most recent successful payment amount (also called payment interest split). Surfaced in loan tapes as lastSuccessfulPaymentInterestAmount. |
last_successful_payment_fees_amount | last_successful_payment_fees_amount | bigint | The fees portion of the most recent successful payment amount (also called payment fees split). Surfaced in loan tapes as lastSuccessfulPaymentFeesAmount. |
is_autopay_on | is_autopay_on | boolean | true if Autopay is enabled on the account. Surfaced in loan tapes as isAutopayOn. |
recent_autopay_authorization_date | recent_autopay_authorization_date | timestamptz | The most recent date when Autopay was authorized/enabled on the account. Surfaced in loan tapes as recentAutopayAuthorizationDate. |
reimbursement_amount | reimbursement_amount | bigint | The amount owed to the borrower. Surfaced in loan tapes as reimbursementAmount. |
refunded_amount | refunded_amount | bigint | The total amount of refunds applied from account activation date through the reportDate. Surfaced in loan tapes as refundedAmount. |
| Replica column | Proto field | Type | Description |
|---|---|---|---|
is_overdue | is_overdue | boolean | true if the account is overdue. Surfaced in loan tapes as isOverdue. |
times_overdue15_days | times_overdue_15_days | bigint | The number of times the account was overdue more than 15 days. Surfaced in loan tapes as timesOverdue15Days. |
times_overdue30_days | times_overdue_30_days | bigint | The number of times the account was overdue more than 30 days. Surfaced in loan tapes as timesOverdue30Days. |
times_overdue60_days | times_overdue_60_days | bigint | The number of times the account was overdue more than 60 days. Surfaced in loan tapes as timesOverdue60Days. |
times_overdue90_days | times_overdue_90_days | bigint | The number of times the account was overdue more than 90 days. Surfaced in loan tapes as timesOverdue90Days. |
times_overdue120_days | times_overdue_120_days | bigint | The number of times the account was overdue more than 120 days. Surfaced in loan tapes as timesOverdue120Days. |
| Replica column | Proto field | Type | Description |
|---|---|---|---|
is_charged_off | is_charged_off | boolean | true if the account was charged off. Surfaced in loan tapes as isChargedOff. |
charged_off_date | charged_off_date | timestamptz | The date when the account was charged off. Surfaced in loan tapes as chargedOffDate. |
charged_off_principal_amount | charged_off_principal_amount | bigint | The principal portion of the charged off balance. The balance can change if payments were applied after the account was charged off. Surfaced in loan tapes as chargedOffPrincipalAmount. |
charged_off_interest_amount | charged_off_interest_amount | bigint | The interest portion of the charged off balance. The balance can change if payments were applied after the account was charged off. Surfaced in loan tapes as chargedOffInterestAmount. |
charged_off_fees_amount | charged_off_fees_amount | bigint | The fees portion of the charged off balance. The balance can change if payments were applied after the account was charged off. Surfaced in loan tapes as chargedOffFeesAmount. |
charged_off_total_amount | charged_off_total_amount | bigint | The account charged off balance. The balance can change if payments were applied after the account was charged off. Surfaced in loan tapes as chargedOffTotalAmount. |
charged_off_reason | charged_off_reason | integer | The charge off reason (term, fraudulent, bankruptcy, legal). Stored as an integer code (term, fraudulent, bankruptcy, legal). Surfaced in loan tapes as chargedOffReason. |
| Replica column | Proto field | Type | Description |
|---|---|---|---|
interest_accrued_total_amount | interest_accrued_total_amount | bigint | The net interest accrued on since the account activation date. Surfaced in loan tapes as netInterestAccruedTotalAmount. |
interest_discount_total_amount | interest_discount_total_amount | bigint | The interest discount amount applied since the account activation date. Surfaced in loan tapes as interestDiscountTotalAmount. |
forgone_interest_cap_amount | forgone_interest_cap_amount | bigint | The forgone interest amount because the total accued interest hit the interest cap that was set. Surfaced in loan tapes as forgoneInterestCapAmount. |
daily_interest_accrued_amount | daily_interest_accrued_amount | bigint | The daily amount of accrued interest. Surfaced in loan tapes as dailyInterestAccruedAmount. |
daily_interest_discount_amount | daily_interest_discount_amount | bigint | The daily amount of discounted interest. Surfaced in loan tapes as dailyInterestDiscountAmount. |
daily_forgone_interest_cap_amount | daily_forgone_interest_cap_amount | bigint | The daily amount of forgot interest that was forgone due to a defined cap. Surfaced in loan tapes as dailyForgoneInterestCapAmount. |
- Loan tape field reference — The loan-tape and payment-tape columns these snapshot fields feed.
- About Peach Data Replica — How the Snapshots Table is delivered (GCS files, Snowflake share).
- Data delivery setup — Platform-specific setup for ingesting replica data.
- Core concepts — How loans and their components are modeled in Peach.