Study · simulated data · 2026-10-09

Approving personal loans for profit when the default rate breaks

Which applications a lender approves, so that the profit of the loan book is highest, when the book's default rate drops for a year and then rises above its old level. A scorecard, a loan-by-loan rule and a PD level that follows early delinquency, on a simulated book of 72,000 applications.

10.34 M EUR
profit over the test period
12 months, 18,000 applications; recommended rule
+2.02 M EUR
against the level from the latest known year
the level a lender gets by default
71.6%
of applications approved
default rate among them 7.45%, against 12.16% of all applications
0.786 / 0.738
scorecard ROC-AUC, validation / test
boosted model 0.822 / 0.749; it earns less at every level

The study in six sentences

The business questionWhich applications for a personal loan does a lender approve, so that the profit of the loan book is highest?
The decision the business takes with the answerApprove or decline each application, at the time of application.
The rule or model that makes that decisionApprove when the predicted PD of the application is below the break-even PD of its loan, which follows from the loan's interest income, its amount, the LGD and the required margin $m$.
What it earns, in money9.53 M EUR over the test period of 12 months (18,000 applications) with the scorecard at the loan-by-loan rule, against 0.39 M EUR for approving every application and 9.18 M EUR for the scorecard with one fixed cut-off; the boosted model earns 9.35 M EUR at the same rule (the difference to the scorecard lies inside its 95% interval). At the models' PD level, which is 5 points below the test period's default rate of 12.16%; the level options are sentence 5.
The main risk, and what is done about itThe default rate of the book changes abruptly: a payment-relief programme lowers it to 2.9% for a year, and it rises to 12.2% when the programme ends. No application shows this, and at the decision date the latest known default rate is still the programme's. The PD level is set by a monitor: the average before the programme, raised each month in proportion to the early delinquency rate of the latest three months, never lowered. With it the scorecard earns 10.31 M EUR; with the level taken from the latest known year it earns 8.33 M EUR, and from the average before the programme 9.54 M EUR. The level is reviewed every 3 months.
The recommendationAdopt the loan-by-loan rule with the scorecard at the monitor level and a required margin of 0.02 EUR per EUR lent (10.34 M EUR, 71.6% of applications approved), after a champion-challenger test on 20% of applications for 6 months, read at month 3 on early delinquency and decided after 12 months on profit per EUR lent. The boosted model ranks better (ROC-AUC 0.749 against 0.738) and earns less at every level.

The book and the break in its default rate

The simulated book has 1,500 applications in each of 48 months. A payment-relief programme runs from month 19 to month 30: loans applied for in those months show a 12-month default rate of about 3% against 7% before. After the programme the rate rises to 12%. The decision date is the start of month 37; the rule is scored on the applications of months 37 to 48.

At the decision date a 12-month outcome is known for applications up to month 25, all of them before or inside the programme. The only sign of the period after the programme is the early delinquency rate: the share of a month's loans with a missed instalment in their first 3 months, known 3 months after application.

2026-10-09T13:37:09.990825 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ 10 20 30 40 50 application month 0 2 4 6 8 10 12 14 16 share of the month's applications, % point in time 4.7% through the cycle 7.1% stressed 11.3% monitor 9.2% decision date Default rate and early delinquency rate by application month payment-relief programme test period 12-month default rate early delinquency rate
Figure 1. What it shows: the 12-month default rate (solid) and the early delinquency rate (dashed) of each application month, both as a share of that month's 1,500 applications, in %. Shaded: the programme months and the test period; dotted: the decision date. The horizontal lines are the four PD levels a lender could set at the decision date from what is known then, drawn across the test period. Message: the latest known default rate at the decision date is the programme's, about 3%; the early delinquency rate had already risen before the decision date, and it is the only signal of the 12% to come. Made from the simulator's outcomes over all 48 months; the test period's default rate is known here in hindsight only.

The rule

A loan is approved when its predicted probability of default (PD) is below its break-even PD:

PD* = (I − m·A) / (I + LGD·A)

I
interest income of the loan over its term if repaid, in EUR
A
loan amount, in EUR
LGD
loss given default assumed by the rule, the share of the amount lost after recoveries, ratio; 0.65 for every loan
m
required margin, the minimum expected profit per EUR lent, ratio; 0 is the risk-neutral rule

Profit over the test period is the interest income of approved loans that are repaid, minus the realised loss of approved loans that default (their own loss given default times their amount), in EUR. A defaulted loan is counted as paying no interest.

policy, at the models' own PD level of 7.1%profit, M EURapproved, % of applicationsdefault rate among approved, %
approve every application0.39100.012.16
scorecard, one fixed cut-off9.1887.28.62
scorecard, break-even PD per loan9.5382.88.34
boosted model, break-even PD per loan9.3588.18.71
true PD, break-even PD per loan (ceiling for a model)11.7575.66.04
perfect foresight (approve every loan that repays)21.1787.80.00

The loan-by-loan rule earns 0.35 M EUR more than one fixed cut-off with the same scorecard: it declines the loans whose own interest does not cover their own risk. The better-ranking boosted model earns less than the scorecard: at a PD level 5 points below the test period's default rate, both models approve too many loans, and the one that ranks better approves more of them.

The PD level: four ways to set it at the decision date

The PD level is what the book's predicted PDs average to. Each model's PDs are shifted in log-odds to reach it. Four definitions, each from what is known at the decision date:

