| 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 |
When To Build Your Own
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
Use The Taiwanese Model
Apply it directly. Spend nothing, wait for nothing.
Nudge It With Local Data
Start from the borrowed model, then keep training it on whatever Polish records you have.
Use Its Opinion As A Clue
Build a Polish model, and hand it the borrowed model’s verdict as one extra piece of evidence.
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
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?