Give Each Severity Level a Confidence Floor
Why do your AI's critical warnings mean nothing? Too many of them are guesses.
When an AI reviewer or scanner labels everything critical, the label stops carrying information. People learn that "critical" is noise, skim past it, and eventually miss the one finding that really was critical. A severity label is only useful if it is scarce and earned. The fix is not a better model, it is a rule: no finding may claim a severity it is not confident enough to support.
Why noisy criticals erode trust
Severity is a promise about how much this matters. Confidence is a separate axis: how sure the model is that the finding is real. Models routinely conflate them, emitting a confident-sounding "critical" for a shaky guess. Once a handful of those land, the reader recalibrates: they discount every critical, including the true ones. A single inflated critical taxes the credibility of all of them. Precision at the top severity is what keeps the whole system readable.
The mechanism: a confidence floor per level
Give each severity a minimum confidence it must clear, and make the model report its confidence explicitly. A finding can only occupy a tier if its confidence meets that tier's floor.
| Severity | Confidence floor |
|---|---|
| Critical | 8 / 10 |
| High | 7 / 10 |
| Medium | 6 / 10 |
| Low | 4 / 10 |
Two rules make it work:
- Under uncertainty, drop a tier. A would-be critical the model is only 7-confident about becomes a high, not a critical. It is still reported, just at the level its evidence supports.
- Never inflate to be safe. "I'll mark it critical just in case" is the exact behavior that destroys the signal. Uncertainty moves a finding down, never up.
Finding: possible SQL injection in report handler
Assessed severity if true: Critical
Model confidence: 7/10
Critical floor: 8 -> not met
Action: downgrade to High (floor 7, met). Report it, at High.
The payoff
Now a critical actually means stop and fix. Because nothing reaches that tier without high confidence, the reader can trust it and act immediately. The lower tiers absorb the uncertain findings, so nothing is dropped, it is just ranked honestly. The signal survives because the top of the scale stays clean.
Power moves
- Make confidence a required output field. Have the model emit a numeric confidence per finding so the floor can be enforced programmatically, not left to vibes.
- Enforce the downgrade in code, not the prompt. Compute the final severity from
(assessed_severity, confidence)in a deterministic post-step, so an over-eager model cannot skip the rule. - Tune floors to your tolerance. A security gate that blocks merges may want a higher critical floor; an advisory linter can run looser. Set the numbers to match the cost of a false critical.
- Track precision at the top tier. Sample criticals and measure how many were real. If precision drops, raise the floor.
Resources
- CVSS — Common Vulnerability Scoring System (severity guidance)
- NIST AI Risk Management Framework
- OWASP Risk Rating Methodology
- Calibration of confidence in machine learning predictions — overview
Shipping AI or cloud systems? Yeda AI audits and hardens production LLM and container pipelines. Talk to us · Read the blog