Consumer Credit Risk and Lending Decisioning Set (GB)

FINCRD995· 1.8M records · 44 tables · v1.0.0 · Updated 2026-09-02
Finance Consumer Credit Risk and Lending Dataset API
CSV JSON SQLcredit-riskconsumer-lendingcredit-scoringreject-inferenceaffordability-assessmentifrs9expected-credit-lossarrears-collectionsfca-concuk-consumer-credit

Overview

FINCRD995 follows a synthetic United Kingdom consumer lender end to end: enquiry, credit reference search, application scoring, affordability assessment, decision, offer, drawdown, servicing, arrears, forbearance, collections, default, charge off and recovery. Forty-four linked tables and a monthly panel of 299,465 agreement-months. Three things separate it from a credit scoring toy. The declined applicants are here, and so is what would have happened to them. Every credit model in production is trained on accepted applicants only, because a lender never observes repayment for anyone it turned down. That censoring is the central methodological problem of credit scoring and it has a name: reject inference. This set carries the counterfactual outcome for all 43,122 declined applications, which no real lender can ever hold, so a buyer can measure exactly how wrong a model trained on accepts alone turns out to be. Creditworthiness is treated as two tests, not one. FCA CONC 5.2A separates credit risk, the risk the customer does not repay, from affordability risk, the risk that repaying harms the customer. They are scored separately on every decision and they disagree constantly. The consequence is visible in the counterfactuals: applicants declined for credit risk would have defaulted at roughly six times the rate of applicants declined for affordability, and the affordability declines would mostly have repaid, out of money they needed for essentials. A swap-set analysis that counts them as lost sales has read the Consumer Duty backwards, and this is the only place that error is measurable. The interest rate cycle is real. Bank Rate follows the published path: a peak of 5.25 percent held for a year, then six quarter-point cuts to 3.75 percent. Pricing follows it, the approval cutoff tightens with it, and arrears follow it with a lag of about eighteen months, because fixed rate instalment credit only reprices on refinance and households run down savings before they miss a payment. Impairment is carried at IFRS 9 stage with probability of default, loss given default and exposure on every agreement-month, and the modelled probability of default reconciles to the default rate the book actually realises. Identifiers come from keyed hashes, so no column runs 0001, 0002, 0003.

Analytics

Four entries from the packaged tables, with the performance the dataset records for them. Every value below is read from the shipped files.

The decisionDECIDEthe cutoff tightens as Bank Rate rises
65,767Applications
34.4%Approval rate
Approval rate, percentApproval rate, percent
1 / 4

Row Counts by Table

Counted from the files that ship, not estimated.

TableRows
crd_applicants46,000
crd_decisions65,767
crd_applications65,767
crd_reject_inference43,122
crd_agreements15,071
crd_agreement_months299,465
crd_income_expenditure46,000
crd_bureau_pulls65,767
crd_bureau_accounts202,228
crd_bureau_searches105,878
crd_public_records1,763
crd_scores65,767
crd_decision_reasons_applied71,793
crd_offers22,645
crd_payments290,492
crd_arrears_events265,799
crd_forbearance2,253
crd_collections_activity34,118
crd_defaults1,006
crd_charge_offs358
crd_recoveries189
crd_vintage_performance294
crd_monthly_originations42
crd_monthly_portfolio42
crd_monthly_roll_rates581
crd_broker_performance22
crd_applicant_contacts82,310
crd_brokers22
crd_scorecards2
crd_base_rate_history42
crd_products7
crd_credit_reference_agencies3
crd_score_bands5
crd_channels7
crd_decision_reasons15
crd_employment_types8
crd_residential_statuses6
crd_arrears_statuses11
crd_forbearance_types7
crd_ifrs9_stages3
crd_collections_actions9
crd_expenditure_benchmarks6
crd_loan_purposes10
crd_cities62

Table Relationships

One parent record and seven child tables, each joined back on the same key.

70%
Loading diagram

Schema

Every table ships with typed columns, referential integrity, and documentation.

