// pd scorecard
Fill in five basic figures about a loan applicant and the scorecard returns a probability of default, a point score and a rating grade from 1 to 10. If you want the detail, open the advanced questions. Everything recalculates live and nothing is sent anywhere.
Basic questions
Four figures from the credit register. Leave them as they are and the calculator assumes a typical applicant — but this is where the score moves most.
Estimated probability of default
——
Score
—
Portfolio position
—
Observed default in sample
—
A demo model on public data — not a credit decision and not advice. What this actually is →
Where your score sits
Each band is a rating grade. One band (20 points) = one doubling of the odds of default.
Which answers earned points and which cost them
Every variable contributes its own points. The dashed line at 61 is the neutral level — above it the answer helped you, below it it hurt.
What would help most
How many points you would gain if a single answer moved to its best bin and everything else stayed the same.
| Grade | Score | Predicted PD | Observed (train) | Observed (valid.) | % of portfolio |
|---|
// under the hood
The model
A probability-of-default scorecard built on the public HMEQ dataset — 5,960 US home-equity loan applications from the 1990s, of which 19.9% ended in default. The method is textbook: variables are cut into bins, each bin gets a weight of evidence and those feed a logistic regression. The model uses 8 variables, fitted on a 70% training sample (n = 4,172) and validated on the remaining 30% (n = 1,788). Gini is 0.827 on training and 0.802 on validation — a small gap, so the model has not overfitted.
How the score is built
The weight of evidence WoE = ln(%good / %bad) says how far a given bin
shifts the odds of repayment against the average. The logistic regression turns those
weights into a logit, the logit gives the probability of default, and the score is just
a linear rescaling of the same number: 20 points = one doubling of the odds,
600 points = odds of 50:1. Score and PD are therefore the same statement
twice and can never disagree. The theoretical range is 218 to 664 points;
real applicants in the data spanned 273 to 660. The neutral level for a single variable
is 61 points — hence the dashed line in the chart.
The eight variables
How the debt-to-income ratio is derived
The calculator does not ask for DTI directly; it derives it as
loan ÷ annual income × 100. That is a simplification: in the dataset DTI is
defined as monthly debt service over monthly income, whereas here it is total new debt
over annual income. It ranks applicants in much the same way, but the numbers are not
interchangeable with a bank’s DTI. The loan amount enters the model in no other
way than through this ratio — the amount itself carries no weight of its own.
Currency
The bin edges for property value are the original dollar ones (50, 65, 85 and
170 thousand 1990s dollars). The CZK switch is only a convenience: it converts at
1 USD ≈ 21 CZK and does nothing about the fact that a 1990s dollar
had a different purchasing power than today’s koruna. Treat the CZK amounts as
indicative only.
A missing value is not a blank
“Don’t know” is not a way around the question — for three variables a missing value is a modelled category of its own, with its own weight. Applicants in the data who left the debt-to-income ratio blank defaulted in 62.5% of cases against 8.6% for those who filled it in — the single strongest signal in the whole model. For a blank property value it is 91.9%. For the other five variables “don’t know” simply folds into the most common bin.
What not to read into it
Predicted PD reproduces the average default rate of its own training sample (19.9%), which is a case-study dataset rather than a portfolio — the levels are illustrative, it is the ranking that holds up. The “observed” columns in the rating table come from a few hundred applicants per grade, so they carry visible sampling noise; read them as historical outcomes, not a forecast. The grade-5/6 inversion on the training sample is statistically insignificant (p = 0.62) and the pair orders correctly on validation — I left it exactly as it came out.