Safeguard
Security Guides•

Age of open findings vs time to fix: which metric to track

Time to fix only counts closed items. Age of open findings counts the ones nobody has fixed. See why you need both and how to chart them together.

Safeguard Security Team
3 min read

Track both. Time to fix describes the findings you have already closed, so it looks backward. Age of open findings describes what is still exposed today. If you can only show one to leadership, show the age distribution of open items past SLA, because it cannot be improved by ignoring hard work.

The survivorship problem

Any metric computed from closed items has a built in blind spot. The findings that never close never enter the average. A team can improve its reported time to fix every month while a pile of hard items grows older.

Age of open findings fixes that. Every unresolved item counts, every day, until it is done.

What to chart

Use an age histogram with buckets that match your SLA tiers, for example under 7 days, 7 to 30, 30 to 90, over 90. Colour the buckets that are past SLA. Plot it by severity or by priority tier.

Add two summary numbers:

  • Median age of open items in the tier.
  • Oldest open item, with owner and reason.

Naming the oldest item sounds harsh but it works. It prompts a conversation about whether the item should be fixed, mitigated or formally accepted.

When each metric is better

Use time to fix when you are judging process changes. If you introduce automated fix pull requests, time to fix for the affected class should drop. It is a good before and after measure.

Use open age when you are judging risk right now, or when reporting to people who care about exposure rather than process.

Use both when you worry about gaming. A rising oldest item next to a falling median time to fix is a classic sign of cherry picking.

Inflow and outflow

Pair the age chart with a simple flow view: findings opened per week versus closed per week. If inflow exceeds outflow, the backlog grows no matter how good the median looks. We cover the net view in net vulnerability debt.

Handle accepted risk visibly

Accepted risk items should stay on the chart in a separate colour, with an expiry date. If they vanish from the chart, the age metric becomes another way to hide problems. Review expiries on a schedule so accepted risk does not turn into forgotten risk.

Avoid resetting age on reassignment

Moving a ticket between teams, or re-creating it after a scan, should not reset the age. Key the finding on a stable identifier, such as asset plus package plus vulnerability, rather than on ticket id.

A short example

A team closes eight critical findings in a month, all within a week, so time to fix looks excellent. Meanwhile two critical findings from last year are still open because they need a framework upgrade. The closed metric says seven days. The open age says a median of 300 days for the stuck pair.

Both statements are true. Only the second one tells you where an attacker would look. Showing them on the same slide stops the conversation from being about the good news alone, and gets the upgrade planned.

Quick check

Does age of open findings replace SLA compliance?

No, but it adds what compliance rate hides: how far past SLA the late items are.

How often should the age chart refresh?

Daily is ideal because it is cheap, but review it weekly.

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.