crd_applicants· Rows: 46,000
ColumnTypeDescription
applicant_idvarchar(16)Surrogate key for the applicant.
customer_referencevarchar(16)Customer reference as the lender would hold it. Derived from a keyed hash rather than issued in sequence.
first_namevarchar(16)Applicant first name. The person is generated.
last_namevarchar(24)Applicant last name.
date_of_birthdateDate of birth.
age_yearsintegerAge in years at the end of the window.
city_idvarchar(16)City the applicant lives in.

+11 more columns in crd_applicants. The full schema ships with the download.

crd_decisions· Rows: 65,767
ColumnTypeDescription
decision_idvarchar(24)Surrogate key for the decision.
application_idvarchar(24)Application decided.
applicant_idvarchar(16)Applicant decided on.
decided_ondateDate of the decision.
decision_outcomevarchar(16)Approved or declined.
application_scoreintegerScore the applicant achieved.
score_cutoffintegerCutoff in force for this product on this date. The cutoff tightens as Bank Rate rises, because the lender funding cost rises with it.

+11 more columns in crd_decisions. The full schema ships with the download.

crd_applications· Rows: 65,767
ColumnTypeDescription
application_idvarchar(24)Surrogate key for the application.
application_referencevarchar(16)Application reference as the customer would quote it.
applicant_idvarchar(16)Applicant applying.
product_codevarchar(24)Product applied for.
channel_codevarchar(24)Channel the application arrived through.
broker_idvarchar(16)Introducing broker. Empty on direct applications.
purpose_codevarchar(24)Stated purpose of borrowing.

+4 more columns in crd_applications. The full schema ships with the download.

crd_reject_inference· Rows: 43,122
ColumnTypeDescription
reject_inference_idvarchar(24)Surrogate key for the counterfactual record.
application_idvarchar(24)Declined application.
applicant_idvarchar(16)Applicant who was declined.
applied_ondateDate of the application.
product_codevarchar(24)Product applied for.
requested_amount_gbpintegerAmount requested.
requested_term_monthsintegerTerm requested. Empty for revolving credit.

+13 more columns in crd_reject_inference. The full schema ships with the download.

crd_agreements· Rows: 15,071
ColumnTypeDescription
agreement_idvarchar(24)Surrogate key for the agreement.
agreement_numbervarchar(24)Agreement number as it appears on the credit agreement.
application_idvarchar(24)Application the agreement came from.
applicant_idvarchar(16)Borrower.
product_codevarchar(24)Product written.
channel_codevarchar(24)Channel the business arrived through.
broker_idvarchar(16)Introducing broker. Empty on direct business.

+16 more columns in crd_agreements. The full schema ships with the download.

crd_agreement_months· Rows: 299,465
ColumnTypeDescription
agreement_month_idvarchar(24)Surrogate key for the agreement-month.
agreement_idvarchar(24)Agreement observed.
applicant_idvarchar(16)Borrower.
observation_monthvarchar(16)Month of observation.
months_on_bookintegerMonths since drawdown. Consumer credit losses concentrate between months six and eighteen, so this is a first-order feature.
balance_gbpnumeric(9,2)Balance outstanding at month end.
payment_due_gbpnumeric(8,2)Contractual payment due that month.

+15 more columns in crd_agreement_months. The full schema ships with the download.

crd_income_expenditure· Rows: 46,000
ColumnTypeDescription
income_expenditure_idvarchar(16)Surrogate key for the income and expenditure assessment.
applicant_idvarchar(16)Applicant assessed.
net_monthly_income_gbpintegerApplicant net monthly income after tax and national insurance.
partner_net_income_gbpintegerPartner net monthly income where the household has a second earner. Zero otherwise.
household_net_income_gbpintegerTotal household net monthly income. Affordability is assessed at household level, because the expenditure benchmarks are household figures.
housing_cost_gbpintegerMonthly housing cost, moved by tenure.
utilities_gbpintegerMonthly utilities cost.

+8 more columns in crd_income_expenditure. The full schema ships with the download.

