Research · Foundation risk model

A credit model graded by what happened next.

We post-trained a 27-billion-parameter model to say which borrowers fail, and scored it against the bankruptcy filings that came later.

We took 11,109 quarterly reports filed between 2018 and 2025 by 638 public borrowers with asset-based credit lines, removed the names, and asked one question of each: will this company file for bankruptcy within 365 days? The answer is already on EDGAR, in the 8-K the borrower files later. We post-trained Qwen3.8-27B to answer with a single probability, read from one token and trained on the squared gap to the outcome, then scored it on 1,702 filings whose windows closed after the training set ends. Prediction error fell 45%, calibration error fell 73%, and the riskiest 5% of filings now hold a third of the next year's bankruptcies.

10-Q · JUN 13, 2024 The question The filing, name removed. Will it file for bankruptcy within 365 days? 89 DAYS THE MODEL NEVER SEES One probability Read from a single answer token. Scored later against the outcome. 8-K · SEP 10, 2024 The answer Item 1.03, bankruptcy. Outcome = 1. Score = (p − 1)²

One question, built from Big Lots. The 10-Q of June 13, 2024 fixes the date. The 8-K of September 10 fixes the answer.

0.00 0.02 0.04 0.06 0.08 0.10 0.02 0.03 0.04 0.05 always say 2.1%: 0.0207 Base model 0.0483 Brier · 0.088 calibration error Trained model, step 130 0.0267 Brier · 0.023 calibration error Prediction error (Brier score), lower is better Calibration error, lower is better

Prediction error against calibration error on the 1,702 held-out filings. Lower is better on both axes. The dashed line is a model that always says the base rate.

0% 25% 50% 75% 100% 0% 10% 20% 30% 40% 50% random top 5%: 12 of 36 bankruptcies base model: 5 of 36 Share of filings flagged as riskiest Share of bankruptcies caught

Sort filings by the model's probability, flag the riskiest slice, count the bankruptcies caught. The trained model catches 12 of 36 in the top 5%, the base model 5.

0% 0% 20% 20% 40% 40% 60% 60% 80% 80% 100% 100% stated = happened Probability the model stated Share that went bankrupt Base model Trained model, step 130 dot size = number of filings in the bin

Stated probability against the share that went bankrupt. The base model said 60 percent or more for 48 filings and none failed. The trained model's 30 to 50 percent bin holds 35 filings and 8 bankruptcies.

Held-out filings · cutoffs after June 30, 2024

Filings scored1,702
Bankruptcies within 365 days36 (2.1%)
Brier score, base → trained0.0483 → 0.0267
Calibration error, base → trained0.088 → 0.023
AUC, base → trained0.82 → 0.86
Always saying 2.1%0.0207 Brier
TrainingLoRA r32 · 130 of 265 steps

The raw trained model still sits above the base-rate constant: it averages 4% when the truth is 2.1%. The ranking is there and the prior is a few dozen steps short. Every forecast is published with the filing it was made from.

This is the first step toward a general underwriting model. The loop is the same at every step: a dated question, one probability, and a grade from what happened. It extends from the borrower to the asset: what a machine will sell for at a date, which risk class a loan belongs in, and in the end the loan-to-value that the risk supports. A lender sees the number and how sure the model is, and the filings keep the score.

TODAY · SCORED Will the borrower fail? probability of a credit event NEXT Future asset value? what the collateral sells for THEN Which risk class? borrower and asset together GOAL What LTV? the advance rate it supports
Try the question yourself

The model is open on all 1,702 held-out filings. Pick any borrower, read the same excerpt the model read with the name removed, set your probability, and lock it. Then you see the base model's number, the trained model's number, and the 8-K that settled it. Your Brier score runs against both models on the filings you answer.

Underwrite with the model
Filings1,702
Borrowers451
FiledJul 2024 to Sep 2025
Went bankrupt within a year36