BugMojoBugMojoBugMojo
FeaturesPricingBlogGuidesAbout
Log inGet started
BugMojoBugMojo

Bug reports that actually help fix bugs — capture, replay, share.

Product

  • Features
  • Pricing
  • Get started
  • Log in

Resources

  • Blog
  • Guides
  • Compare
  • Glossary

Company

  • About
  • Contact
  • Privacy
  • Engineering
  • Playbooks
© 2026 BugMojo. All rights reserved.
AllGuidesEngineeringPlaybooksCompareGlossaryAlternativesBy roleBug tracking by framework
  1. Home
  2. Blog
  3. Playbooks
  4. Bug Severity vs Priority: A Decision Framework That Ends the Argument
Playbooks

Bug Severity vs Priority: A Decision Framework That Ends the Argument

A practical framework separating bug severity (how bad it is) from priority (when to fix it) — with a 4x4 matrix, real examples, and the decision rules to apply on triage day.

BugMojo TeamBugMojo Team·May 22, 2026·7 min read
A whiteboard with sticky notes representing bug triage and priority assignment

Key takeaways

  • Severity = how badly the bug breaks the system. Priority = when we will fix it. They are different axes.
  • Severity is set by the reporter or QA. Priority is set by triage (engineering + product).
  • Use 4 levels for each (CRITICAL/HIGH/MEDIUM/LOW × P0/P1/P2/P3) — not numeric scales.
  • The argument "is this a P1 or P2?" ends when you separate "how bad?" from "when?"

The single rule that ends every triage argument

Severity describes the bug; priority describes the schedule. Stop debating them in the same sentence. A CRITICAL bug can be P3 if it only affects a deprecated feature. A LOW-severity bug can be P0 if it ships in a CEO demo at 2pm. Separating the axes ends 80% of triage disagreements.

Key takeaway

The single most valuable sentence you can say in triage: "I agree the severity is X. We disagree on the priority, which is a scheduling decision — let's discuss that separately."

Severity: what is broken

ISTQB defines severity as "the degree of impact that a defect has on the development or operation of a component or system." It is a technical assessment, independent of business value or user count. Use four labels with concrete behavioral definitions — not numeric scales, which drift.

The four severity labels and what they mean:

  • CRITICAL — Data loss, security exposure, or the whole application is down for a class of users (all paying customers, all mobile users, all users in EU). Examples: customer data deleted on save, auth bypass, checkout returns 500 for every user.
  • HIGH — A major feature is broken with no workaround. Most users encountering it can't complete their primary task. Examples: a key form fails to submit, search returns no results, billing page won't load.
  • MEDIUM — A feature is broken or behaves wrong, but a reasonable workaround exists. Examples: dashboard chart loads slowly, a non-critical setting doesn't save, the menu collapses on a rare device.
  • LOW — Cosmetic issues, typos, minor inconveniences. Examples: misaligned text, color contrast on a non-critical button, wrong icon on a tooltip.

Note: severity is independent of how many users see it. A bug that affects 1% of users badly is still CRITICAL if it deletes data. A bug that affects 100% of users mildly is MEDIUM at best.

Priority: when (and whether) we fix it

Priority is a scheduling decision made during triage. Unlike severity, it incorporates business context: who's affected, what release we're shipping, what the team's other commitments are. Use P0/P1/P2/P3 (not numeric scales). Priorities can change as conditions change; severity rarely does.

The four priority labels:

  • P0 — Stop the world. Drop everything currently in progress. Fix is shipped within hours, typically same day. Reserve for true emergencies.
  • P1 — This sprint. The bug is on the active sprint board; an owner is assigned; it ships in the next release.
  • P2 — This quarter. Sized into a future sprint within ~12 weeks. Owner not assigned yet; rough estimate exists.
  • P3 — Backlog. Acknowledged but not scheduled. May get fixed opportunistically when an engineer is in the area; may never get fixed if priorities shift.

A useful test: if you can't say "we will fix this by date X," it's P3. P0 through P2 each carry a commitment; P3 explicitly does not.

The 4×4 matrix in practice

The full severity × priority matrix has 16 cells. Most teams settle into 5-6 of them; the rest are theoretically possible but rare. Use the matrix as a sanity check: if your assigned priority looks wrong for the severity, ask why — the answer usually surfaces a constraint that wasn't on the table.

When severity and priority diverge

Three concrete examples where severity and priority diverge — and the reasoning is sound. These cases are why we keep the axes separate: collapsing them forces false trade-offs and obscures the actual decision.