crd_bureau_pulls· Rows: 65,767
ColumnTypeDescription
bureau_pull_idvarchar(24)Surrogate key for the search.
application_idvarchar(24)Application the search was run for.
applicant_idvarchar(16)Applicant searched.
bureau_codevarchar(16)Agency searched.
pulled_ondateDate of the search.
bureau_scoreintegerScore the agency returned, on that agency scale. The bureau score is a NOISY OBSERVATION of creditworthiness, not a copy of it, and two applicants with the same score have genuinely different outcomes.
score_bandvarchar(16)Band the score falls in.

+7 more columns in crd_bureau_pulls. The full schema ships with the download.

crd_bureau_accounts· Rows: 202,228
ColumnTypeDescription
bureau_account_idvarchar(24)Surrogate key for the reported account.
applicant_idvarchar(16)Applicant holding the account.
bureau_codevarchar(16)Agency reporting it.
account_typevarchar(24)Kind of credit agreement held elsewhere.
opened_ondateDate the account was opened.
credit_limit_gbpintegerCredit limit or original advance.
balance_gbpintegerBalance outstanding. Balances partition the applicant total rather than being drawn independently, so the parts sum to the whole.

+4 more columns in crd_bureau_accounts. The full schema ships with the download.

crd_bureau_searches· Rows: 105,878
ColumnTypeDescription
search_idvarchar(24)Surrogate key for the search footprint entry.
applicant_idvarchar(16)Applicant searched.
bureau_codevarchar(16)Agency that recorded the search.
searched_ondateDate of the search.
search_typevarchar(16)Hard search, which is visible to other lenders, or soft, which is not.
searching_firmvarchar(24)Firm that ran the search, including other lenders.
product_codevarchar(24)Product the search related to.

+1 more columns in crd_bureau_searches. The full schema ships with the download.

crd_public_records· Rows: 1,763
ColumnTypeDescription
public_record_idvarchar(24)Surrogate key for the public record.
applicant_idvarchar(16)Applicant the record is against.
record_typevarchar(16)County Court Judgment, bankruptcy, individual voluntary arrangement or debt relief order.
recorded_ondateDate the record was made.
amount_gbpintegerAmount of the judgment or the debt at the insolvency date.
record_statusvarchar(16)Whether the record is satisfied, unsatisfied, active or discharged.
falls_off_ondateDate the record drops off the credit file, six years after it was made.

+1 more columns in crd_public_records. The full schema ships with the download.

crd_scores· Rows: 65,767
ColumnTypeDescription
score_idvarchar(24)Surrogate key for the score.
application_idvarchar(24)Application scored.
applicant_idvarchar(16)Applicant scored.
scorecard_idvarchar(8)Scorecard version used.
score_typevarchar(16)Whether the score is an application score or a behavioural score.
scored_ondateDate the score was produced.
score_pointsintegerScore in points on the lender scale.

+3 more columns in crd_scores. The full schema ships with the download.

crd_decision_reasons_applied· Rows: 71,793
ColumnTypeDescription
decision_reason_idvarchar(24)Surrogate key for the applied reason.
decision_idvarchar(24)Decision the reason belongs to.
application_idvarchar(24)Application the reason relates to.
reason_codevarchar(40)Reason applied.
reason_classvarchar(24)Whether the reason is policy, credit risk, affordability or fraud.
reason_sequenceintegerPosition of the reason in priority order. The first is the primary reason.
is_retriablevarchar(16)Y when the applicant could reasonably reapply and succeed later.

+1 more columns in crd_decision_reasons_applied. The full schema ships with the download.

crd_offers· Rows: 22,645
ColumnTypeDescription
offer_idvarchar(24)Surrogate key for the offer.
application_idvarchar(24)Application the offer was made on.
decision_idvarchar(24)Decision that produced the offer.
offered_ondateDate the offer was made.
expires_ondateDate the offer lapses.
offered_amount_gbpintegerAmount offered, which is less than requested on a counter-offer.
offered_term_monthsintegerTerm offered. Empty for revolving credit.

+6 more columns in crd_offers. The full schema ships with the download.

