Safeguard
Developer Tools•

How long will a dependency upgrade take? Estimate from past upgrades

Estimate a dependency upgrade by sorting your past upgrades into patch, minor and major classes and reading the range, not by guessing from the changelog.

Safeguard Security Team
4 min read

Estimate a dependency upgrade by looking at what similar upgrades actually cost your team before. Sort past upgrades into classes such as patch, minor and major, record elapsed time for each, and quote the range for the matching class. This beats guessing from the changelog.

The method has a name

Reference class forecasting predicts the outcome of a planned action by looking at the actual outcomes of similar past actions. It grew out of work by Daniel Kahneman and Amos Tversky, who found that people tend to underestimate the costs and completion times of planned actions because they take an inside view, focusing on the details of the task in front of them.

An upgrade is a perfect fit. You think "just bump the version," while your own history shows the last three major bumps each took a week.

How to build the estimate

Step 1: collect the history

Pull the last 10 to 20 dependency upgrade pull requests from your repositories. For each, record:

  • The kind of change: patch, minor or major version, or a switch to a different package
  • Elapsed time from first commit to deploy, and separately the hands-on time if you know it
  • Whether tests broke, and whether other code had to change
  • Whether the package is a direct or transitive dependency

If your history is thin, borrow from adjacent teams who use the same stack.

Step 2: build a small table

Here is an example layout with made up numbers, only to show the shape.

ClassCountTypical elapsed timeWorst seen
Patch, direct12Same day2 days
Minor, direct81 to 2 days1 week
Major, direct41 to 2 weeks5 weeks
Transitive, forced via override51 day3 days

Do not trust the semver label blindly. Semantic versioning is a promise from the maintainer, not a guarantee. See semver patch, minor and major: how risky is this fix PR for what to check.

Step 3: adjust for the case in front of you

The class gives a starting range. Adjust with a short list of questions:

  1. How many places in the code call the package's changed APIs?
  2. How good is test coverage around those places?
  3. Does the release note list breaking changes?
  4. Is the deploy pipeline slow or gated by a weekly window?

Each yes to a risky question pushes you toward the worst seen number, not the typical one. Say so out loud. "Typical for this class is two days, but we have thin tests here, so plan for the worst seen."

Keep the table alive

After each upgrade, add a row. After a quarter you will have a better table than any estimator's gut. Review it at a planning session, and use it to size security fixes alongside features. For tasks with wide ranges, combine this with a three-point estimate as in three-point estimates for security fixes.

Try it yourself

In the demo, look at how a fix is presented once it is available, and note which details, such as the version jump, you would feed into your own reference table.

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

Safeguard's SBOM and dependency scanning shows whether a vulnerable package is direct or transitive and which version fixes it, which are the inputs for picking the right row in your table. Its fix pull requests are off by default and every category starts on Manual.

Quick check

What if we have no history to use?

Start recording now, and for the first quarter use a wide range and a spike for anything uncertain. Borrowing data from a neighbouring team on the same stack is better than none.

Does elapsed time or effort matter more?

For scheduling, elapsed time, because it includes waiting for review and deploys. Track hands-on effort too if you plan capacity in hours.

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.