← All posts

SBA Lab and the engineering of public risk grading

SBA Lab shows a simple but useful pattern in risk modeling: make a concrete industry-default guess, then grade it against public federal data. The lesson is in the evaluation design, what to inspect, how to verify it, and where category-based credit models often fail.

Credit models fail in ordinary ways. They lean on easy proxies. They confuse correlation with mechanism. They look accurate in aggregate while missing where the loss sits. If you work on risk, underwriting, or model review, you need a way to inspect those failure modes in public, with a dataset other people can check.

SBA Lab is useful for this. It sets up a simple test. A model guesses which industries default. Then federal data grades the guess. The value is not the guess itself. The value is the loop between prediction and observed outcome, with a public benchmark you can inspect.

This sort of page matters because industry risk is easy to oversimplify. Sector labels feel concrete. They compress a lot of information into one field. But the path from an industry code to repayment outcome is messy. Exposure mix, loan structure, underwriting standards, geography, and timing all sit inside the result. A practitioner should read a demo like this as a lesson in evaluation design.

What problem it addresses

A common mistake in risk work is to treat a category label as if it were a causal feature. Industry is useful. It often carries signal. But a category alone does not explain why defaults cluster. It only marks where they showed up in a dataset.

That distinction matters in two places.

First, in model building. If you train a model on outcome data and it learns industry as a strong feature, you still need to ask whether the feature is stable, whether it leaks time-specific conditions, and whether it masks deeper variables you failed to capture.

Second, in model review. A ranked list of high-risk industries feels persuasive because it is easy to read. But readable outputs are often the most dangerous. They invite action before you inspect calibration, class balance, missing context, and cohort definition.

The page demonstrates a cleaner pattern. Make a concrete prediction. Hold it against an external source of record. Keep the unit of comparison simple enough for a reader to audit.

What to inspect on a page like this

Start with the target. Here, the target is default by industry. You should ask how default is defined, at what level the industry is grouped, and whether the comparison uses rates, counts, or rank order. Those choices change the story.

Counts and rates are not interchangeable. An industry with many defaults in absolute terms might still have a lower default rate than a smaller industry with fewer loans and worse performance. If a model predicts “who defaults most,” you need to know whether it means total defaults or default propensity.

Grouping also matters. Fine-grained industry codes create sparse buckets. Broad groups smooth variance but hide concentrated pockets of risk. If a model is graded against federal data, you want to see whether both sides use the same taxonomy and roll-up level. Mismatched grouping produces false disagreement or false agreement.

You should also inspect the baseline. If industries differ only modestly, a model that places them in roughly the right order might look strong while adding little over a naive prior. If the spread is wide, rank errors matter more. A useful demo leaves room for you to compare the guess against a simple baseline in your head, such as random ordering or ordering by broad economic intuition.

One more point. Look for temporal alignment. A guess trained or reasoned from one period and graded on another period tells you more than a guess graded on the same slice that informed it. Without time separation, evaluation drifts toward retelling the label.

How to verify what it claims

The good part about a federal-data grading loop is auditability. You do not need private access or inside context to reason about the result. You need to verify the plumbing.

Check these points:

  • The source dataset exists as a public federal record.
  • The fields used for comparison are plain enough to identify, such as industry classification and default outcome.
  • The transformation from raw data to scorecard is understandable.
  • The prediction target and the observed label refer to the same concept.

Then inspect the comparison method. There are several valid ways to grade a ranked industry guess, and they answer different questions.

  • Rank agreement asks whether the ordering was close.
  • Error by bucket asks where the guess overshot or undershot.
  • Calibration asks whether predicted risk levels match observed rates.
  • Top-k overlap asks whether the riskiest predicted groups were among the riskiest observed groups.

If a demo emphasizes one grading frame, keep the others in mind. A model might identify the worst few industries while misordering the middle. It might get the order roughly right while missing the magnitude. It might fit one era and break in another.

As a reader, you should reproduce the reasoning path, even if you do not reproduce the full analysis. If the page says federal data graded the guess, you should be able to locate the same dataset, apply the same grouping, and see whether the broad pattern holds. Reproducibility is the point of using a public benchmark.

What signal to read, and what signal to ignore

The useful signal here is not “the model knows industry risk.” The useful signal is narrower. It is whether a simple predictive setup lines up with observed outcomes when checked against an external dataset.

That sounds modest. It should. Overclaiming is where this class of system goes wrong.

Read signal at three levels.

First, directional signal. Did the guess place some industries above others in a way that later matched the data?

Second, concentration signal. Were defaults concentrated in a subset of industries, or spread broadly? Concentration affects how much value any industry-based ranking has.

Third, error structure. Where did the model miss, and were the misses systematic? If it overstates cyclical sectors and understates sectors with underwriting quirks, you learned something about the feature set or prior assumptions.

Ignore faux precision. A page like this should not tempt you into reading a tiny gap between two adjacent industries as meaningful unless the sample and method support it. Ordered lists invite overinterpretation, especially in the middle ranks where noise dominates.

Also ignore the urge to treat industry as a policy answer. Industry is one slice. In practice, loan amount, collateral, term, borrower history, documentation quality, and origination period all shape outcome. Category-level views are best used as a screening lens, not a final decision rule.

Where systems like this commonly go wrong

The first failure is leakage. If the model or heuristic was informed by the same outcome period used for grading, the exercise becomes circular. Public data does not fix bad experimental design.

The second failure is denominator blindness. Teams report where defaults were numerous without adjusting for how many loans sat in each industry. This mistake survives because absolute counts feel intuitive.

The third failure is instability across taxonomies. Industry labels change, mappings drift, and roll-ups differ between datasets. If you compare NAICS-like groupings on one side with a different aggregation on the other, your score reflects mapping choices as much as model quality.

The fourth failure is survivorship in the cleaned dataset. If records with missing industry, unresolved status, or ambiguous outcomes are dropped without review, the result can shift in ways readers never see. Missingness is part of the signal environment.

The fifth failure is treating rank as truth. A ranked list compresses uncertainty into a single line. If the score gaps are small, adjacent ranks should be read as near-ties. Good evaluation shows uncertainty or at least signals where differences are thin.

The last failure is confusing descriptive fit with deployable value. Even if a model aligns with historical industry defaults, you still need to ask whether it improves a workflow, whether it generalizes, and whether it introduces shortcuts you would reject in a real underwriting setting.

What to watch next

The next step for work like this is richer decomposition. Keep the public grading loop, then split the result by time period, loan size band, and industry granularity. Look for where the guess holds and where it breaks.

You should also watch whether the evaluation stays interpretable as complexity rises. More features and fancier models often hide basic mistakes rather than remove them. The strongest part of this demo is the discipline of making a guess and checking it against a public record. Keep that discipline as the system grows.