crd_payments· Rows: 290,492
ColumnTypeDescription
payment_idvarchar(24)Surrogate key for the payment.
agreement_idvarchar(24)Agreement paid against.
applicant_idvarchar(16)Borrower.
payment_datedateDate of the payment.
amount_gbpnumeric(8,2)Amount received.
amount_due_gbpnumeric(8,2)Amount that was contractually due.
payment_resultvarchar(16)Whether the payment was full, partial or missed.

+2 more columns in crd_payments. The full schema ships with the download.

crd_arrears_events· Rows: 265,799
ColumnTypeDescription
arrears_event_idvarchar(24)Surrogate key for the transition.
agreement_idvarchar(24)Agreement that moved.
applicant_idvarchar(16)Borrower.
event_datedateDate of the transition.
arrears_statusvarchar(16)Status after the transition.
months_in_arrearsintegerMonths in arrears after the transition.
arrears_balance_gbpnumeric(8,2)Arrears balance after the transition.

+2 more columns in crd_arrears_events. The full schema ships with the download.

crd_forbearance· Rows: 2,253
ColumnTypeDescription
forbearance_idvarchar(24)Surrogate key for the forbearance case.
agreement_idvarchar(24)Agreement forborne.
applicant_idvarchar(16)Borrower.
forbearance_codevarchar(24)Measure granted.
started_ondateDate forbearance started.
expected_end_ondateDate it was expected to end.
duration_monthsintegerAgreed duration. Empty where the measure permanently changes the agreement.

+4 more columns in crd_forbearance. The full schema ships with the download.

crd_collections_activity· Rows: 34,118
ColumnTypeDescription
collections_activity_idvarchar(24)Surrogate key for the collections action.
agreement_idvarchar(24)Agreement being collected.
applicant_idvarchar(16)Borrower.
action_codevarchar(24)Action taken or notice served.
action_datedateDate of the action.
months_in_arrearsintegerMonths in arrears when the action was taken.
arrears_balance_gbpnumeric(8,2)Arrears balance at the time.

+2 more columns in crd_collections_activity. The full schema ships with the download.

crd_defaults· Rows: 1,006
ColumnTypeDescription
default_idvarchar(24)Surrogate key for the default.
agreement_idvarchar(24)Agreement that defaulted.
applicant_idvarchar(16)Borrower.
application_idvarchar(24)Application the agreement came from, so the default can be joined back to what was known at decision time.
defaulted_ondateDate default was reached.
months_on_book_at_defaultintegerMonths since drawdown at the point of default.
balance_at_default_gbpnumeric(9,2)Balance outstanding at default.

+8 more columns in crd_defaults. The full schema ships with the download.

crd_charge_offs· Rows: 358
ColumnTypeDescription
charge_off_idvarchar(24)Surrogate key for the charge off.
agreement_idvarchar(24)Agreement written off.
applicant_idvarchar(16)Borrower.
charged_off_ondateDate of write off.
balance_gbpnumeric(9,2)Balance at write off.
loss_amount_gbpnumeric(9,2)Loss recognised.
loss_given_defaultnumeric(7,4)Proportion of the balance actually lost.

+2 more columns in crd_charge_offs. The full schema ships with the download.

crd_recoveries· Rows: 189
ColumnTypeDescription
recovery_idvarchar(24)Surrogate key for the recovery.
agreement_idvarchar(24)Agreement recovered against.
applicant_idvarchar(16)Borrower.
received_ondateDate the cash was received.
amount_gbpnumeric(8,2)Amount recovered. Recoveries arrive slowly and never in full, and much of the tail falls outside a forty-two month window.
recovery_sourcevarchar(24)Where the money came from: agency collection, direct customer payment, or debt sale proceeds.
crd_vintage_performance· Rows: 294
ColumnTypeDescription
vintage_idvarchar(24)Surrogate key for the vintage row.
origination_monthvarchar(16)Month the cohort was written in.
product_codevarchar(24)Product written.
agreements_writtenintegerAgreements in the cohort.
advanced_gbpintegerAmount advanced to the cohort.
observed_at_6mintegerAgreements in the cohort that have reached six months on book.
defaults_by_6mintegerOf those, how many had defaulted by six months.

