Skip to content

Snapshots Table column reference

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.

Column naming may differ from the proto

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.

How to read this reference

  • Replica column — the column name as delivered in Peach Data Replica, per the data dictionary.
  • Proto field — the corresponding Snapshot proto field name. It matches the replica column except for the 17 fields noted below.
  • Type — the warehouse SQL type. Money amounts are bigint in minor units; rates are numeric; dates are stored as bigint epoch values or date / timestamptz depending 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.

Column naming: replica vs. proto

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 columnProto field
times_overdue15_daystimes_overdue_15_days
times_overdue30_daystimes_overdue_30_days
times_overdue60_daystimes_overdue_60_days
times_overdue90_daystimes_overdue_90_days
times_overdue120_daystimes_overdue_120_days
overdue_over30_days_from_dateoverdue_over_30_days_from_date
overdue_over30_days_balance_total_amountoverdue_over_30_days_balance_total_amount
overdue_over60_days_balance_total_amountoverdue_over_60_days_balance_total_amount
overdue_over90_days_balance_total_amountoverdue_over_90_days_balance_total_amount
overdue_over120_days_balance_total_amountoverdue_over_120_days_balance_total_amount
overdue_over150_days_balance_total_amountoverdue_over_150_days_balance_total_amount
overdue_over180_days_balance_total_amountoverdue_over_180_days_balance_total_amount
overdue_over60_days_from_dateoverdue_over_60_days_from_date
overdue_over90_days_from_dateoverdue_over_90_days_from_date
overdue_over120_days_from_dateoverdue_over_120_days_from_date
overdue_over150_days_from_dateoverdue_over_150_days_from_date
overdue_over180_days_from_dateoverdue_over_180_days_from_date

Two further differences exist between the proto and the replica/data-dictionary view:

  • deleted_at is present in the replica table (a soft-delete timestamp) but is not a Snapshot proto field.
  • is_closed and the four *_membership_fees_amount columns 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.

Snapshot fields

Fields are grouped by function. Within each group, the description notes the loan-tape column each value feeds, where one exists.

Identity and envelope

Replica columnProto fieldTypeDescription
ididbigintThe identifier of this record.
company_idcompany_idbigintThe company internal identifier in Peach.
loan_idloan_idbigintThe account unique identifier in Peach.
loan_external_idloan_external_idtextThe account unique external identifier.
loan_typeloan_typeintegerThe account type (installment, lineOfCredit, draw). Stored as an integer code: 0 unknown, 1 installment, 2 line of credit, 3 draw.
loan_type_idloan_type_idbigintThe account type (also called asset policies) unique internal identifier in Peach. This is created specifically for each lender's credit product by Peach.
currencycurrencychar(3)The currency of the account.
loan_statusloan_statusintegerThe 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_closedis_closedbooleanWhether the loan is closed. Not surfaced as a loan-tape column.
created_atcreated_attimestamptzTimestamp when this record was created.
updated_atupdated_attimestamptzTimestamp when this record was updated.
effective_dateeffective_datetimestamptzThe effective date of the information reported. The amounts and statuses are as of the reportDate end of day.

Terms and schedule

