Safeguard
Security Guides•

Which metrics show your SBOM program is ready for an incident?

Five measurable signals of SBOM incident readiness: coverage, depth, freshness, time to answer and unknown rate. How to compute each without gaming it.

Safeguard Security Team
3 min read

Five metrics show whether your SBOM program can support an incident: coverage of shipped releases, dependency depth, freshness, time to answer a component query, and the share of unknowns. Track them monthly, define each in writing, and watch the trend rather than a single number.

The five metrics

MetricHow to computeWhat it tells you
CoverageShipped releases with a stored SBOM, divided by all shipped releasesWhether a search can see your estate
DepthShare of SBOMs that include transitive dependenciesWhether a hit would be visible
FreshnessAge of the SBOM relative to the release or last dependency changeWhether the SBOM matches what runs
Time to answerMinutes from a component query to a three group answerReal speed, measured in drills
Unknown rateComponents with no version, or products with no SBOM, over the totalHow much of the answer is a guess

Why these five

The CISA review of the Log4j event reported that none of the SBOM-using groups it spoke with had used them to identify vulnerable Log4j deployments, and pointed to variances in field descriptions and a lack of version information among the limits. Coverage, depth and unknown rate measure exactly those limits in your own data. Time to answer measures whether the data turns into action.

Avoid vanity numbers

  • A count of SBOMs generated says little. A count of releases covered says more.
  • A high coverage figure with shallow depth gives false comfort. Report both together.
  • Time to answer measured once by an expert is not representative. Measure it in drills with whoever is on call.
  • Do not set a target so strict that teams hide unknowns. An honest unknown rate is more useful than a flattering one.

How to collect the data

  1. Keep a release register: product, version, date, SBOM location. Without it, coverage cannot be computed.
  2. Add a depth flag to each SBOM at ingestion, based on whether transitive components are present.
  3. Record generation time and the build it describes.
  4. Run the 30 minute component drill and log the time.
  5. Count unknowns as a separate line, not buried in coverage.

Reading the trend

If coverage rises but time to answer does not fall, look at storage and search, not generation. If freshness is poor, find which products rebuild often without updating the SBOM. If unknowns are stuck, the cause is usually a missing version in a lockfile or a vendored library.

Reporting to leadership

Give four lines: what share of releases can be searched, how fast you answered the last drill, what the main gap is, and who owns closing it. Keep the monthly view to one page.

Try it yourself

Click through it at your own pace, or open it full screen. Look at how monitoring surfaces new findings against an existing inventory.

Quick check

Is there a standard target for these metrics?

Not that these sources define. Set your own targets and compare with your own history.

Which one should we start with?

Coverage, because you cannot search what you have not stored.

Sources

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.