+9 more columns in crd_vintage_performance. The full schema ships with the download.

crd_monthly_originations· Rows: 42
ColumnTypeDescription
origination_month_idvarchar(16)Surrogate key for the month row.
metric_monthvarchar(16)Month the metrics cover.
bank_rate_pctnumeric(5,2)Bank Rate that month.
applicationsintegerApplications received.
approvedintegerApplications approved.
declinedintegerApplications declined.
approval_rate_pctnumeric(7,3)Approvals as a percentage of applications. This falls as Bank Rate rises, because the cutoff tightens and demand thins at the same time.

+8 more columns in crd_monthly_originations. The full schema ships with the download.

crd_monthly_portfolio· Rows: 42
ColumnTypeDescription
portfolio_month_idvarchar(16)Surrogate key for the month row.
metric_monthvarchar(16)Month the metrics cover.
bank_rate_pctnumeric(5,2)Bank Rate that month.
open_agreementsintegerAgreements open at month end.
closing_balance_gbpnumeric(12,2)Total balance outstanding at month end.
stage_1_accountsintegerAgreements in IFRS 9 stage 1.
stage_2_accountsintegerAgreements in stage 2, meaning credit risk has increased significantly since origination.

+11 more columns in crd_monthly_portfolio. The full schema ships with the download.

crd_monthly_roll_rates· Rows: 581
ColumnTypeDescription
roll_rate_idvarchar(24)Surrogate key for the transition cell.
metric_monthvarchar(16)Month of the transition.
from_statusvarchar(16)Arrears status at the start of the month.
to_statusvarchar(16)Arrears status at the end of the month.
accountsintegerAgreements making this transition.
from_status_totalintegerTotal agreements starting the month in the from status.
roll_rate_pctnumeric(8,3)Transitions as a percentage of the from status population. This matrix is the number a collections operation is judged on.

+2 more columns in crd_monthly_roll_rates. The full schema ships with the download.

crd_broker_performance· Rows: 22
ColumnTypeDescription
broker_performance_idvarchar(24)Surrogate key for the broker summary.
broker_idvarchar(16)Broker summarised.
agreements_writtenintegerAgreements introduced by the broker.
advanced_gbpintegerAmount advanced on introduced business.
average_application_scoreintegerAverage score of the applicants introduced.
defaultsintegerIntroduced agreements that defaulted.
default_rate_pctnumeric(7,3)Default rate on introduced business. A broker writing materially worse business than the book average is the most common source of conduct risk in intermediated lending.

+1 more columns in crd_broker_performance. The full schema ships with the download.

crd_applicant_contacts· Rows: 82,310
ColumnTypeDescription
contact_idvarchar(16)Surrogate key for the contact record.
applicant_idvarchar(16)Applicant the contact belongs to.
contact_typevarchar(16)Whether the contact is a mobile number or an email address.
contact_valuevarchar(56)The contact value. Numbers sit in the Ofcom 07700 900xxx drama range, which is reserved and never allocated, and email domains were resolved and discarded if live.
is_preferredvarchar(16)Y when this is the preferred contact method.
marketing_consentvarchar(16)Y when the applicant consented to marketing contact.
crd_brokers· Rows: 22
ColumnTypeDescription
broker_idvarchar(16)Surrogate key for the broker.
broker_namevarchar(40)Broker trading name. The firm is generated and does not exist.
fca_firm_referencevarchar(8)FCA firm reference number. Format correct and not an allocated reference.
broker_domainvarchar(32)Broker website domain. Resolved at build time and discarded if it answered.
city_idvarchar(16)City the broker operates from.
appointed_ondateDate the broker was appointed as an introducer.
crd_scorecards· Rows: 2
ColumnTypeDescription
scorecard_idvarchar(8)Scorecard version identifier.
scorecard_namevarchar(32)Scorecard name.
effective_fromdateDate the scorecard came into force.
effective_todateDate the scorecard was retired.
gini_at_buildnumeric(5,2)Discrimination the scorecard achieved when it was built. The scorecard is a MODEL of creditworthiness and carries its own error on top of the credit reference agency measurement error.
crd_base_rate_history· Rows: 42
ColumnTypeDescription
rate_monthvarchar(16)Month the rate applied from.
bank_rate_pctnumeric(5,2)Bank of England Bank Rate in force that month. This is the real published series, not a modelled path.
change_from_previous_pctnumeric(5,2)Change in Bank Rate from the previous month, in percentage points.
policy_phasevarchar(24)Where the month sits in the cycle: rising, holding at the peak, cutting, or holding after cuts.
crd_products· Rows: 7
ColumnTypeDescription
product_codevarchar(24)Product code.
product_namevarchar(56)Product name as a customer would see it.
product_classvarchar(24)Whether the product amortises on a schedule, revolves, or is secured instalment credit.
min_advance_gbpintegerSmallest advance the product is written for.
max_advance_gbpintegerLargest advance the product is written for.
min_term_monthsintegerShortest term available. Zero for revolving credit, which has no term.
max_term_monthsintegerLongest term available. Zero for revolving credit.