Replica columnProto fieldTypeDescription
credit_limitcredit_limitbigintThe account credit limit. Relevant only to Line of Credit loans and Draws. Surfaced in loan tapes as currentCreditLimit.
last_due_datelast_due_datetimestamptzThe 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_rateinterest_ratenumericThe annual interest rate effective on the reportDate. Surfaced in loan tapes as interestRate.
promo_ratepromo_ratenumericThe promo interest rate effective on the reportDate. Surfaced in loan tapes as promoRate.
index_rateindex_ratenumericThe index rate. Surfaced in loan tapes as indexRate.
interest_typeinterest_typetextThe 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_amountcontractual_recurring_amountbigintThe recurring amount as communicated to the borrower in the agreement. Surfaced in loan tapes as contractualRecurringAmount.
current_recurring_amountcurrent_recurring_amountbigintThe current recurring amount.
amount_financedamount_financedbigintThe amount financed. Surfaced in loan tapes as amountFinanced.
principal_amountprincipal_amountbigintThe principal amount Surfaced in loan tapes as principalAmount.
origination_fee_amountorigination_fee_amountbigintThe origination fee amount. Surfaced in loan tapes as originationFeeAmount.
first_due_date_expected_amountfirst_due_date_expected_amountbigintThe 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_datefirst_due_date_payment_amount_by_first_due_datebigintThe actual amount that the borrower paid by the first due date. Surfaced in loan tapes as firstDueDatePaymentAmountByDueDate.
upcoming_due_dateupcoming_due_datetimestamptzThe upcoming due date. Surfaced in loan tapes as upcomingDueDate.
upcoming_due_date_expected_amountupcoming_due_date_expected_amountbigintThe amount that the borrower is expected to pay by the upcoming due date. Surfaced in loan tapes as upcomingDueDateExpectedAmount.
projected_payoff_dateprojected_payoff_datedateThe projected pay off date of the loan. Surfaced in loan tapes as projectedPayoffDate.
remaining_durationremaining_durationbigintThe remaining duration of the loan. Surfaced in loan tapes as remainingDuration.
is_loan_modifiedis_loan_modifiedbooleanWas the loan modified from its original terms. Surfaced in loan tapes as isLoanModified.

Balances and fee breakdowns