LOW severity, P0 priority — the CEO demo. A typo in the headline of the page the CEO is about to demo at a board meeting. Cosmetic, but the visibility is asymmetric — fix it now even though it's objectively unimportant.

CRITICAL severity, P3 priority — the deprecated feature. A bug that causes data loss in a feature you announced you're shutting down next month. Severity is high; priority is low because the fix isn't worth the effort against the planned removal.

HIGH severity, P2 priority — the long-tail browser. A major feature breaks on a niche browser used by 0.1% of your traffic. Severity is HIGH (the feature is broken), priority is P2 (it can wait until the next quarterly release).

How to handle the disagreement in triage

When triage gets stuck on a bug, the disagreement is usually about priority, not severity. Split the conversation into two steps: agree on severity first (a technical assessment), then negotiate priority (a business decision). Most arguments resolve in the second step once everyone agrees on the first.

The 4-step protocol:

  1. State the severity first. "I see this as HIGH because the form is broken and there's no workaround."
  2. Get explicit agreement on severity before discussing priority. Three options for the team to pick: agree, raise (CRITICAL), or lower (MEDIUM).
  3. Then set priority with business context. Who's affected? Is there a release pressure? What's the cost of waiting?
  4. Document the reasoning in the ticket. Six months from now, "why was this P2?" should be answerable from the ticket alone.
Warning

Beware of severity inflation. If every reported bug is HIGH or CRITICAL, your team has lost the signal. The fix isn't a training session — it's tightening the definitions and rejecting tickets that don't meet the bar at the reporter step.

Common mistakes

  • Conflating the axes. "It's a P1 because it's serious" — that's two thoughts in one. Disentangle them.
  • Using a numeric scale. A "Severity 3" means nothing without a definition. "MEDIUM = workaround exists" is portable.
  • Letting priority bleed back into severity. Just because you decided not to fix it doesn't change what's broken.
  • No SLA per priority. Without time commitments, P0/P1/P2 are just labels. Define what each one means in calendar time.
  • Severity inflation. When every bug is HIGH, none are.

How BugMojo models this

The BugMojo data model treats priority as a polymorphic field on the Issue entity with CRITICAL/HIGH/MEDIUM/LOW/NONE values. Severity isn't a separate field — it's expected to be encoded in the ticket description or labels. We considered making severity a first-class field and decided against it: small teams over-thought the distinction; large teams added it via labels naturally. The bias is to not force structure that teams don't actually use.

Next steps

  • Adopt the 4-level severity scale verbatim. Don't customize until you've used it for 3 months.
  • Add the priority SLAs to your team's runbook: "P0 fix shipped in 4 hours. P1 in 1 sprint. P2 in 1 quarter."
  • Train new reporters on severity definitions, not priority — priority is a triage-team responsibility.

Try BugMojo free to capture bug reports with priority baked into the capture flow — no separate triage spreadsheet required.

Frequently asked questions

Sources

  1. ISTQB Glossary — Severity definition — ISTQB (2024)
  2. How to Report Bugs Effectively — Simon Tatham (2025)
  3. Atlassian Jira priority documentation — Atlassian (2025)
Share:
BugMojo Team
BugMojo Team· Engineering & QA

The BugMojo team builds tools for developers, QA engineers, and PMs who want bug reports that actually help fix bugs.

On this page

  • The single rule that ends every triage argument
  • Severity: what is broken
  • Priority: when (and whether) we fix it
  • The 4×4 matrix in practice
  • When severity and priority diverge
  • How to handle the disagreement in triage
  • Common mistakes
  • How BugMojo models this
  • Next steps

Get bug-tracking insights, weekly.

Engineering deep-dives, QA playbooks, and honest tool comparisons. No spam — unsubscribe in one click.

Keep reading

A timer showing fifteen minutes representing the fast triage window for a production bug
Playbooks

How to Triage a Production Bug in 15 Minutes: A 5-Step Playbook

A repeatable 5-step playbook to triage production bugs in 15 minutes — from page to severity assignment to first action — without losing your sprint to investigation.

May 22, 2026· 8 min
A developer pair-programming with an AI coding assistant on a dark IDE, with a bug tracker visible on a second monitor.
Guides

How to Connect Claude Code to Your Bug Tracker via MCP

Step-by-step guide to wire Claude Code into BugMojo via the Model Context Protocol so your AI agent can read, triage, and update bugs in about 10 minutes.

May 22, 2026· 10 min
A close-up of a circuit board with green and red components — a visual stand-in for the debugging process
Guides

How to file a bug report developers actually want to fix

A 2026 guide to bug reports that close fast — what to include, what to skip, and how session replay changes the rules.

May 22, 2026· 5 min
Browse:GuidesCompare