2026-10-09T13:37:10.033567 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ point in time 4.7% through the cycle 7.1% stressed 11.3% monitor 9.2% 0 2 4 6 8 10 profit over the test period, M EUR 8.33 9.54 10.35 10.31 8.33 9.35 10.22 9.96 Profit by PD-level option and model, test period scorecard boosted model
Figure 2. What it shows: profit over the test period, in M EUR, for each PD-level option (with its level in %) and each model, at the loan-by-loan rule with margin 0. Message: the level moves profit by 2.0 M EUR between the worst option and the best; the model choice moves it by 0.1 to 0.4 M EUR, with the scorecard ahead at every level. The monitor, chosen before the test period was opened, is 0.04 M EUR below the stressed level. Made from reports/metrics_levels.json.
optionlevel, %scorecard: profit, M EURscorecard: approved, %boosted: profit, M EURboosted: approved, %
point in time4.748.3388.58.3392.5
through the cycle7.119.5482.89.3588.0
stressed11.3510.3572.710.2277.3
monitor9.2210.3177.89.9683.1

Monitor against through the cycle, scorecard: +0.77 M EUR, 95% interval +0.45 to +1.12 M EUR over 1,000 resamples of the applications. Boosted model against scorecard at the monitor level: -0.75 to +0.03 M EUR. The monitor reaches 9.2% against a true 12.2%: early delinquency rises less than proportionally to default, so it under-reacts; a lender with its own ratio of early delinquency to default sets the proportion from it.

Risk appetite: the required margin

The bank's appetite enters the rule through one parameter, the required margin m. The recommended policy at three values:

required margin, EUR per EUR lentprofit, M EURapproved, %default rate among approved, %amount lent, M EURprofit per EUR lent, ratio
0.0010.3177.87.73131.40.0785
0.0210.3471.67.45119.80.0863
0.049.9962.47.35104.40.0957

At 0.02 the lender earns the same profit with 11.6 M EUR less lent, at a lower default rate. The value of m is the bank's; 0.02 is the recommendation on this data.

The scorecard

A logistic regression on binned inputs: payment burden (instalment plus existing debt payments, over net income), employment years, credit history years, missed payments in the last 24 months, loan amount, term, housing, purpose. Each numeric input is cut at the quintiles of the fitting months; a missing income is its own bin of the payment burden. Net income and existing debt enter only through the burden: beside the ratio built from them they had no reading of their own, and the burden's bins came out of order.

2026-10-09T13:37:10.075399 image/svg+xml Matplotlib v3.11.1, https://matplotlib.org/ −1.00 −0.75 −0.50 −0.25 0.00 0.25 0.50 0.75 1.00 contribution to the score, log-odds up to 0.155573 0.155573 to 0.213935 0.213935 to 0.27891 0.27891 to 0.378134 above 0.378134 missing payment burden, ratio -0.65 -0.46 -0.37 -0.30 +0.81 +0.07 The scorecard's payment-burden bins
Figure 3. What it shows: the contribution of each payment-burden bin to the score, in log-odds; bins to the right raise the predicted PD. Message: the burden's bins rise in order, and the step above 0.378 is the largest single contribution in the scorecard, so a lender can read the line and act on it. Made from reports/scorecard.csv.

The boosted model (gradient-boosted trees on the same inputs; 15 leaves, 200 trees, chosen among 36 configurations on the validation months) ranks better: ROC-AUC 0.749 against 0.738 on the test period. At these levels the better ranking is worth nothing in profit, and the scorecard is the form a lender adopts directly.

The production test

Champion-challenger: the recommended rule decides a random 20% of applications for 6 months, the current rule the other 80%. First read at month 3 on the early delinquency rate of approved loans; final decision after 12 months on profit per EUR lent. The challenger is adopted if its profit per EUR lent is higher and its early delinquency rate is not higher. At 1,500 applications a month, 20% over 6 months is 1,800 applications on the challenger, enough to see a 2-point difference in early delinquency at a rate of 9% (standard error of the difference about 1 point).

Decisions, with their cost

issuedecisioncost
which datathe loan book is simulated; the simulator is published with the studyproves the method, not a result for a real lender
the break in the default ratea payment-relief programme: 7% before, 3% during, 12% afterits size is chosen, not measured
the programme months in the fitting datakept for ranking through an indicator switched off at prediction; left out of the PD levelassumes the programme shifts every applicant's odds by the same factor
income missing for 2.9% of applicationsits own bin of the payment burdenthe burden cannot be computed for them
instalment, interest income, interest rateleft out as model inputs; they are computed by the lender from inputs the models havenone for ranking
loss given default in the ruleone assumed value, 0.65, the mean of the simulated distributionprofit understated for loans that default late
which PD-level optionthe monitor, chosen before the test period was opened; all four reported0.04 M EUR below the best option
which modelthe scorecard: more profit at every level, and readable0.011 of ROC-AUC given up
required margin0.02 EUR per EUR lent6.2 points of approvals

Limits

How this was made: a plan with six sentences and a time budget written before any data existed; the test period locked and opened only by scripts that log each opening; every decision recorded with its reason and its cost; the recommendation written down before the test period was opened and reported beside the alternatives. Code: studies/lending-decision in the Hope repository, Python 3.12, seed 20261005.