Replica columnProto fieldTypeDescription
outstanding_balance_total_amountoutstanding_balance_total_amountbigintThe 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_amountoutstanding_balance_principal_amountbigintThe principal portion of the outstandingBalanceTotalAmount. Surfaced in loan tapes as outstandingBalancePrincipalAmount.
outstanding_balance_interest_amountoutstanding_balance_interest_amountbigintThe interest portion of the outstandingBalanceTotalAmount. Surfaced in loan tapes as outstandingBalanceInterestAmount.
outstanding_balance_fees_amountoutstanding_balance_fees_amountbigintThe fees portion of the outstandingBalanceTotalAmount. Surfaced in loan tapes as outstandingBalanceFeesAmount.
due_balance_total_amountdue_balance_total_amountbigintDue 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_amountdue_balance_principal_amountbigintThe principal portion of the dueBalanceTotalAmount. Surfaced in loan tapes as dueBalancePrincipalAmount.
due_balance_interest_amountdue_balance_interest_amountbigintThe interest portion of the dueBalanceTotalAmount. Surfaced in loan tapes as dueBalanceInterestAmount.
due_balance_fees_amountdue_balance_fees_amountbigintThe fees portion of the dueBalanceTotalAmount. Surfaced in loan tapes as dueBalanceFeesAmount.
non_due_balance_total_amountnon_due_balance_total_amountbigintNon 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_amountnon_due_balance_principal_amountbigintThe principal portion of the nonDueBalanceTotalAmount. Surfaced in loan tapes as nonDueBalancePrincipalAmount.
non_due_balance_interest_amountnon_due_balance_interest_amountbigintThe interest portion of the nonDueBalanceTotalAmount. Surfaced in loan tapes as nonDueBalanceInterestAmount.
non_due_balance_fees_amountnon_due_balance_fees_amountbigintThe fees portion of the nonDueBalanceTotalAmount. Surfaced in loan tapes as nonDueBalanceFeesAmount.
overdue_number_daysoverdue_number_daysbigintThe number of days that the account is overdue. Surfaced in loan tapes as overdueNumberDays.
overdue_balance_total_amountoverdue_balance_total_amountbigintThe account overdue balance. Surfaced in loan tapes as overdueBalanceTotalAmount.
overdue_balance_principal_amountoverdue_balance_principal_amountbigintThe principal portion of the overdue balance. Surfaced in loan tapes as overdueBalancePrincipalAmount.
overdue_balance_interest_amountoverdue_balance_interest_amountbigintThe interest portion of the overdue balance. Surfaced in loan tapes as overdueBalanceInterestAmount.
overdue_balance_fees_amountoverdue_balance_fees_amountbigintThe fees portion of the overdue balance. Surfaced in loan tapes as overdueBalanceFeesAmount.
overdue_over30_days_balance_total_amountoverdue_over_30_days_balance_total_amountbigintThe account balance that is over 30 days overdue. Surfaced in loan tapes as overdueOver30DaysBalanceTotalAmount.
overdue_over60_days_balance_total_amountoverdue_over_60_days_balance_total_amountbigintThe overdue total amount that is overdue for over 60 days. Surfaced in loan tapes as overdueOver60DaysBalanceTotalAmount.
overdue_over90_days_balance_total_amountoverdue_over_90_days_balance_total_amountbigintThe overdue total amount that is overdue for over 90 days. Surfaced in loan tapes as overdueOver90DaysBalanceTotalAmount.
overdue_over120_days_balance_total_amountoverdue_over_120_days_balance_total_amountbigintThe overdue total amount that is overdue for over 120 days. Surfaced in loan tapes as overdueOver120DaysBalanceTotalAmount.
overdue_over150_days_balance_total_amountoverdue_over_150_days_balance_total_amountbigintThe overdue total amount that is overdue for over 150 days. Surfaced in loan tapes as overdueOver150DaysBalanceTotalAmount.
overdue_over180_days_balance_total_amountoverdue_over_180_days_balance_total_amountbigintThe overdue total amount that is overdue for over 180 days. Surfaced in loan tapes as overdueOver180DaysBalanceTotalAmount.
overdue_over30_days_from_dateoverdue_over_30_days_from_datetimestamptzThe date since the account is overdue for over 30 days.
overdue_over60_days_from_dateoverdue_over_60_days_from_datedateThe date from which the loan was over due for over 60 days.
overdue_over90_days_from_dateoverdue_over_90_days_from_datedateThe date from which the loan was over due for over 90 days.
overdue_over120_days_from_dateoverdue_over_120_days_from_datedateThe date from which the loan was over due for over 120 days.
overdue_over150_days_from_dateoverdue_over_150_days_from_datedateThe date from which the loan was over due for over 150 days.
overdue_over180_days_from_dateoverdue_over_180_days_from_datedateThe date from which the loan was over due for over 180 days.
non_due_balance_origination_fees_amountnon_due_balance_origination_fees_amountbigintThe current non due amount of origination fees. Surfaced in loan tapes as nonDueBalanceOriginationFeesAmount.
non_due_balance_draw_fees_amountnon_due_balance_draw_fees_amountbigintThe current non due amount of draw fees. Surfaced in loan tapes as nonDueBalanceDrawFeesAmount.
non_due_balance_late_fees_amountnon_due_balance_late_fees_amountbigintThe current non due amount of late fees. Surfaced in loan tapes as nonDueBalanceLateFeesAmount.
non_due_balance_modification_fees_amountnon_due_balance_modification_fees_amountbigintThe current non due amount of modification fees. Surfaced in loan tapes as nonDueBalanceModificationFeesAmount.
due_balance_origination_fees_amountdue_balance_origination_fees_amountbigintThe current due amount of origination fees. Surfaced in loan tapes as dueBalanceOriginationFeesAmount.
due_balance_draw_fees_amountdue_balance_draw_fees_amountbigintThe current due amount of draw fees. Surfaced in loan tapes as dueBalanceDrawFeesAmount.
due_balance_late_fees_amountdue_balance_late_fees_amountbigintThe current due amount of late fees. Surfaced in loan tapes as dueBalanceLateFeesAmount.
due_balance_modification_fees_amountdue_balance_modification_fees_amountbigintThe current due amount of modification fees. Surfaced in loan tapes as dueBalanceModificationFeesAmount.
overdue_balance_origination_fees_amountoverdue_balance_origination_fees_amountbigintThe overdue amount of origination fees. Surfaced in loan tapes as overdueBalanceOriginationFeesAmount.
overdue_balance_draw_fees_amountoverdue_balance_draw_fees_amountbigintThe overdue amount of draw fees. Surfaced in loan tapes as overdueBalanceDrawFeesAmount.
overdue_balance_late_fees_amountoverdue_balance_late_fees_amountbigintThe overdue amount of late fees. Surfaced in loan tapes as overdueBalanceLateFeesAmount.
overdue_balance_modification_fees_amountoverdue_balance_modification_fees_amountbigintThe overdue amount of modification fees. Surfaced in loan tapes as overdueBalanceModificationFeesAmount.
outstanding_balance_origination_fees_amountoutstanding_balance_origination_fees_amountbigintThe outstanding amount of origination fees. Surfaced in loan tapes as outstandingBalanceOriginationFeesAmount.
outstanding_balance_draw_fees_amountoutstanding_balance_draw_fees_amountbigintThe outstanding amount of draw fees. Surfaced in loan tapes as outstandingBalanceDrawFeesAmount.
outstanding_balance_late_fees_amountoutstanding_balance_late_fees_amountbigintThe outstanding amount of late fees. Surfaced in loan tapes as outstandingBalanceLateFeesAmount.
outstanding_balance_modification_fees_amountoutstanding_balance_modification_fees_amountbigintThe outstanding amount of modification fees. Surfaced in loan tapes as outstandingBalanceModificationFeesAmount.
non_due_balance_membership_fees_amountnon_due_balance_membership_fees_amountbigintThe 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_amountdue_balance_membership_fees_amountbigintThe 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_amountoverdue_balance_membership_fees_amountbigintThe 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_amountoutstanding_balance_membership_fees_amountbigintThe 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.

