Prioritize bugs by frequency and severity
Rank bugs on two separate scales: how often customers hit them and how much damage they cause. Plot them on a 2x2 grid, fix frequent high-severity bugs first, and let rare cosmetic issues wait in the backlog.
By Rafael Thayto · Last updated
Score frequency and severity separately
A bug can be common and trivial, or rare and critical. A typo in a help text is seen by many people, but it blocks nobody. A failed payment is rare, yet every case costs money and trust. Score the two dimensions separately and combine them afterward. A single gut-feel number hides exactly the bugs you need to see.
Build the 2x2 grid
Draw a grid with severity on one axis and frequency on the other. Place each open bug in one cell.
| Rare | Frequent | |
|---|---|---|
| High severity | Fix soon, and find the root cause | Fix now |
| Low severity | Backlog, and document the workaround | Schedule with related work |
The top right cell goes first. The top left cell still gets a date, because a rare failure that loses data can damage trust in one afternoon. The bottom row can wait, but batch those fixes with other work in the same area so you do not pay the context-switching cost many times.
Escuta Produto does not draw a grid view, so keep this in a shared spreadsheet or document, with one row per bug and a link back to the inbox item.
Estimate frequency from feedback
Frequency is the number of distinct customers who hit the bug in a set period. Feedback gives you a partial count, so be clear about what you are counting.
Start by grouping bug items that describe the same symptom. The widget saves the page URL and the browser automatically, so use those fields together with the words in each message. Then count distinct customers. If items carry an email or an ID, count the unique values. If they are anonymous, count the items and call the total a minimum.
For example, nine bug items mention the invoice page not saving in one browser, and they come from six distinct customers. That is a frequent bug, even though the team heard about it nine times. The gap between messages and people is exactly what this count is meant to expose.
Quiet customers are missing from the count. Someone who leaves without writing still hit the bug. When you have error logs or support tickets, use them to check whether the feedback count understates the problem.
Estimate severity from what the customer lost
Severity is the damage done to someone who hits the bug. Judge it by what the customer lost, not by how upset they sound. Four levels work for most teams:
- Critical: data loss, a login that cannot succeed, a payment that fails, or a security problem.
- High: a core task cannot be finished and there is no workaround.
- Medium: the task takes longer, but a workaround exists.
- Low: visual or wording issues that do not stop work.
Critical and high belong in the top row of the grid. Medium depends on reach: put it in the top row when many customers hit it on a main path.
Two reports show the difference. One says the export button shows an error and no file downloads, which costs the customer a month-end report. The other says a tooltip overlaps the menu on a narrow window. The first is high severity even if it arrives once a week, because it blocks a core task with no workaround. The second is low severity even if many people see it, because nothing is lost.
What goes first
Apply three rules in order:
- Any critical bug goes to in progress right away, however rare it is.
- High-severity bugs that many customers hit come next. These are the fix now cell.
- Batch the low-severity frequent bugs into one release. Close low-severity rare bugs that have a clear workaround, with an internal note that describes the workaround.
A bug that moves from rare to frequent after a release should move up right away, because the rising count is itself the evidence.
Reply to every customer whose bug you schedule. Read how to follow up on a bug report for wording that asks for missing detail without sounding like a support script.
Set up the grid with Escuta Produto
Escuta Produto gives you most of the inputs: a type filter (bug), statuses (new, planned, in progress, done and closed), the page URL and browser saved with each item, the 30-day chart and private internal notes. A weekly routine looks like this:
- Filter the product inbox to type bug and status new.
- For each item, read the page URL and browser, then search the inbox for the words customers used to find other reports of the same symptom.
- Write the severity level and the distinct customer count in an internal note, for example "high, 4 customers, invoice page".
- Move the bug to planned or in progress, and place it in the grid.
- Watch the 30-day chart after each release. A rise in bug items means the grid needs a fresh look.
Every new item also posts to Slack or Discord when you have a webhook set up, so critical reports reach the team quickly. Setup steps are in the notifications docs. For the wider triage routine, read what is feedback triage.
Frequently asked questions
How do you decide which bug to fix first?
Rank by severity first, then by frequency. Critical bugs such as data loss or blocked payments go first even when they are rare. High-severity bugs that many customers hit come next.
How do you estimate bug frequency from customer feedback?
Group reports that describe the same symptom and count the distinct customers who sent them over a fixed period. Use the page URL and browser saved with each item to confirm the reports match, and treat the count as a minimum.
Should cosmetic bugs ever be fixed?
Yes, when the fix is cheap or when related work already touches the same screen. Low-severity bugs that customers hit often can be scheduled together, while rare cosmetic issues can wait in the backlog.
Related
- How to triage customer feedbackA weekly routine for turning raw customer feedback into decisions: statuses, tagging by type, spotting patterns and closing the loop with customers.
- How to use RICE to prioritize customer feedbackScore feedback with RICE: count distinct customers for reach, rate impact and confidence, then divide by effort. Includes a worked example.
- How to apply the Kano model to feature requestsUse the Kano model to sort feature requests into basic, performance, delighter and other groups, and learn when the model stops being useful.
- How to build a tagging system for customer feedbackEscuta Produto has no tags, so build a small, stable set of areas in metadata and notes. Define each label, review the list quarterly and keep it short.