Safeguard
Security Guides•

Time to fix looks great until you count the vulnerabilities still open

Average time to fix only counts closed items, so it flatters you. Learn why open vulnerabilities are censored data and a simple way to report fixes honestly.

Safeguard Security Team
3 min read

Average time to fix is computed from closed items only, so the oldest open vulnerabilities never enter it. Statisticians call those items censored. A fairer report is the share fixed within 7, 30 and 90 days, counting every item that started, whether it closed or not.

A small example

Illustrative data. Ten vulnerabilities were opened in the same month.

  • Six were fixed after 5, 7, 9, 12, 20 and 30 days.
  • Four are still open at 40, 45, 60 and 60 days.

The average of the closed ones is 83 divided by 6, about 13.8 days. That reads like a team that fixes things in two weeks. But four of ten items have been open for 40 days or more, and the average ignores them completely.

Now ask a different question: what share closed within 30 days? Six of ten, or 60 percent. That is the more honest summary, and it is also easier to compare with a policy.

Why the bias is not small

The slowest items are, by definition, the last to close. If you report the average every month, the items most likely to be missing are the ones that matter most. A team that stops closing hard issues sees its average improve, because easy ones keep flowing in and out.

This is the same problem that makes median survival hard to compute in medical studies where some patients are still alive when the study ends. Their data is still useful, even though the outcome is not known yet.

A simple way to report it

You do not need statistical software. Build a table from a cohort, which is all items that opened in the same period.

  1. List how many opened.
  2. For each cut off, 7, 30 and 90 days, count how many closed by then.
  3. Divide by the number opened, not by the number closed.
  4. For cohorts too recent to reach a cut off, mark the cell as not yet measurable rather than guessing.

For the ten item cohort: 7 days gives 2 of 10, 30 days gives 6 of 10, and 90 days gives at least 6 of 10 with four unresolved.

Reading the median honestly

If at least half the cohort has closed, you can read a median. Here the median is between the fifth and sixth items, 20 and 30 days, so about 25. If fewer than half had closed, the median would be undefined, and you should say so instead of reporting an average.

The same idea powers the full Kaplan-Meier method, which adjusts the curve as items drop out of observation. A simple cohort table captures most of its value for a security review.

Related reading

Our post on mean versus median versus p90 for remediation time covers which summary to pick for closed items. This post is about the items you left out. For the link between backlog size and time open, see Little's law for vulnerability backlogs.

Quick check

Is mean time to remediate a bad metric?

It is fine as a secondary number, but alone it ignores open items and hides a long tail. Report cohort percentages and the count still open next to it.

What about items closed as accepted risk?

Count them as closed but label them. Otherwise a team can improve the number by accepting risk instead of fixing anything.

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.