Payments, credits, and autopay

Replica columnProto fieldTypeDescription
credits_applied_total_amountcredits_applied_total_amountbigintThe total amount of service credits applied to the account from the account activation through reportDate. Surfaced in loan tapes as creditsAppliedTotalAmount.
paid_total_amountpaid_total_amountbigintThe total amount of payments applied to the account from the account activation through reportDate. Surfaced in loan tapes as paymentsMadeTotalAmount.
paid_principal_amountpaid_principal_amountbigintThe principal portion of payments and credits made (also called principal split). Surfaced in loan tapes as paymentsMadePrincipalAmount.
paid_interest_amountpaid_interest_amountbigintThe interest portion of payments and credits made (also called interest split). Surfaced in loan tapes as paymentsMadeInterestAmount.
paid_fees_amountpaid_fees_amountbigintThe fees portion of payments and credits made (also called fees split). Surfaced in loan tapes as paymentsMadeFeesAmount.
paid_over_amountpaid_over_amountbigintThe amount over paid. Surfaced in loan tapes as paymentsMadeOverAmount.
paid_reimbursements_amountpaid_reimbursements_amountbigintThe amount of reimbursements paid. Surfaced in loan tapes as paymentsMadeReimbursementsAmount.
last_successful_payment_effective_datelast_successful_payment_effective_datetimestamptzThe effective date of the most recent successful payment. Surfaced in loan tapes as lastSuccessfulPaymentEffectiveDate.
last_successful_payment_total_amountlast_successful_payment_total_amountbigintThe amount of the most recent successful payment. Surfaced in loan tapes as lastSuccessfulPaymentTotalAmount.
last_successful_payment_principal_amountlast_successful_payment_principal_amountbigintThe principal portion of the most recent successful payment amount (also called payment principal split). Surfaced in loan tapes as lastSuccessfulPaymentPrincipalAmount.
last_successful_payment_interest_amountlast_successful_payment_interest_amountbigintThe interest portion of the most recent successful payment amount (also called payment interest split). Surfaced in loan tapes as lastSuccessfulPaymentInterestAmount.
last_successful_payment_fees_amountlast_successful_payment_fees_amountbigintThe fees portion of the most recent successful payment amount (also called payment fees split). Surfaced in loan tapes as lastSuccessfulPaymentFeesAmount.
is_autopay_onis_autopay_onbooleantrue if Autopay is enabled on the account. Surfaced in loan tapes as isAutopayOn.
recent_autopay_authorization_daterecent_autopay_authorization_datetimestamptzThe most recent date when Autopay was authorized/enabled on the account. Surfaced in loan tapes as recentAutopayAuthorizationDate.
reimbursement_amountreimbursement_amountbigintThe amount owed to the borrower. Surfaced in loan tapes as reimbursementAmount.
refunded_amountrefunded_amountbigintThe total amount of refunds applied from account activation date through the reportDate. Surfaced in loan tapes as refundedAmount.

