When To Build Your Own

How many local company records a bank needs before building its own model beats borrowing a foreign one. The measured answer: about 1,600 companies, or roughly 60 real bankruptcies.

A borrowed model is free and available immediately. Local records are neither. Every one of them is a company you had to watch fail, or pay a data provider to tell you about.

So the practical question isn’t “does borrowing work” — the previous page settled that. It’s how long should you keep borrowing before building your own?

Four things you could do

Borrow

Use The Taiwanese Model

Apply it directly. Spend nothing, wait for nothing.

Adjust

Nudge It With Local Data

Start from the borrowed model, then keep training it on whatever Polish records you have.

Combine

Use Its Opinion As A Clue

Build a Polish model, and hand it the borrowed model’s verdict as one extra piece of evidence.

Build

Start From Nothing

Ignore Taiwan entirely. Use only the Polish records you have.

All four are marked on the same set of held-out Polish companies, using anywhere from 0 to 1,600 records to learn from.

Two details that matter. Each point is the average of 15 runs on different random samples — with only 25 records, which 25 you happen to draw affects the result more than which method you use, so a single run would just be noise. And each sample is drawn so it contains a realistic share of failures. Draw 25 Polish companies at random and you will usually get 25 survivors, since only about 4% fail — nothing can be learned from that, and no real bank would spend its budget that way.

The result

Chart of model quality against the number of Polish records used. Borrowing is a flat line at 0.71. Building your own rises from 0.57 to 0.72, overtaking only at 1,600. Nudging the borrowed model stays below it throughout. Chart of model quality against the number of Polish records used. Borrowing is a flat line at 0.71. Building your own rises from 0.57 to 0.72, overtaking only at 1,600. Nudging the borrowed model stays below it throughout.
Higher is better. Poland, predicting failure within one year.
Borrow Adjust Combine Build your own
Polish records used
0 0.71 NaN NaN NaN
25 0.71 0.710 0.568 0.565
50 0.71 0.709 0.598 0.594
100 0.71 0.691 0.622 0.618
200 0.71 0.659 0.616 0.616
400 0.71 0.669 0.647 0.650
800 0.71 0.679 0.684 0.686
1600 0.71 0.694 0.717 0.719

Borrowing a model built on another country’s companies beats building your own until you have roughly 1,600 local records — about 60 actual bankruptcies.

Read the first row: with 25 Polish records, a home-built model scores 0.565. The borrowed model, using no Polish records at all, scores 0.710. Even at 800 records the borrowed model is still ahead.

That gap is the whole practical point. At a 4% failure rate, 1,600 records means waiting for roughly 60 companies to actually go under. For a bank that has just entered a market, that is years away. The borrowed model is worth having on day one and worth keeping for a long time.

The switching point depends on what you care about

Years ahead What you measure Build your own wins at Combining wins at
1 Sorting companies correctly 1600 1600
1 Getting the top of the list right 800 800
2 Sorting companies correctly 1600 1600
2 Getting the top of the list right 800 800
3 Sorting companies correctly 1600 1600
3 Getting the top of the list right 800 800
4 Sorting companies correctly 1600 1600
4 Getting the top of the list right 1600 1600
5 Sorting companies correctly 800 800
5 Getting the top of the list right 200 200

There are two reasonable things to want from a risk model, and they don’t give the same answer.

If you care about sorting the whole book correctly, the switch comes at around 1,600 records. If you care about the top of the alert list being right — the handful of companies you’ll actually pick up the phone about — it comes at around 800.

That’s not a technicality. A team worried about overall ranking should keep borrowing roughly twice as long as a team worried about the precision of its top warnings. The honest answer to “when do we switch?” is “it depends what you’re optimising for”, and the table says by how much.

Nudging the borrowed model made it worse

This was the surprise. Taking the borrowed model and continuing to train it on a small amount of Polish data — the obvious middle path — was worse than leaving it alone.

That’s odd enough to suspect a mistake in how I did it, so I tried it many different ways: more extra training and less, faster learning and slower.

Polish records Extra training Learning speed After nudging Left alone Difference
100 10 0.02 0.7 0.7 0
100 30 0.02 0.696 0.7 -0.004
100 50 0.005 0.699 0.7 -0.001
100 100 0.02 0.68 0.7 -0.02
100 200 0.01 0.681 0.7 -0.019
400 10 0.02 0.685 0.7 -0.015
400 30 0.02 0.669 0.7 -0.031
400 50 0.005 0.684 0.7 -0.016
400 100 0.02 0.659 0.7 -0.041
400 200 0.01 0.654 0.7 -0.046
1600 10 0.02 0.681 0.7 -0.019
1600 30 0.02 0.679 0.7 -0.021
1600 50 0.005 0.684 0.7 -0.016
1600 100 0.02 0.681 0.7 -0.019
1600 200 0.01 0.683 0.7 -0.017

Every setting but one made things worse — 14 out of 15. And the closer the extra training got to doing nothing at all, the closer the result got to simply leaving the model alone. In other words, the adjustment helped most when it did least.

Combining the two models fared no better: the Polish model largely ignored the borrowed verdict and fell back to its own weak judgement.

The reason is that a small sample is not just a weak signal — it’s a misleading one. A few dozen Polish companies contain enough accidental pattern to drag the model off course, but not enough real pattern to teach it anything that holds up.

Borrow the model whole, or replace it whole. The middle ground — partly adjusting a foreign model using a thin slice of local data — was the worst option tested.

This is one pair of countries and one family of models, so it’s evidence rather than a law. Next: does the forecast window change the answer?