credit_risk_classificationOpenML #31 ↗Credit G
The German Credit (Credit G) dataset contains 1,000 retail banking records across 20 financial, socio-demographic, and credit history attributes designed to predict individual loan default risk ('good' vs. 'bad' credit).
Business Objective: Credit G
01Business Context
Retail banks and consumer credit institutions evaluate loan applications to allocate personal loans, automotive financing, and consumer credit while minimizing balance sheet risk and non-performing loans (NPLs).
02Analytical Objective
Classify credit applicants into 'good' (creditworthy) or 'bad' (high risk of default) risk profiles prior to capital disbursement.
03Economic & Decision Impact
Optimizing credit scoring delivers immediate capital preservation and higher loan acceptance rates. Asymmetric risk weighting is critical: misclassifying a defaulting customer as good incurs 5x the loss of erroneously rejecting a creditworthy applicant (loss of interest margin vs. full principal loss).
On this classic 1,000-row benchmark, traditional gradient-boosted trees (XGBoost, LightGBM, CatBoost) achieve AUC-ROC scores between 0.77 and 0.79 with extensive feature encoding and cost-matrix tuning. In-context tabular foundation models (TabICL / Carla) match or outperform these tuned baselines zero-shot directly within the context window, eliminating manual one-hot encoding for the 14 categorical features.
Target & Feature Column Definitions
Exhaustive business definitions, measurement units, roles, and target variables across all 21 columns.
| Col | Variable / Feature Name | Role | Type | Unit / Scale | Description & Business Meaning |
|---|---|---|---|---|---|
| A | credit_risk_classificationCredit Risk Outcome | TARGET | CAT | — | Binary creditworthiness evaluation: 'good' indicates timely repayment with no default; 'bad' indicates default or critical repayment delinquency. |
| B | checking_account_statusChecking Account Status | Feature | CAT | DEM | Status of the applicant's existing checking account balance in Deutsche Mark (e.g., '<0 DM', '0<=X<200 DM', '>=200 DM', or 'no checking account'). |
| C | loan_duration_monthsLoan Duration | Feature | NUM | months | Total requested duration and repayment period of the credit contract in months. |
| D | credit_history_statusCredit History | Feature | CAT | — | Historical repayment behavior across past loans (e.g., critical/other credits existing, all loans paid back duly, existing loans paid back duly till now, delays in past payments). |
| E | loan_purposeLoan Purpose | Feature | CAT | — | Stated commercial or personal purpose for borrowing funds (e.g., new car, used car, furniture/equipment, radio/television, domestic appliances, repairs, education, business). |
| F | loan_amount_demCredit Amount | Feature | NUM | DEM | Total principal credit amount requested and disbursed. |
| G | savings_balance_bracketSavings Account Balance | Feature | CAT | DEM | Categorized tier of liquid savings balance or bond holdings (e.g., '<100 DM', '100<=X<500 DM', '500<=X<1000 DM', '>=1000 DM', or 'no known savings'). |
| H | employment_duration_yearsEmployment Tenure | Feature | CAT | years | Duration of continuous employment with current employer (e.g., 'unemployed', '<1 year', '1<=X<4 years', '4<=X<7 years', '>=7 years'). |
| I | installment_rate_pct_incomeInstallment Rate (% Disposable Income) | Feature | NUM | % | Monthly loan installment obligation represented as a percentage of applicant disposable net income. |
| J | marital_status_and_genderPersonal Status & Sex | Feature | CAT | — | Combined demographic attribute representing gender and marital/custody status (e.g., 'male single', 'female div/dep/mar', 'male mar/wid', 'male div/sep'). |
| K | guarantor_co_debtor_statusOther Debtors / Guarantors | Feature | CAT | — | Indicates whether additional parties are liable for the debt facility (e.g., 'none', 'co-applicant', 'guarantor'). |
| L | residence_duration_yearsYears at Current Residence | Feature | NUM | years | Number of years the borrower has continuously lived at their current residential address. |
| M | most_valuable_asset_typeCollateral Property Magnitude | Feature | CAT | — | Highest-value asset category owned by the borrower (e.g., 'real estate', 'building society savings / life insurance', 'car or other', 'unknown / no property'). |
| N | borrower_age_yearsAge | Feature | NUM | years | Age of the primary credit applicant in chronological years. |
| O | other_installment_plansOther Payment Plans | Feature | CAT | — | Existing installment obligations held with competing financial institutions or retail stores (e.g., 'bank', 'stores', 'none'). |
| P | housing_tenure_typeHousing Type | Feature | CAT | — | Applicant living and property arrangement (e.g., 'rent', 'own', 'for free'). |
| Q | num_existing_credits_at_bankExisting Bank Credits | Feature | NUM | count | Number of active credit lines and loans already registered at this specific bank. |
| R | employment_qualification_levelEmployment Qualification Level | Feature | CAT | — | Professional employment classification (e.g., 'unemployed/unskilled non-resident', 'unskilled resident', 'skilled employee/official', 'management/self-employed/highly qualified employee'). |
| S | num_maintenance_liable_dependentsNumber of Dependents | Feature | NUM | count | Number of individuals financially dependent on the applicant for maintenance. |
| T | registered_telephone_flagTelephone Registered | Feature | CAT | — | Indicates whether a landline telephone is registered in the applicant's name ('yes' vs. 'none'). |
| U | is_foreign_workerForeign Worker Status | Feature | CAT | — | Indicator of whether the applicant is classified as a foreign worker ('yes' vs. 'no'). |
Interactive Data Table
Explore rows, feature values, and target labels for Credit G.
TabICLv2 WebGPU Benchmark Results
Complete performance metrics on persisted IID or non-IID evaluation splits, executed 100% locally in the browser sandbox.
| Evaluation Split | Train Rows | Test Rows | Split Duration?Wall-clock inference time taken for this evaluation split running 100% locally via WebGPU.Learn more → | Accuracy?Proportion of correct test predictions across all classes.Google ML Guide & Details → | ROC-AUC?Area under the ROC curve evaluating ranking capability across all thresholds.Google ML Guide & Details → | F1 Score?Harmonic mean of Precision and Recall, robust against class imbalance.Learn more → | Precision?Proportion of predicted positives that were actually positive.Google ML Guide & Details → | Recall?Proportion of actual positive cases successfully captured.Google ML Guide & Details → |
|---|---|---|---|---|---|---|---|---|
| R1 / F1 | 666 | 334 | 1.46s | 77.84% | 0.8554 | 0.8514 | 0.8030 | 0.9060 |
| R1 / F2 | 667 | 333 | 1.38s | 73.57% | 0.7726 | 0.8204 | 0.7821 | 0.8627 |
| R1 / F3 | 667 | 333 | 1.38s | 78.68% | 0.8232 | 0.8588 | 0.8000 | 0.9270 |
| R2 / F1 | 666 | 334 | 1.39s | 74.55% | 0.7431 | 0.8283 | 0.7854 | 0.8761 |
| R2 / F2 | 667 | 333 | 1.41s | 76.88% | 0.8179 | 0.8438 | 0.8000 | 0.8927 |
| R2 / F3 | 667 | 333 | 1.42s | 76.58% | 0.8306 | 0.8440 | 0.7903 | 0.9056 |
| R3 / F1 | 666 | 334 | 1.39s | 75.45% | 0.7734 | 0.8327 | 0.7969 | 0.8718 |
| R3 / F2 | 667 | 333 | 1.40s | 75.08% | 0.7958 | 0.8350 | 0.7778 | 0.9013 |
| R3 / F3 | 667 | 333 | 1.40s | 77.18% | 0.8170 | 0.8486 | 0.7918 | 0.9142 |
| R4 / F1 | 666 | 334 | 1.41s | 77.54% | 0.7895 | 0.8503 | 0.7978 | 0.9103 |
| R4 / F2 | 667 | 333 | 1.38s | 78.08% | 0.8137 | 0.8549 | 0.7963 | 0.9227 |
| R4 / F3 | 667 | 333 | 1.39s | 76.28% | 0.8062 | 0.8410 | 0.7917 | 0.8970 |
| R5 / F1 | 666 | 334 | 1.40s | 74.55% | 0.7723 | 0.8317 | 0.7749 | 0.8974 |
| R5 / F2 | 667 | 333 | 1.41s | 74.77% | 0.8047 | 0.8320 | 0.7790 | 0.8927 |
| R5 / F3 | 667 | 333 | 1.44s | 76.58% | 0.7848 | 0.8415 | 0.7992 | 0.8884 |
| R6 / F1 | 666 | 334 | 1.39s | 73.05% | 0.7627 | 0.8185 | 0.7748 | 0.8675 |
| R6 / F2 | 667 | 333 | 1.41s | 75.98% | 0.7782 | 0.8374 | 0.7954 | 0.8841 |
| R6 / F3 | 667 | 333 | 1.44s | 74.47% | 0.7974 | 0.8323 | 0.7701 | 0.9056 |
| R7 / F1 | 666 | 334 | 1.44s | 75.45% | 0.8023 | 0.8340 | 0.7923 | 0.8803 |
| R7 / F2 | 667 | 333 | 1.41s | 75.38% | 0.7900 | 0.8299 | 0.8032 | 0.8584 |
| R7 / F3 | 667 | 333 | 1.42s | 77.48% | 0.8002 | 0.8509 | 0.7926 | 0.9185 |
| R8 / F1 | 666 | 334 | 1.39s | 78.14% | 0.8129 | 0.8537 | 0.8038 | 0.9103 |
| R8 / F2 | 667 | 333 | 1.42s | 78.68% | 0.8186 | 0.8560 | 0.8115 | 0.9056 |
| R8 / F3 | 667 | 333 | 1.39s | 76.88% | 0.7832 | 0.8444 | 0.7977 | 0.8970 |
| R9 / F1 | 666 | 334 | 1.41s | 79.34% | 0.8083 | 0.8623 | 0.8090 | 0.9231 |
| R9 / F2 | 667 | 333 | 1.41s | 74.77% | 0.7846 | 0.8243 | 0.8041 | 0.8455 |
| R9 / F3 | 667 | 333 | 1.40s | 76.88% | 0.7994 | 0.8481 | 0.7847 | 0.9227 |
| R10 / F1 | 666 | 334 | 1.45s | 76.35% | 0.7782 | 0.8378 | 0.8063 | 0.8718 |
| R10 / F2 | 667 | 333 | 1.42s | 78.08% | 0.8073 | 0.8554 | 0.7941 | 0.9270 |
| R10 / F3 | 667 | 333 | 1.52s | 77.48% | 0.8256 | 0.8503 | 0.7948 | 0.9142 |
| Mean ± Std | — | — | 1.41s | 76.40% ± 1.58% | 0.798 ± 0.023 | 0.842 ± 0.012 | 0.793 | 0.897 |
Foundation Models vs Traditional ML Baselines
Side-by-side evaluation of our in-browser Carla engine (WebGPU), open-source tabular foundation models, and OpenML baselines.
| Rank | Algorithm / Model | Model Family | Runtime | Predictive Accuracy?Proportion of correct test predictions across cross-validation splits.Google ML Guide & Details → | ROC-AUC?Area under the ROC curve evaluating ranking capability.Learn more → | F-Measure?Harmonic mean of precision and recall.Learn more → | Reference / Repo |
|---|---|---|---|---|---|---|---|
| #1 | Google TabFM v1.0 | Tabular Foundation Model | PyTorch/Python | 76.92% | 0.8062 | 0.8439 | google-research/tabfm ↗ |
| #2 | RandomForest | Random Forest | Python | 76.90% | 0.7781 | 0.7490 | OpenML #573537 ↗ |
| #3 | EXAONE Tabular | Tabular Foundation Model | PyTorch/Python | 76.60% | 0.8036 | 0.8424 | LGAI-Research/EXAONE-Tabular ↗ |
| #4 | Streaming nanotabicl | Tabular Foundation Model | PyTorch/Python | 76.50% | 0.7984 | 0.8424 | soda-inria/nanotabicl ↗ |
| #5 | Full TabICLv2 (PyTorch Reference) | Tabular Foundation Model | PyTorch/Python | 76.50% | 0.7984 | 0.8424 | soda-inria/tabicl ↗ |
| #6 | Carla Engine (TabICLv2 WebGPU) | Tabular Foundation Model | Browser | 76.40% | 0.7983 | 0.8417 | 100% In-Browser |
| #7 | nanotabicl Vanilla | Tabular Foundation Model | PyTorch/Python | 76.36% | 0.7980 | 0.8414 | soda-inria/nanotabicl ↗ |
| #8 | TabPFN v3 | Tabular Foundation Model | PyTorch/Python | 76.04% | 0.7969 | 0.8385 | PriorLabs/tabpfn ↗ |
| #9 | NaiveBayes | Naive Bayes | Python | 75.30% | 0.7815 | 0.7452 | OpenML #278 ↗ |
| #10 | AttributeSelectedClassifier GainRatioAttributeEval Ranker NaiveBayes | Naive Bayes | Python | 75.30% | 0.7815 | 0.7452 | OpenML #565955 ↗ |
| #11 | NaiveBayesUpdateable | Naive Bayes | Python | 75.30% | 0.7815 | 0.7452 | OpenML #573619 ↗ |
| #12 | SMO PolyKernel | Support Vector Machine (SVM) | Python | 75.10% | 0.6688 | 0.7399 | OpenML #338 ↗ |
| #13 | SMO PolyKernel | Support Vector Machine (SVM) | Python | 75.10% | 0.6688 | 0.7399 | OpenML #550232 ↗ |
| #14 | AttributeSelectedClassifier GainRatioAttributeEval Ranker SMO | Support Vector Machine (SVM) | Python | 75.10% | 0.6688 | 0.7399 | OpenML #565802 ↗ |
| #15 | RandomRules | Machine Learning Model | Python | 74.60% | 0.6395 | 0.7177 | OpenML #54760 ↗ |
| #16 | AttributeSelectedClassifier A1DE | Machine Learning Model | Python | 74.40% | 0.7462 | 0.7226 | OpenML #575905 ↗ |
| #17 | AttributeSelectedClassifier Bagging REPTree | Decision Tree | Python | 74.20% | 0.7512 | 0.7262 | OpenML #575630 ↗ |
Variable Schema & Summary Distributions
Observed numerical ranges, category cardinalities, missing rates, and sample values across 1,000 rows.
| Col | Variable Name | Type | Missing | Distinct | Summary Stats / Distribution | Sample Values |
|---|---|---|---|---|---|---|
| A | credit_risk_classificationTARGET | CAT | 0 | 2 | 2 cats: good, bad | goodbadgood |
| B | checking_account_status | CAT | 0 | 4 | 4 cats: no checking, <0, 0<=X<200 +1 more | <00<=X<200no checking |
| C | loan_duration_months | NUM | 0 | 33 | [4, 72] μ=20.9 σ=12.1 | 64812 |
| D | credit_history_status | CAT | 0 | 5 | 5 cats: existing paid, critical/other existing credit, delayed previously +2 more | critical/other existing creditexisting paidcritical/other existing credit |
| E | loan_purpose | CAT | 0 | 10 | 10 cats: radio/tv, new car, furniture/equipment +7 more | radio/tvradio/tveducation |
| F | loan_amount_dem | NUM | 0 | 921 | [250, 18424] μ=3271.3 σ=2821.3 | 116959512096 |
| G | savings_balance_bracket | CAT | 0 | 5 | 5 cats: <100, no known savings, 100<=X<500 +2 more | no known savings<100<100 |
| H | employment_duration_years | CAT | 0 | 5 | 5 cats: 1<=X<4, >=7, 4<=X<7 +2 more | >=71<=X<44<=X<7 |
| I | installment_rate_pct_income | NUM | 0 | 4 | [1, 4] μ=3.0 σ=1.1 | 422 |
| J | marital_status_and_gender | CAT | 0 | 4 | 4 cats: male single, female div/dep/mar, male mar/wid +1 more | male singlefemale div/dep/marmale single |
| K | guarantor_co_debtor_status | CAT | 0 | 3 | 3 cats: none, guarantor, co applicant | nonenonenone |
| L | residence_duration_years | NUM | 0 | 4 | [1, 4] μ=2.8 σ=1.1 | 423 |
| M | most_valuable_asset_type | CAT | 0 | 4 | 4 cats: car, real estate, life insurance +1 more | real estatereal estatereal estate |
| N | borrower_age_years | NUM | 0 | 53 | [19, 75] μ=35.5 σ=11.4 | 672249 |
| O | other_installment_plans | CAT | 0 | 3 | 3 cats: none, bank, stores | nonenonenone |
| P | housing_tenure_type | CAT | 0 | 3 | 3 cats: own, rent, for free | ownownown |
| Q | num_existing_credits_at_bank | NUM | 0 | 4 | [1, 4] μ=1.4 σ=0.6 | 211 |
| R | employment_qualification_level | CAT | 0 | 4 | 4 cats: skilled, unskilled resident, high qualif/self emp/mgmt +1 more | skilledskilledunskilled resident |
| S | num_maintenance_liable_dependents | NUM | 0 | 2 | [1, 2] μ=1.2 σ=0.4 | 112 |
| T | registered_telephone_flag | CAT | 0 | 2 | 2 cats: none, yes | yesnonenone |
| U | is_foreign_worker | CAT | 0 | 2 | 2 cats: yes, no | yesyesyes |
Frequently Asked Questions: Credit G
Common questions regarding the Credit G dataset, machine learning task formulations, and in-browser tabular inference.
What is the German Credit (Credit G) dataset used for?
The German Credit dataset is a canonical benchmark for evaluating credit risk classification, cost-sensitive learning algorithms, and fairness-aware machine learning in consumer lending.
Can I run zero-server predictions on this dataset in Google Sheets?
Yes, Carla HQ enables zero-server in-context tabular prediction directly in spreadsheets using TabICL foundation models without building pipelines or training infrastructure.
What machine learning models perform best on the German Credit dataset?
Gradient boosting frameworks (LightGBM, XGBoost, CatBoost) and modern in-context tabular foundation models (TabICL / Carla) achieve leading performance (0.78-0.80 AUC-ROC) on this dataset.
Test TabICLv2 on Credit G Yourself
Open the pre-loaded Google Sheet and let Carla configure the target and task for local, zero-cloud tabular machine learning.
Launch Carla
Click once to open the spreadsheet and Carla side panel together.
Review the Setup
Carla selects the dataset target and task from this page automatically.
Evaluate & Predict
Run predictions and compute metrics with zero server uploads.
Provenance & Attribution
https://archive.ics.uci.edu/ml/citation_policy.html