Delinquency counters

Replica columnProto fieldTypeDescription
is_overdueis_overduebooleantrue if the account is overdue. Surfaced in loan tapes as isOverdue.
times_overdue15_daystimes_overdue_15_daysbigintThe number of times the account was overdue more than 15 days. Surfaced in loan tapes as timesOverdue15Days.
times_overdue30_daystimes_overdue_30_daysbigintThe number of times the account was overdue more than 30 days. Surfaced in loan tapes as timesOverdue30Days.
times_overdue60_daystimes_overdue_60_daysbigintThe number of times the account was overdue more than 60 days. Surfaced in loan tapes as timesOverdue60Days.
times_overdue90_daystimes_overdue_90_daysbigintThe number of times the account was overdue more than 90 days. Surfaced in loan tapes as timesOverdue90Days.
times_overdue120_daystimes_overdue_120_daysbigintThe number of times the account was overdue more than 120 days. Surfaced in loan tapes as timesOverdue120Days.

Charge-off

Replica columnProto fieldTypeDescription
is_charged_offis_charged_offbooleantrue if the account was charged off. Surfaced in loan tapes as isChargedOff.
charged_off_datecharged_off_datetimestamptzThe date when the account was charged off. Surfaced in loan tapes as chargedOffDate.
charged_off_principal_amountcharged_off_principal_amountbigintThe 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_amountcharged_off_interest_amountbigintThe 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_amountcharged_off_fees_amountbigintThe 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_amountcharged_off_total_amountbigintThe 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_reasoncharged_off_reasonintegerThe charge off reason (term, fraudulent, bankruptcy, legal). Stored as an integer code (term, fraudulent, bankruptcy, legal). Surfaced in loan tapes as chargedOffReason.

Interest accrual and discount

Replica columnProto fieldTypeDescription
interest_accrued_total_amountinterest_accrued_total_amountbigintThe net interest accrued on since the account activation date. Surfaced in loan tapes as netInterestAccruedTotalAmount.
interest_discount_total_amountinterest_discount_total_amountbigintThe interest discount amount applied since the account activation date. Surfaced in loan tapes as interestDiscountTotalAmount.
forgone_interest_cap_amountforgone_interest_cap_amountbigintThe forgone interest amount because the total accued interest hit the interest cap that was set. Surfaced in loan tapes as forgoneInterestCapAmount.
daily_interest_accrued_amountdaily_interest_accrued_amountbigintThe daily amount of accrued interest. Surfaced in loan tapes as dailyInterestAccruedAmount.
daily_interest_discount_amountdaily_interest_discount_amountbigintThe daily amount of discounted interest. Surfaced in loan tapes as dailyInterestDiscountAmount.
daily_forgone_interest_cap_amountdaily_forgone_interest_cap_amountbigintThe daily amount of forgot interest that was forgone due to a defined cap. Surfaced in loan tapes as dailyForgoneInterestCapAmount.

See also