Skip to main content

Scoring reference

Formula

penalty(count, perIssue, cap) =
count == 0 ? 0 : min(cap, perIssue × (1 − 0.75ⁿ) / 0.25)

score = max(0, round(
100
− penalty(critical, 18, 42)
− penalty(high, 10, 28)
− penalty(medium, 4, 14)
− penalty(low, 1, 6)
))

The same formula runs in both the Go agent and the React frontend.

Parameters

SeverityperIssuecap
Critical1842
High1028
Medium414
Low16

Diminishing returns

Each additional finding contributes less than the previous:

# findingsMarginal penalty (critical)
1st−18 pts
2nd−13.5 pts
3rd−10.1 pts
4th−7.6 pts
5th+diminishing toward cap of −42

Score lookup table

CriticalHighMediumLowScore
0000100
100072
010090
123564
43063113
10+10+10+10+0