An Operational Excellence team usually works to a savings target: what the improvements it runs should deliver this year. Each automation, process change or renegotiated contract carries its share. This page follows one of them, an automation, to show how we track whether it will deliver its share, and what we do when it will not.
Forecasting, here, means answering one question every month: of the savings we are counting on, how much will really arrive by December? If the answer drops in March, there is still time to act, by speeding up the rollout or finding the difference elsewhere in the portfolio. If nobody asks until December, the target is simply missed.
I've done this kind of work on programme portfolios in regulated organisations for about ten years, usually building the forecast and the reporting. Below we follow one illustrative example through a year.
Hours freed and money saved
Take ten lab sites where staff type incoming test request forms into the laboratory system by hand. An automation will read the forms and enter most of them, once it has been validated at each site. The business case counts the hours this frees, 8,000 a year, and prices them at $50 an hour, which gives $400k.
Only part of that $400k is money. Freed hours turn into money when someone decides in advance what happens to them, and here there are two such decisions. A temporary staffing contract at two sites will end. And this year's growth in test volumes will be absorbed without the two hires already in the budget. Together they're worth $250k, and that's what counts towards our target.
The other $150k is time spread thinly across many people. We track it as capacity, but it does not count towards the target.
Rule of thumb
Two numbers with different jobs
The $250k is the target. It's agreed when the project is approved, and Finance builds it into the year's plan. After that it should hardly move. Next to it we keep a forecast: our estimate, updated every month, of how much will arrive this year.
Each month the forecast is the savings Finance has already confirmed, plus our estimate for the months left. Finance often calls this the full-year outturn, or latest estimate. In January it is all estimate. Month by month the confirmed part grows, and by the end of December nothing is left to estimate.
We keep the two apart. When the estimate is also the target, people pad it before they're held to it and inflate it when they need funding. Then it stops telling you anything about the year ahead.
Building the forecast
We build the forecast from its drivers: when each site goes live, and how quickly the tool takes over the work once it does. Those two decide when the staffing contract can end and whether the hires will be needed. When the forecast moves, we can say which driver moved it.
Go-live date. When each site starts, for example in April.
Adoption. The share of forms the tool handles: 20% in month one, 80% by month four.
Hours no longer needed. Forms handled × minutes saved per form.
Cost that stops. The staffing contract ends, or a planned hire is not made.
Saving in the month. Only the cost that stops counts. Ten sites summed, plus what is already confirmed, gives the year.
The starting values come from the process as it runs today: how many forms each site receives and how long each one takes. The laboratory system's timestamps give most of that.
A driver model is not the only way to forecast a saving. Which method we use depends on what data exists. The time-series methods have their own walkthrough.
| Method | How it works | When we use it |
|---|---|---|
| Driver model | Builds the saving from go-live dates, adoption and the costs that stop, as above. | The main forecast for anything new, where there is no history to project. |
| Time series | Projects a measured series from its own past, for example with Holt-Winters. | For drivers that have history, such as monthly form volumes. Not for the saving itself. |
| Reference class | Looks at how much similar past projects delivered against their business case. | To sanity-check the business case and set the low end of the range. |
| Scenarios | Reruns the driver model with slower adoption or later go-lives. | To turn one number into the range the portfolio plans around. |
- Driver model
- Builds the saving from go-live dates, adoption and the costs that stop, as above.
- When: The main forecast for anything new, where there is no history to project.
- Time series
- Projects a measured series from its own past, for example with Holt-Winters.
- When: For drivers that have history, such as monthly form volumes. Not for the saving itself.
- Reference class
- Looks at how much similar past projects delivered against their business case.
- When: To sanity-check the business case and set the low end of the range.
- Scenarios
- Reruns the driver model with slower adoption or later go-lives.
- When: To turn one number into the range the portfolio plans around.
In January we would report the forecast as a range, $200k to $260k, with $250k as the most likely point. The low end assumes the tool needs twice as long to take over the work, and the portfolio can plan around it.
We put the forecast together with the site managers who will run the tool, since they'll have to explain it when it misses. They also know which assumptions are weakest. Every manual change to a forecast gets a written reason, and we check those reasons later against what happened.
Month by month
Each month we recalculate the forecast from the latest drivers and set it next to the target. Pick how the year goes, and the rest of the page follows.
- 1Mar. Adoption slower at two sites
- 2Jun. One site moved to next year
- 3Nov. $5k falls into next year
Reading the chart: slower, and a site moved
Reading the gap
By December the forecast is $40k below the target. We split the gap by cause, because each cause needs a different response.
Slower adoption means our assumption was wrong. We correct it, and the next business case starts from the corrected figure. Moving a site was a decision, so we reset the forecast to the new plan and record who decided and why. The $5k is only timing and needs nothing.
If a forecast misses in the same direction month after month, we treat that as a bias in the model and fix the model. In the monthly review, the useful question is what the gap means for the rest of the year.
When Finance confirms the saving
When Finance confirms $210k in the ledger, that is the realised figure, and it's the one that goes into the scorecard. We keep the January forecast next to it so the variance stays on record. In the work management platform, every initiative carries all four numbers side by side: business case, target, forecast and realised. Added up across the portfolio, they show early where the overall target is short and which initiative can make up the difference.
The measurement has to keep running after the project closes, because that is when savings start to erode. So it belongs in the reporting system. Here that means the share of forms handled without a manual check stays on each site's dashboard, with an owner in the business once the project team has gone.
Tools
The initiatives, their owners, targets and approvals live in a work management platform, and the forecast lives there too. Each forecast change is logged against its initiative, with who made it and why, so the history is there when someone asks what moved.
Python pulls the driver data from the systems that hold it, here the laboratory system and the staffing records, and recalculates the forecast on a schedule. Power BI then shows the forecast next to the actuals, built on the same data, so the forecast and the report share one definition. An LLM workflow can draft the monthly commentary from the same numbers, for someone to check before it goes out.
Laboratory system
Form volumes and timestamps
Staffing records
Contracts and planned hires
Finance ledger
Savings confirmed each month
Python
Pulls the drivers and recalculates the forecast every day
Work management platform
Initiatives, owners, targets, approvals, and the forecast with every change logged
Power BI report
Forecast next to actuals, one definition
Monthly commentary
Drafted by an LLM workflow, checked by a person
From one initiative to the portfolio
Everything above tracks one initiative. The target, though, is set for the whole portfolio, here $125M for the year, and adding up each project's forecast overstates what the portfolio will deliver. A business case that is only an idea counts as much as one already in the ledger, and most portfolios carry more early ideas than late ones.
So at portfolio level each initiative is counted by stage, with a weight for how likely its forecast is to arrive. The stages and weights below are a starting point; the weights should come from how past initiatives at each stage actually did.
Validated idea, counted at 30%. Sized and owned, not yet approved.
Approved, counted at 70%. Business case signed, not started.
In delivery, counted at 90%. Live or rolling out, forecast monthly.
Realised, counted at 100%. Confirmed by Finance in the ledger.
Summed as reported, the forecasts come to $175M, comfortably over the $125M target. Weighted by stage they come to exactly $125M: the target is covered, with nothing to spare if one more initiative slips the way this automation did.
Where we go from here
The savings forecast answers one question about an initiative: will it return what it promised? Earned Value Management answers the other: is it being delivered for the money and in the time we planned? The two meet in the drivers. If the automation's rollout runs late, Earned Value Management shows it first, as a schedule index below 1, and the savings forecast follows once the go-live dates move. Both roll up to the portfolio: one on what the initiatives cost to deliver, the other on what they return. The Earned Value Management walkthrough shows the delivery side on one programme, played out in three scenarios.