Scoring explained

Every flow in a scan gets a risk score from 0 to 100 and an action level derived from it. The score comes only from that flow’s own findings.

The formula

RawScore = sum of base points across the flow's findings
CategoryMultiplier = highest category multiplier among those findings
EnvironmentMultiplier = multiplier for the environment type
FinalScore = min(RawScore × CategoryMultiplier × EnvironmentMultiplier, 100)

Base points

SeverityBase points
Critical25
High10
Medium4
Low1
Informational0

Category multipliers

CategoryMultiplier
Exfiltration2.0
Security1.5
AI1.3
Governance1.0
Operational1.0
Compliance1.0

The category multiplier is a maximum, not a sum. One Exfiltration finding lifts the whole flow to 2.0; ten Governance findings still multiply by 1.0.

Environment multipliers

Environment typeMultiplier
Default1.5
Production1.0
Sandbox0.8

In 1.2.0 the scan does not discover environment types, so every flow is scored with the Default multiplier (1.5) regardless of where it lives. The Production and Sandbox rows describe the model, not current behavior. See Known limitations in 1.2.0.

Action levels

ScoreAction level
80–100Immediate Action (24h SLA)
50–79Review Within 7 Days
20–49Monitor (monthly review)
Below 20Acceptable

Worked example

A Production flow has two findings: SEC-01 Hardcoded Secret (Critical, 25 points) and EXF-03 HTTP Exfiltration Risk (High, 10 points).

  • RawScore: 25 + 10 = 35
  • CategoryMultiplier: max(Security 1.5, Exfiltration 2.0) = 2.0
  • EnvironmentMultiplier: Production = 1.0
  • FinalScore: 35 × 2.0 × 1.0 = 70 → Review Within 7 Days

The same two findings in the Default environment: 35 × 2.0 × 1.5 = 105, capped at 100 → Immediate Action (24h SLA). In 1.2.0 every flow gets this second calculation, because all flows are treated as Default.

The same findings can land in different bands purely because of where the flow lives, which is also what HYG-02 flags.

Tuning the model

Severity overrides change a finding’s severity and therefore its base points. The model itself is configurable under the Scoring section of appsettings.json next to the executable: CriticalBase, HighBase, MediumBase, LowBase, CategoryMultipliers, and EnvironmentMultiplier. Restart the app to apply.

Last updated: July 27, 2026