Conformal Logit Inference — demo

Lending: with vs. without CCI

Synthetic demo data only — not financial or credit advice.

Same 12 applications, 3 channels, one variable

Correct tier (baseline top guess vs. CCI candidate-set coverage)
58%Baseline · 7 of 12
92%CCI · 11 of 12
Applications auto-finalized without underwriter review
25%Baseline · 3 of 12
33%CCI · 4 of 12
Auto-finalized AND wrong
0Baseline
0CCI

Coverage audited separately per channel — not one blended number

Held-out cases where the calibrated set actually contained the true tier
4/4 · branch
3/4 · online
4/4 · partner
01234 cases

This is the mechanism the product names specifically for lending: coverage calibrated per channel, so a channel with weaker data can't hide behind a strong blended number. With only 20 calibration examples per channel here, per-channel numbers are imprecise — small-sample noise, not a flaw in the mechanism itself.

Where a hand-picked cutoff got it backwards

LT-0011 · online channel · true tier: decline

Unemployed applicant, requesting a limit larger than typical for the profile — every measure of this policy says decline.

Baseline:Correctly predicted "decline" — but only 75% self-reported confidence, just under its own 80% cutoff, so it sat in the queue anyway
CCI:Candidate set narrowed to a single tier ("decline"), Gate cleared its calibrated bound, auto-finalized

A calibrated bound doesn't just act less often on shaky evidence — it also acts confidently when the evidence is actually clear, instead of getting stuck on an arbitrary round number.

The actual guarantees returned, in plain terms

Tier check (Set, per channel): the calibrated candidate set contained the correct tier at least 80% of the time, audited separately within each of the 3 channels.
Auto-approval check (Gate): the expected rate of decisions that are auto-finalized and wrong is at most 15% — computed from held-out outcomes, not self-reported.

Every case

CaseChannelTrue tierBaseline (conf)Baseline actionCCI candidate setCCI action
LT-0001partnerprimeprime (0.85)auto-finalized[prime]auto-finalized
LT-0002onlinesubprimenear_prime (0.68)escalated[subprime]escalated
LT-0003branchsubprimesubprime (0.60)escalated[subprime]escalated
LT-0004branchsubprimenear_prime (0.70)escalated[subprime]escalated
LT-0005partnerdeclinesubprime (0.60)escalated[decline]escalated
LT-0006partnersubprimenear_prime (0.68)escalated[subprime]escalated
LT-0007branchprimeprime (0.85)auto-finalized[prime]auto-finalized
LT-0008onlinesubprimesubprime (0.62)escalated[subprime]escalated
LT-0009onlinenear_primesubprime (0.60)escalated[subprime]escalated
LT-0010partnersubprimesubprime (0.60)escalated[subprime]escalated
LT-0011onlinedeclinedecline (0.75)escalated[decline]auto-finalized
LT-0012branchprimeprime (0.90)auto-finalized[prime]auto-finalized