---
id: "credit-g"
slug: "credit-g"
name: "Credit G"
domain: "Finance & Banking"
taskType: "binary_classification"
numRows: 1000
numColumns: 21
targetColumn: "credit_risk_classification"
primaryMetric: "1 - AUC Error"
primaryScore: "0.2016"
parquetUrl: "https://huggingface.co/datasets/carlahq/demo-tabular-benchmarks/resolve/main/data/credit-g/credit-g.parquet"
spreadsheetUrl: "https://docs.google.com/spreadsheets/d/1__S4ZW9eKPZ8BA-z2vdVWG8hnvEEfsd4HT6bHetJox0/edit?usp=sharing"
canonicalUrl: "https://carlahq.eu/datasets/credit-g"
---

# Dataset: Credit G (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).

## Dataset Overview

| Attribute | Value |
| :--- | :--- |
| **Task Type** | `binary_classification` |
| **Business Domain** | Finance & Banking |
| **Target Column** | `credit_risk_classification` |
| **Rows (Instances)** | 1,000 |
| **Features (Columns)** | 21 |
| **Primary Evaluation Metric** | 1 - AUC Error |
| **Best Benchmark Score** | **0.2016** |

## Business Decision Context
**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).
**Objective:** Classify credit applicants into 'good' (creditworthy) or 'bad' (high risk of default) risk profiles prior to capital disbursement.
**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).

## Feature Schema
| Column Name | Data Type | Role | Distinct Values | Missing Values (%) | Description |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `credit_risk_classification` | `categorical` | target | 2 | 0 | Binary creditworthiness evaluation: 'good' indicates timely repayment with no default; 'bad' indicates default or critical repayment delinquency. |
| `checking_account_status` | `categorical` | feature | 4 | 0 | 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'). |
| `loan_duration_months` | `numeric` | feature | 33 | 0 | Total requested duration and repayment period of the credit contract in months. |
| `credit_history_status` | `categorical` | feature | 5 | 0 | 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). |
| `loan_purpose` | `categorical` | feature | 10 | 0 | Stated commercial or personal purpose for borrowing funds (e.g., new car, used car, furniture/equipment, radio/television, domestic appliances, repairs, education, business). |
| `loan_amount_dem` | `numeric` | feature | 921 | 0 | Total principal credit amount requested and disbursed. |
| `savings_balance_bracket` | `categorical` | feature | 5 | 0 | 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'). |
| `employment_duration_years` | `categorical` | feature | 5 | 0 | Duration of continuous employment with current employer (e.g., 'unemployed', '<1 year', '1<=X<4 years', '4<=X<7 years', '>=7 years'). |
| `installment_rate_pct_income` | `numeric` | feature | 4 | 0 | Monthly loan installment obligation represented as a percentage of applicant disposable net income. |
| `marital_status_and_gender` | `categorical` | feature | 4 | 0 | Combined demographic attribute representing gender and marital/custody status (e.g., 'male single', 'female div/dep/mar', 'male mar/wid', 'male div/sep'). |
| `guarantor_co_debtor_status` | `categorical` | feature | 3 | 0 | Indicates whether additional parties are liable for the debt facility (e.g., 'none', 'co-applicant', 'guarantor'). |
| `residence_duration_years` | `numeric` | feature | 4 | 0 | Number of years the borrower has continuously lived at their current residential address. |
| `most_valuable_asset_type` | `categorical` | feature | 4 | 0 | Highest-value asset category owned by the borrower (e.g., 'real estate', 'building society savings / life insurance', 'car or other', 'unknown / no property'). |
| `borrower_age_years` | `numeric` | feature | 53 | 0 | Age of the primary credit applicant in chronological years. |
| `other_installment_plans` | `categorical` | feature | 3 | 0 | Existing installment obligations held with competing financial institutions or retail stores (e.g., 'bank', 'stores', 'none'). |
| `housing_tenure_type` | `categorical` | feature | 3 | 0 | Applicant living and property arrangement (e.g., 'rent', 'own', 'for free'). |
| `num_existing_credits_at_bank` | `numeric` | feature | 4 | 0 | Number of active credit lines and loans already registered at this specific bank. |
| `employment_qualification_level` | `categorical` | feature | 4 | 0 | Professional employment classification (e.g., 'unemployed/unskilled non-resident', 'unskilled resident', 'skilled employee/official', 'management/self-employed/highly qualified employee'). |
| `num_maintenance_liable_dependents` | `numeric` | feature | 2 | 0 | Number of individuals financially dependent on the applicant for maintenance. |
| `registered_telephone_flag` | `categorical` | feature | 2 | 0 | Indicates whether a landline telephone is registered in the applicant's name ('yes' vs. 'none'). |
| `is_foreign_worker` | `categorical` | feature | 2 | 0 | Indicator of whether the applicant is classified as a foreign worker ('yes' vs. 'no'). |

