Safeguard
Security Guides•

How do you keep finding age and SLA from resetting in a new scanner?

Store the original first detected date as its own field when you migrate scanners so finding age and SLA reports stay honest instead of restarting.

Safeguard Security Team
4 min read

Carry the original first detected date into the new scanner as a separate field, and compute age and SLA from it. If the new tool cannot store it, keep a sidecar table keyed by package, version and advisory. Without it, every old finding looks brand new and your overdue count collapses to zero overnight.

Why the reset happens

Most scanners stamp a finding with the date it was first seen by that tool. Switch tools and every finding is "first seen" on cutover day. Reports that count days open, mean time to remediate, or SLA breaches will show a sudden miracle. Leadership may celebrate. An auditor will not.

The public schemas treat the date as first class data. The GitHub REST API for dependency alerts returns a created_at timestamp per alert, and the CycloneDX 1.6 analysis block has a firstIssued field. The idea is the same: a finding has a birth date that belongs to the vulnerability on your component, not to the tool.

Three places to keep the date

OptionHow it worksTrade off
Native field in the new toolImport sets first detectedCleanest, but not all tools allow it
Custom label or propertyStore the date as a tag or custom attributeWorks, but reports may ignore it
Sidecar tableSpreadsheet or database keyed by component and advisoryAlways possible, needs a join in reports

Ask the new vendor early which of these they support. If the answer is "none", plan for the sidecar.

Steps

  1. Export created or first detected date for every open finding from the old tool. Also export it for findings fixed in the last 12 months, so closed trends stay intact.
  2. Build a key for each row: package identifier, version and advisory ID. Include advisory aliases, because the new tool may use a different primary ID.
  3. After the first scan in the new tool, join on the key and write the old date into whatever field you chose.
  4. Report the unmatched rows. These are findings the old tool had and the new one lacks, or the reverse, and both need a look.
  5. Freeze the sidecar after cutover. New findings use the new tool's own date.

Decide how SLA clocks should behave

Dates are a fact, but SLA treatment is policy. Some teams choose to restart clocks for old findings with a one time grace period, because the new tool surfaced items the old one missed. If you do that, write it down, set an end date for the grace period, and report the two populations separately.

A defensible pattern is: findings carried over keep their original date and original SLA; findings found only by the new scanner start their clock on the day the new scanner reported them. That treats discovery date honestly in both cases.

Check the numbers before and after

Pick three metrics, such as median open age, count over SLA, and mean time to remediate for the last quarter. Record them the day before cutover and the day after. They should barely move. A large jump means the dates were not carried or the join missed rows.

Try it yourself

Open the demo and watch how a monitored finding accumulates history over time. That running record is what you want to survive the switch.

Click through it at your own pace, or open it full screen.

Quick check

Should fixed findings keep their dates too?

Yes, for at least the last reporting period. Trend lines and remediation time metrics depend on them.

What if the old tool only shows scan date, not first detected?

Use the earliest scan in which the finding appeared. If that is unavailable, label the date as approximate in your records.

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.