Skip to lesson
Exit
Bug Triage & Prioritization at Scale1 / 2

1 min lesson

Combining the axes into a score

Use the example in "Combining the axes into a score" to explain the main idea in plain words.

Step 1 of 2

Combining the axes into a scoreso loud-but-rare can't beat quiet-but-catastrophic

Keep severity and impact as separate axes, then collapse them into a priority band. The point of the multiply is that volume alone never wins: a flood of S3 cosmetic complaints stays below a single S0 data-loss report with one reporter.

A priority score you can actually defend in a brief
priority = severity_weight × impact_score

severity_weight:  S0=100  S1=30  S2=8  S3=2
impact_score   =  (pct_DAU_affected × 10)
               +  (arr_affected_usd / 10_000)
               +  frequency_factor        // 1 rare … 5 every-keystroke
               +  (is_regression ? 15 : 0)

# S0 with one reporter:  100 × (0.001 + 0 + 1 + 0)  ≈ 100
# S3 with 400 reporters:   2 × (4   + 0 + 3 + 0)    ≈  14
# the catastrophe wins and the math shows why
The score is a conversation starter, not an oracle

A formula's value is that it forces the inputs into the open. When you say P1, you can name the severity tier, the percent of DAU, the ARR exposed and whether it's a regression. The engineer can argue with an input, which is far better than arguing with your vibe.