+4 more columns in crd_products. The full schema ships with the download.

crd_credit_reference_agencies· Rows: 3
ColumnTypeDescription
bureau_codevarchar(16)Credit reference agency code.
bureau_namevarchar(16)Agency name. These are the three real United Kingdom credit reference agencies; every score attributed to them here is generated.
score_minintegerBottom of the score range the agency publishes.
score_maxintegerTop of the score range the agency publishes.
score_medianintegerMedian score on that scale.
band_schemevarchar(48)The banding scheme the agency describes scores against.
search_sharenumeric(5,2)Share of searches routed to this agency, as a proportion.

+1 more columns in crd_credit_reference_agencies. The full schema ships with the download.

crd_score_bands· Rows: 5
ColumnTypeDescription
band_codevarchar(16)Band code.
band_namevarchar(16)Band name as a consumer would see it described.
percentile_fromnumeric(5,2)Bottom of the creditworthiness percentile range this band covers.
percentile_tonumeric(5,2)Top of the percentile range.
observed_default_ratenumeric(6,3)Default rate actually observed in this band, as a proportion.
crd_channels· Rows: 7
ColumnTypeDescription
channel_codevarchar(24)Acquisition channel code.
channel_namevarchar(32)Channel name.
channel_classvarchar(24)Whether business arrives direct or through an intermediary.
application_sharenumeric(6,3)Share of applications from this channel, as a proportion.
commission_ratenumeric(6,3)Commission paid on intermediated business, as a proportion of the advance. Zero on direct channels.
crd_decision_reasons· Rows: 15
ColumnTypeDescription
reason_codevarchar(40)Reason code.
reason_descriptionvarchar(80)What the reason means, in the terms a lender would have to explain it.
reason_classvarchar(24)Whether the reason is a policy rule, a credit risk judgement, an affordability judgement or a fraud concern. This split is the most analytically important column in the reference data.
incidence_sharenumeric(6,3)Share of declines attributable to this reason, as a proportion.
is_retriablevarchar(16)Y when the applicant could reasonably reapply and succeed later.
crd_employment_types· Rows: 8
ColumnTypeDescription
employment_codevarchar(24)Employment category code.
employment_namevarchar(24)Employment category name.
population_sharenumeric(6,3)Share of applicants in this category, as a proportion.
income_factornumeric(5,2)Multiplier applied to full time equivalent income for this category.
verifiabilitynumeric(5,2)Probability that income in this category can be verified. Self employed income is the hardest to prove and that shows up in decline reasons.
crd_residential_statuses· Rows: 6
ColumnTypeDescription
residential_codevarchar(24)Residential status code.
residential_namevarchar(32)Residential status name.
population_sharenumeric(6,3)Share of applicants with this status, as a proportion.
risk_weightnumeric(5,2)Contribution this status makes to credit risk. Negative values reduce risk.
crd_arrears_statuses· Rows: 11
ColumnTypeDescription
arrears_statusvarchar(24)Arrears status code.
arrears_status_namevarchar(40)Arrears status as a United Kingdom lender reports it.
months_in_arrearsintegerWhole months of missed payment the status represents.
performance_classvarchar(16)Whether the status counts as performing, a significant increase in credit risk, default, or closed.
crd_forbearance_types· Rows: 7
ColumnTypeDescription
forbearance_codevarchar(24)Forbearance measure code.
forbearance_namevarchar(40)Forbearance measure as the FCA expects it to be offered.
usage_sharenumeric(6,3)Share of forbearance cases using this measure, as a proportion.
typical_duration_monthsintegerTypical duration. Zero where the measure permanently changes the agreement rather than pausing it.
reported_to_bureauvarchar(16)Y when the measure is reported to the credit reference agencies. Statutory breathing space is not.
crd_ifrs9_stages· Rows: 3
ColumnTypeDescription
ifrs9_stagevarchar(16)IFRS 9 impairment stage.
stage_namevarchar(56)Stage name.
loss_allowance_basisvarchar(40)Whether the allowance is a twelve month or a lifetime expected credit loss.
interest_recognition_basisvarchar(16)Whether interest is recognised on the gross or the net carrying amount. Stage 3 moves to net, which is the accounting consequence of credit impairment.
crd_collections_actions· Rows: 9
ColumnTypeDescription
action_codevarchar(24)Collections action code.
action_namevarchar(48)Collections action or regulatory notice.
action_phasevarchar(16)Whether the action belongs to early arrears, a regulatory requirement, engagement, or late stage recovery.
usage_sharenumeric(5,2)Share of collections actions of this type, as a proportion.
cure_upliftnumeric(5,2)Improvement in the chance the account cures when this action is taken.
crd_expenditure_benchmarks· Rows: 6
ColumnTypeDescription
household_sizevarchar(8)Number of people in the household.
household_descriptionvarchar(32)Household composition the benchmark describes.
housing_gbpintegerBenchmark monthly housing cost.
utilities_gbpintegerBenchmark monthly utilities cost.
food_gbpintegerBenchmark monthly food cost.
transport_gbpintegerBenchmark monthly transport cost.
other_essential_gbpintegerBenchmark monthly other essential spending.

