# Reforecasting From Actuals — Estimating AI Automation ROI

Source: https://www.skillbyai.com/en/ai-automation-roi/p-reforecast

> Update the case with what you learned.

## Which miss mattered most?

Replace planned values with actuals one at a time to see which gaps reduce value most, then reforecast the rest of the horizon. Use this to decide actions: improve adoption with training, fix the extraction for a document type, renegotiate prices, or stop expanding. Share reforecasts openly; organisations learn more from honest variances than from silent ones.

## Plan versus actual, one driver at a time, run

I ran this with plain Python 3. All figures belong to one worked example (an invoice-processing team) with invented but internally consistent numbers; prices are placeholders. Planned net benefit was $12,714 a month; actual is $4,245. Swapping in each actual alone shows realisation (down to $9,970), minutes saved ($10,100) and error and volume shortfalls each matter more than the higher running cost ($12,050). Together they explain the gap.

```python
plan = {"volume": 12000, "minutes_saved": 3.81, "realisation": 0.6, "error_drop": 0.025, "monthly_cost": 3016}
actual = {"volume": 10400, "minutes_saved": 2.6, "realisation": 0.4, "error_drop": 0.018, "monthly_cost": 3680}
def net(p):
    return p["volume"] * p["minutes_saved"] / 60 * 18.0 * p["realisation"] + p["volume"] * p["error_drop"] * 25.0 - p["monthly_cost"]
print(f"planned net per month: ${net(plan):,.0f}")
print(f"actual  net per month: ${net(actual):,.0f}")
for k in plan:
    print(f"  plan with only {k:<13} at its actual value: ${net({**plan, k: actual[k]}):>7,.0f}")
```

Output:

```
planned net per month: $12,714
actual  net per month: $4,245
  plan with only volume        at its actual value: $ 10,616
  plan with only minutes_saved at its actual value: $ 10,100
  plan with only realisation   at its actual value: $  9,970
  plan with only error_drop    at its actual value: $ 10,614
  plan with only monthly_cost  at its actual value: $ 12,050
```

## Fix the biggest driver first

In the example, agreeing a realisation plan (no backfill, overtime reduction) is worth more than shaving running costs.

**Quiz:** In the example, which change alone would recover the least value?

- [ ] Restoring error improvement to plan
- [ ] Improving realisation to plan
- [ ] Raising minutes saved to plan
- [x] Reducing running costs back to plan

*Answer:* Reducing running costs back to plan. Running costs were not the main problem.