## Empirical Benchmark Leaderboard
| Rank | Algorithm / Model | Model Family | Runtime | Accuracy | ROC AUC | F1-Score |
| :--- | :--- | :--- | :--- | :--- | :--- | :--- |
| 1 | **Google TabFM v1.0** | Tabular Foundation Model | PyTorch/Python | **76.92%** | 0.8062 | 0.8439 |
| 2 | **RandomForest** | Random Forest | Python | **76.90%** | 0.7781 | 0.7490 |
| 3 | **EXAONE Tabular** | Tabular Foundation Model | PyTorch/Python | **76.60%** | 0.8036 | 0.8424 |
| 4 | **Streaming nanotabicl** | Tabular Foundation Model | PyTorch/Python | **76.50%** | 0.7984 | 0.8424 |
| 5 | **Full TabICLv2 (PyTorch Reference)** | Tabular Foundation Model | PyTorch/Python | **76.50%** | 0.7984 | 0.8424 |
| 6 | **Carla Engine (TabICLv2 WebGPU)** | Tabular Foundation Model | Browser | **76.40%** | 0.7983 | 0.8417 |
| 7 | **nanotabicl Vanilla** | Tabular Foundation Model | PyTorch/Python | **76.36%** | 0.7980 | 0.8414 |
| 8 | **TabPFN v3** | Tabular Foundation Model | PyTorch/Python | **76.04%** | 0.7969 | 0.8385 |
| 9 | **NaiveBayes** | Naive Bayes | Python | **75.30%** | 0.7815 | 0.7452 |
| 10 | **AttributeSelectedClassifier GainRatioAttributeEval Ranker NaiveBayes** | Naive Bayes | Python | **75.30%** | 0.7815 | 0.7452 |
| 11 | **NaiveBayesUpdateable** | Naive Bayes | Python | **75.30%** | 0.7815 | 0.7452 |
| 12 | **SMO PolyKernel** | Support Vector Machine (SVM) | Python | **75.10%** | 0.6688 | 0.7399 |
| 13 | **SMO PolyKernel** | Support Vector Machine (SVM) | Python | **75.10%** | 0.6688 | 0.7399 |
| 14 | **AttributeSelectedClassifier GainRatioAttributeEval Ranker SMO** | Support Vector Machine (SVM) | Python | **75.10%** | 0.6688 | 0.7399 |
| 15 | **RandomRules** | Machine Learning Model | Python | **74.60%** | 0.6395 | 0.7177 |

### Repeated Cross-Validation Fold Scores (TabICLv2 Reference)
| Fold | Train Samples | Test Samples | Metric Score | Latency |
| :--- | :--- | :--- | :--- | :--- |
| Fold 0 | 666 | 334 | 0.1453 | 958ms |
| Fold 1 | 667 | 333 | 0.2275 | 876ms |
| Fold 2 | 667 | 333 | 0.1772 | 890ms |
| Fold 0 | 666 | 334 | 0.2585 | 900ms |
| Fold 1 | 667 | 333 | 0.1824 | 898ms |
| Fold 2 | 667 | 333 | 0.1667 | 872ms |
| Fold 0 | 666 | 334 | 0.2252 | 883ms |
| Fold 1 | 667 | 333 | 0.2075 | 891ms |
| Fold 2 | 667 | 333 | 0.1858 | 900ms |
| Fold 0 | 666 | 334 | 0.2104 | 869ms |
| Fold 1 | 667 | 333 | 0.1922 | 885ms |
| Fold 2 | 667 | 333 | 0.1937 | 882ms |
| Fold 0 | 666 | 334 | 0.2201 | 897ms |
| Fold 1 | 667 | 333 | 0.1947 | 867ms |
| Fold 2 | 667 | 333 | 0.2160 | 904ms |
| Fold 0 | 666 | 334 | 0.2359 | 883ms |
| Fold 1 | 667 | 333 | 0.2168 | 880ms |
| Fold 2 | 667 | 333 | 0.2062 | 883ms |
| Fold 0 | 666 | 334 | 0.1937 | 878ms |
| Fold 1 | 667 | 333 | 0.2122 | 873ms |
| Fold 2 | 667 | 333 | 0.2008 | 887ms |
| Fold 0 | 666 | 334 | 0.1843 | 867ms |
| Fold 1 | 667 | 333 | 0.1847 | 895ms |
| Fold 2 | 667 | 333 | 0.2143 | 893ms |
| Fold 0 | 666 | 334 | 0.1908 | 903ms |
| Fold 1 | 667 | 333 | 0.2184 | 880ms |
| Fold 2 | 667 | 333 | 0.1985 | 902ms |
| Fold 0 | 666 | 334 | 0.2202 | 872ms |
| Fold 1 | 667 | 333 | 0.1922 | 890ms |
| Fold 2 | 667 | 333 | 0.1771 | 887ms |

## Provenance & Downloadable Artifacts
- **Dataset Parquet File:** [Direct Parquet Download](https://huggingface.co/datasets/carlahq/demo-tabular-benchmarks/resolve/main/data/credit-g/credit-g.parquet)
- **Google Sheets Interactive Demo:** [Open in Google Sheets](https://docs.google.com/spreadsheets/d/1__S4ZW9eKPZ8BA-z2vdVWG8hnvEEfsd4HT6bHetJox0/edit?usp=sharing)
- **OpenML Source:** [OpenML Dataset](https://www.openml.org/d/31)
- **Academic Paper / Citation:** [Read Research Paper](https://archive.ics.uci.edu/dataset/144/statlog+german+credit+data)
- **Canonical HTML Page:** [https://carlahq.eu/datasets/credit-g](https://carlahq.eu/datasets/credit-g)