+1 more columns in crd_expenditure_benchmarks. The full schema ships with the download.

crd_loan_purposes· Rows: 10
ColumnTypeDescription
purpose_codevarchar(24)Stated purpose code.
purpose_namevarchar(32)Stated purpose of borrowing.
application_sharenumeric(6,3)Share of applications giving this purpose, as a proportion.
risk_weightnumeric(5,2)Contribution this purpose makes to credit risk. Purpose carries real information: consolidation and holidays perform differently.
crd_cities· Rows: 62
ColumnTypeDescription
city_idvarchar(16)Surrogate key for the city.
city_namevarchar(24)City name.
postcode_areasvarchar(32)Postcode areas serving the city, space separated.

Sample Data

A snapshot of real rows from the dataset (values are fully synthetic).

decision_iddecision_outcomeapplication_scorescore_cutoffcredit_risk_resultaffordability_resultdebt_to_income_ratiomonthly_disposable_income_gbpoffered_apr_pctdecided_on
DEC-1NCCZIBUFXapproved556442passpass0.055387112.572023-01-03
DEC-6LMD8YPF21approved643444passpass0.0608170237.72023-01-02
DEC-XDH05A66PSdeclined591436passfail0.0827-668.062023-01-01

Version History

v1.0.02026-09-02v1.0.0 - first release. Forty-four tables, 299,465 agreement-months across forty-two months of the real Bank Rate cycle. Application to write off for a synthetic UK consumer lender, with both limbs of the FCA creditworthiness test scored separately, IFRS 9 impairment on every agreement-month, and the counterfactual outcome for every declined applicant, which no real lender can observe.

Related Datasets