Consumer Credit Risk and Lending Decisioning Set (GB)
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.
Row Counts by Table
Counted from the files that ship, not estimated.
| Table | Rows |
|---|---|
| crd_applicants | 46,000 |
| crd_decisions | 65,767 |
| crd_applications | 65,767 |
| crd_reject_inference | 43,122 |
| crd_agreements | 15,071 |
| crd_agreement_months | 299,465 |
| crd_income_expenditure | 46,000 |
| crd_bureau_pulls | 65,767 |
| crd_bureau_accounts | 202,228 |
| crd_bureau_searches | 105,878 |
| crd_public_records | 1,763 |
| crd_scores | 65,767 |
| crd_decision_reasons_applied | 71,793 |
| crd_offers | 22,645 |
| crd_payments | 290,492 |
| crd_arrears_events | 265,799 |
| crd_forbearance | 2,253 |
| crd_collections_activity | 34,118 |
| crd_defaults | 1,006 |
| crd_charge_offs | 358 |
| crd_recoveries | 189 |
| crd_vintage_performance | 294 |
| crd_monthly_originations | 42 |
| crd_monthly_portfolio | 42 |
| crd_monthly_roll_rates | 581 |
| crd_broker_performance | 22 |
| crd_applicant_contacts | 82,310 |
| crd_brokers | 22 |
| crd_scorecards | 2 |
| crd_base_rate_history | 42 |
| crd_products | 7 |
| crd_credit_reference_agencies | 3 |
| crd_score_bands | 5 |
| crd_channels | 7 |
| crd_decision_reasons | 15 |
| crd_employment_types | 8 |
| crd_residential_statuses | 6 |
| crd_arrears_statuses | 11 |
| crd_forbearance_types | 7 |
| crd_ifrs9_stages | 3 |
| crd_collections_actions | 9 |
| crd_expenditure_benchmarks | 6 |
| crd_loan_purposes | 10 |
| crd_cities | 62 |
Table Relationships
One parent record and seven child tables, each joined back on the same key.
Schema
Every table ships with typed columns, referential integrity, and documentation.
| Column | Type | Description |
|---|---|---|
| applicant_id | varchar(16) | Surrogate key for the applicant. |
| customer_reference | varchar(16) | Customer reference as the lender would hold it. Derived from a keyed hash rather than issued in sequence. |
| first_name | varchar(16) | Applicant first name. The person is generated. |
| last_name | varchar(24) | Applicant last name. |
| date_of_birth | date | Date of birth. |
| age_years | integer | Age in years at the end of the window. |
| city_id | varchar(16) | City the applicant lives in. |
+11 more columns in crd_applicants. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| decision_id | varchar(24) | Surrogate key for the decision. |
| application_id | varchar(24) | Application decided. |
| applicant_id | varchar(16) | Applicant decided on. |
| decided_on | date | Date of the decision. |
| decision_outcome | varchar(16) | Approved or declined. |
| application_score | integer | Score the applicant achieved. |
| score_cutoff | integer | Cutoff 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.
| Column | Type | Description |
|---|---|---|
| application_id | varchar(24) | Surrogate key for the application. |
| application_reference | varchar(16) | Application reference as the customer would quote it. |
| applicant_id | varchar(16) | Applicant applying. |
| product_code | varchar(24) | Product applied for. |
| channel_code | varchar(24) | Channel the application arrived through. |
| broker_id | varchar(16) | Introducing broker. Empty on direct applications. |
| purpose_code | varchar(24) | Stated purpose of borrowing. |
+4 more columns in crd_applications. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| reject_inference_id | varchar(24) | Surrogate key for the counterfactual record. |
| application_id | varchar(24) | Declined application. |
| applicant_id | varchar(16) | Applicant who was declined. |
| applied_on | date | Date of the application. |
| product_code | varchar(24) | Product applied for. |
| requested_amount_gbp | integer | Amount requested. |
| requested_term_months | integer | Term requested. Empty for revolving credit. |
+13 more columns in crd_reject_inference. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| agreement_id | varchar(24) | Surrogate key for the agreement. |
| agreement_number | varchar(24) | Agreement number as it appears on the credit agreement. |
| application_id | varchar(24) | Application the agreement came from. |
| applicant_id | varchar(16) | Borrower. |
| product_code | varchar(24) | Product written. |
| channel_code | varchar(24) | Channel the business arrived through. |
| broker_id | varchar(16) | Introducing broker. Empty on direct business. |
+16 more columns in crd_agreements. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| agreement_month_id | varchar(24) | Surrogate key for the agreement-month. |
| agreement_id | varchar(24) | Agreement observed. |
| applicant_id | varchar(16) | Borrower. |
| observation_month | varchar(16) | Month of observation. |
| months_on_book | integer | Months since drawdown. Consumer credit losses concentrate between months six and eighteen, so this is a first-order feature. |
| balance_gbp | numeric(9,2) | Balance outstanding at month end. |
| payment_due_gbp | numeric(8,2) | Contractual payment due that month. |
+15 more columns in crd_agreement_months. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| income_expenditure_id | varchar(16) | Surrogate key for the income and expenditure assessment. |
| applicant_id | varchar(16) | Applicant assessed. |
| net_monthly_income_gbp | integer | Applicant net monthly income after tax and national insurance. |
| partner_net_income_gbp | integer | Partner net monthly income where the household has a second earner. Zero otherwise. |
| household_net_income_gbp | integer | Total household net monthly income. Affordability is assessed at household level, because the expenditure benchmarks are household figures. |
| housing_cost_gbp | integer | Monthly housing cost, moved by tenure. |
| utilities_gbp | integer | Monthly utilities cost. |
+8 more columns in crd_income_expenditure. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| bureau_pull_id | varchar(24) | Surrogate key for the search. |
| application_id | varchar(24) | Application the search was run for. |
| applicant_id | varchar(16) | Applicant searched. |
| bureau_code | varchar(16) | Agency searched. |
| pulled_on | date | Date of the search. |
| bureau_score | integer | Score 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_band | varchar(16) | Band the score falls in. |
+7 more columns in crd_bureau_pulls. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| bureau_account_id | varchar(24) | Surrogate key for the reported account. |
| applicant_id | varchar(16) | Applicant holding the account. |
| bureau_code | varchar(16) | Agency reporting it. |
| account_type | varchar(24) | Kind of credit agreement held elsewhere. |
| opened_on | date | Date the account was opened. |
| credit_limit_gbp | integer | Credit limit or original advance. |
| balance_gbp | integer | Balance 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.
| Column | Type | Description |
|---|---|---|
| search_id | varchar(24) | Surrogate key for the search footprint entry. |
| applicant_id | varchar(16) | Applicant searched. |
| bureau_code | varchar(16) | Agency that recorded the search. |
| searched_on | date | Date of the search. |
| search_type | varchar(16) | Hard search, which is visible to other lenders, or soft, which is not. |
| searching_firm | varchar(24) | Firm that ran the search, including other lenders. |
| product_code | varchar(24) | Product the search related to. |
+1 more columns in crd_bureau_searches. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| public_record_id | varchar(24) | Surrogate key for the public record. |
| applicant_id | varchar(16) | Applicant the record is against. |
| record_type | varchar(16) | County Court Judgment, bankruptcy, individual voluntary arrangement or debt relief order. |
| recorded_on | date | Date the record was made. |
| amount_gbp | integer | Amount of the judgment or the debt at the insolvency date. |
| record_status | varchar(16) | Whether the record is satisfied, unsatisfied, active or discharged. |
| falls_off_on | date | Date 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.
| Column | Type | Description |
|---|---|---|
| score_id | varchar(24) | Surrogate key for the score. |
| application_id | varchar(24) | Application scored. |
| applicant_id | varchar(16) | Applicant scored. |
| scorecard_id | varchar(8) | Scorecard version used. |
| score_type | varchar(16) | Whether the score is an application score or a behavioural score. |
| scored_on | date | Date the score was produced. |
| score_points | integer | Score in points on the lender scale. |
+3 more columns in crd_scores. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| decision_reason_id | varchar(24) | Surrogate key for the applied reason. |
| decision_id | varchar(24) | Decision the reason belongs to. |
| application_id | varchar(24) | Application the reason relates to. |
| reason_code | varchar(40) | Reason applied. |
| reason_class | varchar(24) | Whether the reason is policy, credit risk, affordability or fraud. |
| reason_sequence | integer | Position of the reason in priority order. The first is the primary reason. |
| is_retriable | varchar(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.
| Column | Type | Description |
|---|---|---|
| offer_id | varchar(24) | Surrogate key for the offer. |
| application_id | varchar(24) | Application the offer was made on. |
| decision_id | varchar(24) | Decision that produced the offer. |
| offered_on | date | Date the offer was made. |
| expires_on | date | Date the offer lapses. |
| offered_amount_gbp | integer | Amount offered, which is less than requested on a counter-offer. |
| offered_term_months | integer | Term offered. Empty for revolving credit. |
+6 more columns in crd_offers. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| payment_id | varchar(24) | Surrogate key for the payment. |
| agreement_id | varchar(24) | Agreement paid against. |
| applicant_id | varchar(16) | Borrower. |
| payment_date | date | Date of the payment. |
| amount_gbp | numeric(8,2) | Amount received. |
| amount_due_gbp | numeric(8,2) | Amount that was contractually due. |
| payment_result | varchar(16) | Whether the payment was full, partial or missed. |
+2 more columns in crd_payments. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| arrears_event_id | varchar(24) | Surrogate key for the transition. |
| agreement_id | varchar(24) | Agreement that moved. |
| applicant_id | varchar(16) | Borrower. |
| event_date | date | Date of the transition. |
| arrears_status | varchar(16) | Status after the transition. |
| months_in_arrears | integer | Months in arrears after the transition. |
| arrears_balance_gbp | numeric(8,2) | Arrears balance after the transition. |
+2 more columns in crd_arrears_events. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| forbearance_id | varchar(24) | Surrogate key for the forbearance case. |
| agreement_id | varchar(24) | Agreement forborne. |
| applicant_id | varchar(16) | Borrower. |
| forbearance_code | varchar(24) | Measure granted. |
| started_on | date | Date forbearance started. |
| expected_end_on | date | Date it was expected to end. |
| duration_months | integer | Agreed duration. Empty where the measure permanently changes the agreement. |
+4 more columns in crd_forbearance. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| collections_activity_id | varchar(24) | Surrogate key for the collections action. |
| agreement_id | varchar(24) | Agreement being collected. |
| applicant_id | varchar(16) | Borrower. |
| action_code | varchar(24) | Action taken or notice served. |
| action_date | date | Date of the action. |
| months_in_arrears | integer | Months in arrears when the action was taken. |
| arrears_balance_gbp | numeric(8,2) | Arrears balance at the time. |
+2 more columns in crd_collections_activity. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| default_id | varchar(24) | Surrogate key for the default. |
| agreement_id | varchar(24) | Agreement that defaulted. |
| applicant_id | varchar(16) | Borrower. |
| application_id | varchar(24) | Application the agreement came from, so the default can be joined back to what was known at decision time. |
| defaulted_on | date | Date default was reached. |
| months_on_book_at_default | integer | Months since drawdown at the point of default. |
| balance_at_default_gbp | numeric(9,2) | Balance outstanding at default. |
+8 more columns in crd_defaults. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| charge_off_id | varchar(24) | Surrogate key for the charge off. |
| agreement_id | varchar(24) | Agreement written off. |
| applicant_id | varchar(16) | Borrower. |
| charged_off_on | date | Date of write off. |
| balance_gbp | numeric(9,2) | Balance at write off. |
| loss_amount_gbp | numeric(9,2) | Loss recognised. |
| loss_given_default | numeric(7,4) | Proportion of the balance actually lost. |
+2 more columns in crd_charge_offs. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| recovery_id | varchar(24) | Surrogate key for the recovery. |
| agreement_id | varchar(24) | Agreement recovered against. |
| applicant_id | varchar(16) | Borrower. |
| received_on | date | Date the cash was received. |
| amount_gbp | numeric(8,2) | Amount recovered. Recoveries arrive slowly and never in full, and much of the tail falls outside a forty-two month window. |
| recovery_source | varchar(24) | Where the money came from: agency collection, direct customer payment, or debt sale proceeds. |
| Column | Type | Description |
|---|---|---|
| vintage_id | varchar(24) | Surrogate key for the vintage row. |
| origination_month | varchar(16) | Month the cohort was written in. |
| product_code | varchar(24) | Product written. |
| agreements_written | integer | Agreements in the cohort. |
| advanced_gbp | integer | Amount advanced to the cohort. |
| observed_at_6m | integer | Agreements in the cohort that have reached six months on book. |
| defaults_by_6m | integer | Of those, how many had defaulted by six months. |
+9 more columns in crd_vintage_performance. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| origination_month_id | varchar(16) | Surrogate key for the month row. |
| metric_month | varchar(16) | Month the metrics cover. |
| bank_rate_pct | numeric(5,2) | Bank Rate that month. |
| applications | integer | Applications received. |
| approved | integer | Applications approved. |
| declined | integer | Applications declined. |
| approval_rate_pct | numeric(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.
| Column | Type | Description |
|---|---|---|
| portfolio_month_id | varchar(16) | Surrogate key for the month row. |
| metric_month | varchar(16) | Month the metrics cover. |
| bank_rate_pct | numeric(5,2) | Bank Rate that month. |
| open_agreements | integer | Agreements open at month end. |
| closing_balance_gbp | numeric(12,2) | Total balance outstanding at month end. |
| stage_1_accounts | integer | Agreements in IFRS 9 stage 1. |
| stage_2_accounts | integer | Agreements 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.
| Column | Type | Description |
|---|---|---|
| roll_rate_id | varchar(24) | Surrogate key for the transition cell. |
| metric_month | varchar(16) | Month of the transition. |
| from_status | varchar(16) | Arrears status at the start of the month. |
| to_status | varchar(16) | Arrears status at the end of the month. |
| accounts | integer | Agreements making this transition. |
| from_status_total | integer | Total agreements starting the month in the from status. |
| roll_rate_pct | numeric(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.
| Column | Type | Description |
|---|---|---|
| broker_performance_id | varchar(24) | Surrogate key for the broker summary. |
| broker_id | varchar(16) | Broker summarised. |
| agreements_written | integer | Agreements introduced by the broker. |
| advanced_gbp | integer | Amount advanced on introduced business. |
| average_application_score | integer | Average score of the applicants introduced. |
| defaults | integer | Introduced agreements that defaulted. |
| default_rate_pct | numeric(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.
| Column | Type | Description |
|---|---|---|
| contact_id | varchar(16) | Surrogate key for the contact record. |
| applicant_id | varchar(16) | Applicant the contact belongs to. |
| contact_type | varchar(16) | Whether the contact is a mobile number or an email address. |
| contact_value | varchar(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_preferred | varchar(16) | Y when this is the preferred contact method. |
| marketing_consent | varchar(16) | Y when the applicant consented to marketing contact. |
| Column | Type | Description |
|---|---|---|
| broker_id | varchar(16) | Surrogate key for the broker. |
| broker_name | varchar(40) | Broker trading name. The firm is generated and does not exist. |
| fca_firm_reference | varchar(8) | FCA firm reference number. Format correct and not an allocated reference. |
| broker_domain | varchar(32) | Broker website domain. Resolved at build time and discarded if it answered. |
| city_id | varchar(16) | City the broker operates from. |
| appointed_on | date | Date the broker was appointed as an introducer. |
| Column | Type | Description |
|---|---|---|
| scorecard_id | varchar(8) | Scorecard version identifier. |
| scorecard_name | varchar(32) | Scorecard name. |
| effective_from | date | Date the scorecard came into force. |
| effective_to | date | Date the scorecard was retired. |
| gini_at_build | numeric(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. |
| Column | Type | Description |
|---|---|---|
| rate_month | varchar(16) | Month the rate applied from. |
| bank_rate_pct | numeric(5,2) | Bank of England Bank Rate in force that month. This is the real published series, not a modelled path. |
| change_from_previous_pct | numeric(5,2) | Change in Bank Rate from the previous month, in percentage points. |
| policy_phase | varchar(24) | Where the month sits in the cycle: rising, holding at the peak, cutting, or holding after cuts. |
| Column | Type | Description |
|---|---|---|
| product_code | varchar(24) | Product code. |
| product_name | varchar(56) | Product name as a customer would see it. |
| product_class | varchar(24) | Whether the product amortises on a schedule, revolves, or is secured instalment credit. |
| min_advance_gbp | integer | Smallest advance the product is written for. |
| max_advance_gbp | integer | Largest advance the product is written for. |
| min_term_months | integer | Shortest term available. Zero for revolving credit, which has no term. |
| max_term_months | integer | Longest term available. Zero for revolving credit. |
+4 more columns in crd_products. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| bureau_code | varchar(16) | Credit reference agency code. |
| bureau_name | varchar(16) | Agency name. These are the three real United Kingdom credit reference agencies; every score attributed to them here is generated. |
| score_min | integer | Bottom of the score range the agency publishes. |
| score_max | integer | Top of the score range the agency publishes. |
| score_median | integer | Median score on that scale. |
| band_scheme | varchar(48) | The banding scheme the agency describes scores against. |
| search_share | numeric(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.
| Column | Type | Description |
|---|---|---|
| band_code | varchar(16) | Band code. |
| band_name | varchar(16) | Band name as a consumer would see it described. |
| percentile_from | numeric(5,2) | Bottom of the creditworthiness percentile range this band covers. |
| percentile_to | numeric(5,2) | Top of the percentile range. |
| observed_default_rate | numeric(6,3) | Default rate actually observed in this band, as a proportion. |
| Column | Type | Description |
|---|---|---|
| channel_code | varchar(24) | Acquisition channel code. |
| channel_name | varchar(32) | Channel name. |
| channel_class | varchar(24) | Whether business arrives direct or through an intermediary. |
| application_share | numeric(6,3) | Share of applications from this channel, as a proportion. |
| commission_rate | numeric(6,3) | Commission paid on intermediated business, as a proportion of the advance. Zero on direct channels. |
| Column | Type | Description |
|---|---|---|
| reason_code | varchar(40) | Reason code. |
| reason_description | varchar(80) | What the reason means, in the terms a lender would have to explain it. |
| reason_class | varchar(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_share | numeric(6,3) | Share of declines attributable to this reason, as a proportion. |
| is_retriable | varchar(16) | Y when the applicant could reasonably reapply and succeed later. |
| Column | Type | Description |
|---|---|---|
| employment_code | varchar(24) | Employment category code. |
| employment_name | varchar(24) | Employment category name. |
| population_share | numeric(6,3) | Share of applicants in this category, as a proportion. |
| income_factor | numeric(5,2) | Multiplier applied to full time equivalent income for this category. |
| verifiability | numeric(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. |
| Column | Type | Description |
|---|---|---|
| residential_code | varchar(24) | Residential status code. |
| residential_name | varchar(32) | Residential status name. |
| population_share | numeric(6,3) | Share of applicants with this status, as a proportion. |
| risk_weight | numeric(5,2) | Contribution this status makes to credit risk. Negative values reduce risk. |
| Column | Type | Description |
|---|---|---|
| arrears_status | varchar(24) | Arrears status code. |
| arrears_status_name | varchar(40) | Arrears status as a United Kingdom lender reports it. |
| months_in_arrears | integer | Whole months of missed payment the status represents. |
| performance_class | varchar(16) | Whether the status counts as performing, a significant increase in credit risk, default, or closed. |
| Column | Type | Description |
|---|---|---|
| forbearance_code | varchar(24) | Forbearance measure code. |
| forbearance_name | varchar(40) | Forbearance measure as the FCA expects it to be offered. |
| usage_share | numeric(6,3) | Share of forbearance cases using this measure, as a proportion. |
| typical_duration_months | integer | Typical duration. Zero where the measure permanently changes the agreement rather than pausing it. |
| reported_to_bureau | varchar(16) | Y when the measure is reported to the credit reference agencies. Statutory breathing space is not. |
| Column | Type | Description |
|---|---|---|
| ifrs9_stage | varchar(16) | IFRS 9 impairment stage. |
| stage_name | varchar(56) | Stage name. |
| loss_allowance_basis | varchar(40) | Whether the allowance is a twelve month or a lifetime expected credit loss. |
| interest_recognition_basis | varchar(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. |
| Column | Type | Description |
|---|---|---|
| action_code | varchar(24) | Collections action code. |
| action_name | varchar(48) | Collections action or regulatory notice. |
| action_phase | varchar(16) | Whether the action belongs to early arrears, a regulatory requirement, engagement, or late stage recovery. |
| usage_share | numeric(5,2) | Share of collections actions of this type, as a proportion. |
| cure_uplift | numeric(5,2) | Improvement in the chance the account cures when this action is taken. |
| Column | Type | Description |
|---|---|---|
| household_size | varchar(8) | Number of people in the household. |
| household_description | varchar(32) | Household composition the benchmark describes. |
| housing_gbp | integer | Benchmark monthly housing cost. |
| utilities_gbp | integer | Benchmark monthly utilities cost. |
| food_gbp | integer | Benchmark monthly food cost. |
| transport_gbp | integer | Benchmark monthly transport cost. |
| other_essential_gbp | integer | Benchmark monthly other essential spending. |
+1 more columns in crd_expenditure_benchmarks. The full schema ships with the download.
| Column | Type | Description |
|---|---|---|
| purpose_code | varchar(24) | Stated purpose code. |
| purpose_name | varchar(32) | Stated purpose of borrowing. |
| application_share | numeric(6,3) | Share of applications giving this purpose, as a proportion. |
| risk_weight | numeric(5,2) | Contribution this purpose makes to credit risk. Purpose carries real information: consolidation and holidays perform differently. |
| Column | Type | Description |
|---|---|---|
| city_id | varchar(16) | Surrogate key for the city. |
| city_name | varchar(24) | City name. |
| postcode_areas | varchar(32) | Postcode areas serving the city, space separated. |
Sample Data
A snapshot of real rows from the dataset (values are fully synthetic).
| decision_id | decision_outcome | application_score | score_cutoff | credit_risk_result | affordability_result | debt_to_income_ratio | monthly_disposable_income_gbp | offered_apr_pct | decided_on |
|---|---|---|---|---|---|---|---|---|---|
| DEC-1NCCZIBUFX | approved | 556 | 442 | pass | pass | 0.0553 | 871 | 12.57 | 2023-01-03 |
| DEC-6LMD8YPF21 | approved | 643 | 444 | pass | pass | 0.0608 | 1702 | 37.7 | 2023-01-02 |
| DEC-XDH05A66PS | declined | 591 | 436 | pass | fail | 0.0827 | -66 | 8.06 | 2023-01-01 |
Version History
| v1.0.0 | 2026-09-02 | v1.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
Anti Money Laundering Transaction Monitoring Set (GB)
FinanceFINAML997 is a deterministic synthetic UK corporate banking warehouse: five thousand customer entities, eight thousand accounts, twenty-two thousand counterparties and six hundred thousand payments over twelve months, carrying confirmed laundering patterns and the incumbent monitoring estate that competes with them.
Digital Operational Resilience and ICT Third-Party Risk Analytics Set (EU)
FinanceFINICT999 is a deterministic synthetic EU financial-sector resilience warehouse connecting regulated entities, business functions, ICT assets, providers, contracts, risks, controls, incidents, recovery, testing, audit, remediation and financial effects.
Insurance Underwriting and Claims Analytics Set (GB)
FinanceFININS998 is a deterministic synthetic UK general insurance warehouse: twenty-eight thousand policyholders, ninety-three thousand policy years across fourteen product lines, seventeen thousand claims and a counter-fraud estate, with ground-truth fraud labels that carry the honest value alongside the claimed one.