The standard automation business case multiplies hours saved by an hourly rate and stops there. It is fast, it is defensible in a meeting, and it is wrong in both directions — it undersells automations that collapse response times, and it oversells ones that will need constant babysitting.
Here is a model that holds up.
The formula
annual_value = labour_saved + error_cost_avoided + latency_value
annual_cost = platform_fees + (build_cost × maintenance_rate)
roi = (annual_value − annual_cost) / build_cost
payback_months = build_cost / ((annual_value − annual_cost) / 12)Term 1: labour saved
The easy one, and the one everyone inflates. Two corrections to make it honest:
- Use fully-loaded cost, not salary. Salary plus payroll tax, benefits, tooling and overhead — typically 1.25–1.4× base.
- Only count hours that actually get redeployed. Saving 10 minutes a day across six people does not free up an hour of productive work; it gives six people slightly longer coffee breaks. Fragmented savings are real for morale and unreal for the P&L. Count them at a discount or not at all.
labour_saved = runs_per_year
× minutes_per_run / 60
× fully_loaded_hourly_rate
× redeployment_factor // 1.0 for a whole role, ~0.3–0.5 for fragmentsTerm 2: error cost avoided
This is usually the second-largest term and it is almost never in the model, because nobody tracks what manual mistakes cost. Manual data entry runs at roughly a 1% error rate under good conditions — well-rested people, clear source data, no time pressure. Under real conditions it is worse.
The cost of an error is not the time to fix it. It is detection time, correction time, downstream cleanup, and whatever the error cost externally before anyone noticed — a wrong invoice, a missed delivery, a customer told the wrong thing.
error_cost_avoided = runs_per_year
× error_rate // 0.005–0.02 for manual entry
× cost_per_error // detection + fix + downstream + externalTerm 3: latency value
The term that separates a good automation from a great one. Some work is worth dramatically more when it happens immediately, and for those processes latency value can exceed both other terms combined.
| Process | Manual latency | Automated latency | What it changes |
|---|---|---|---|
| Inbound lead follow-up | 2–24 hours | Under 1 minute | Contact and qualification rates move sharply — this is the best-documented latency effect there is |
| Support first response | 4–12 hours | Instant | Ticket volume drops as people stop chasing; satisfaction rises |
| Invoice dispatch | Weekly batch | On completion | Days come off days-sales-outstanding — a direct cash-flow gain |
| Stock reconciliation | Nightly or weekly | Continuous | Oversells and the refunds that follow them stop happening |
Latency value is the hardest term to estimate and the easiest to validate: run the automation for one month against a holdout and measure the conversion or cycle-time difference directly.
Term 4: the maintenance drag
Every model I see treats the build as a one-off cost and the automation as permanent. Neither is true. APIs change, business rules change, vendors change their formats. Budget 10–20% of the build cost per year — the low end for a two-system automation on stable APIs, the high end for anything touching scraped pages, email parsing or a vendor with a habit of shipping breaking changes.
Automations that skip this are the ones described in why automations rot: still running, quietly producing wrong output that nobody has checked in eight months.
A worked example
Inbound lead routing for a services business: form submission to CRM record, enrichment, owner assignment, Slack alert, first-touch email.
| Term | Working | Annual |
|---|---|---|
| Labour saved | 1,200 leads × 6 min ÷ 60 × €38/h × 0.5 | €2,280 |
| Errors avoided | 1,200 × 1.5% mis-routed × €140 per lost lead | €2,520 |
| Latency value | 1,200 × 2pp contact-rate lift × €900 avg deal × 12% close | €2,592 |
| Annual value | €7,392 | |
| Platform fees | €40/mo | −€480 |
| Maintenance | 15% of €4,500 build | −€675 |
| Net annual | €6,237 |
That gap — nine months versus nine weeks — is the entire argument for modelling all three terms. On the labour-only number this project does not get approved.
When the answer is no
The model should be able to tell you not to build. Walk away when:
- The process runs fewer than ~50 times a year. There is not enough repetition to amortise anything.
- The process is about to change. Automating a workflow that is mid-redesign means building it twice.
- Payback exceeds 18 months. Something cheaper is available — usually deleting a step rather than automating it.
- Nobody will own it. An unowned automation has a maintenance rate of 0% and a lifespan to match.
Frequently asked questions
What is a good ROI for a business automation project?
For a well-scoped single-process automation, expect payback within three to six months and a first-year ROI in the range of 150–400% once labour, error and latency value are all counted. Anything promising more than that deserves scrutiny — it usually means the labour estimate assumed hours that will never actually be redeployed.
How do I estimate the cost of a manual error?
Add four things: the time to notice it, the time to correct it and everything downstream of it, the cost of any external consequence (a refund, a re-shipment, a lost deal), and the share of errors never caught at all. Most teams find the number is several multiples of the raw fix time. If you have no data, take the last three errors you remember and cost them out individually.
Should maintenance be counted as cost or capitalised with the build?
Count it as recurring operating cost. Treating it as part of the build hides it and it stops getting funded, which is precisely how automations end up unmaintained. A line item of 10–20% of build cost per year, visible in the model, is what keeps someone assigned to it.
Does automation ROI include headcount reduction?
Only if you will actually reduce headcount, which most teams neither intend nor do. The realistic version is capacity: the same team absorbing more volume without hiring. Model it as avoided future hires rather than eliminated current ones — it is more honest and, in a growing business, a larger number.