Automation payback: a formula that counts the time to fix it
Much of upkeep does not shrink with a task's size, so it sinks small automations first. A tested template, priced with US wage data.
The short read
In our worked example, a monthly task looked like a 19-month payback until upkeep was counted; then it never paid.
- Our tested template adds yearly upkeep and failure hours to the usual sum, priced at $36.63 an hour for a median bookkeeping clerk.
What you can do with this
Before building an automation, fill in the template with your numbers and log every fix. If payback reads never, simplify or skip it and keep the build hours.
In this article
- The formula has four parts, and upkeep is the one people skip
- Price an hour at what it costs the employer, not the wage
- The template, with every formula written out
- Three examples, with assumed tasks and sourced prices
- Upkeep barely moves the big task and erases the small one
- How we built and checked the template
- Measure upkeep instead of guessing it
- What the formula leaves out
- Run it on one task this week
The simple payback sum for an automation counts minutes saved and hours to build, then stops. It leaves out the hours spent fixing it afterward.
Those hours are built into the platforms. Power Automate turns off a cloud flow whose trigger or actions fail continuously for 14 days, and Zapier turns off a Zap that errors 95% of the time it runs. Someone then has to notice it and redo the missed work.
That matters most for the small tasks people automate first. Much of upkeep is fixed: reconnecting a login or adjusting to a renamed column takes the same hour whether the task runs 12 times a year or 3,000. So upkeep can eat a small saving whole.
This guide gives the formula, a spreadsheet template we built and tested, and three worked examples priced with US government wage data.
The formula has four parts, and upkeep is the one people skip
Write the yearly saving in hours first, then turn hours into money. Here is the whole model, with each input named:
- Hours saved per year, before upkeep = runs per year × (minutes by hand − minutes still spent after automating) ÷ 60
- Upkeep hours per year = fixed upkeep hours + failures per year × minutes per failure ÷ 60
- Net value per year = (hours saved − upkeep hours) × loaded cost per hour − tool cost per year
- Payback in months = build hours × loaded cost per hour ÷ net value per year × 12
“Minutes still spent after automating” is the check you keep doing: opening the sheet and fixing a typo the tool copied in. It is rarely zero. “Fixed upkeep” is the work that comes whether or not anything breaks, such as reconnecting an expired login or re-testing after a tool update. “Minutes per failure” covers noticing the failure, fixing it and doing the missed runs by hand.
If net value per year is zero or below, the automation never pays back. No build cost is small enough to save it.
Price an hour at what it costs the employer, not the wage
A saved hour is worth what the employer pays for it, which is more than the hourly wage. The US Bureau of Labor Statistics measures both halves.
The wage comes from the Occupational Employment and Wage Statistics survey. In the May 2025 national file, which we downloaded and read on 20 October 2026, the median hourly wage for bookkeeping, accounting and auditing clerks is $24.36. For general office clerks it is $21.64, and for all occupations $24.51.
The rest comes from the Employer Costs for Employee Compensation release. In June 2026, wages and salaries made up 66.5% of total compensation for civilian workers in office and administrative support jobs, where total compensation averaged $38.27 an hour. The other third is benefits. For all private industry workers the wage share was 70.0%.
So the loaded cost per hour is the wage divided by the wage share. For a bookkeeping clerk at the median: $24.36 ÷ 0.665 = $36.63. Treat it as an approximation, because it applies a group average to one occupation’s median.
The template, with every formula written out
Put labels in column A and your numbers in column B. Rows 2 to 12 are inputs; rows 14 to 23 are formulas. We tested them in LibreOffice Calc; they use only IF and MAX, which Excel and Google Sheets also have. You can also download the template as an .xlsx file, with our three examples filled in and a fifth column to type over.
| Row | Column A | Column B |
|---|---|---|
| 2 | Runs per year | your number |
| 3 | Minutes per run by hand | your number |
| 4 | Minutes per run still spent after automating | your number |
| 5 | Hours to build and test | your number |
| 6 | Upkeep hours per year | your number |
| 7 | Failures per year | your number |
| 8 | Minutes per failure (notice, fix, redo by hand) | your number |
| 9 | Tool cost per year ($) | your number |
| 10 | Hourly wage ($) | 24.36 |
| 11 | Wages as share of total pay cost | 0.665 |
| 12 | Horizon (years) | 3 |
| 14 | Loaded cost per hour ($) | =B10/B11 |
| 15 | Hours saved per year, before upkeep | =B2*(B3-B4)/60 |
| 16 | Upkeep and failure hours per year | =B6+B7*B8/60 |
| 17 | Net hours saved per year | =B15-B16 |
| 18 | Net value per year ($) | =B17*B14-B9 |
| 19 | Build cost ($) | =B5*B14 |
| 20 | Payback (months) | =IF(B18<=0,"never",B19/B18*12) |
| 21 | Net over horizon ($) | =B18*B12-B19 |
| 22 | Most build hours that still break even | =MAX(0,B18*B12/B14) |
| 23 | Payback if upkeep is ignored (months) | =IF(B15*B14-B9<=0,"never",B19/(B15*B14-B9)*12) |
Row 22 answers the question people usually ask first: how long can I spend building this? It is the build budget over your horizon, after upkeep. Row 23 is there for comparison. It is the simple sum without upkeep, and the gap between rows 20 and 23 is the cost of ignoring upkeep.
If someone else builds it at a different rate, scale the build hours. Ten hours from a contractor who costs twice the loaded rate go in row 5 as 20.
Three examples, with assumed tasks and sourced prices
These are examples. The task counts, minutes, build hours and failure rates below are our assumptions, chosen to show how the formula behaves; they are not measurements. The wage, the wage share and the tool price are real and sourced above. All three use a three-year horizon.
- Example A, invoice emails into a sheet. 12 a day on 250 working days, so 3,000 runs a year. 4 minutes by hand, 30 seconds of checking after. 30 hours to build, 10 hours of upkeep a year, 24 failures a year at 30 minutes each. It runs on Zapier’s Professional plan, which the pricing page listed at $19.99 a month billed annually ($239.88 a year) when we read it on 20 October 2026. That plan includes 750 tasks a month. Zapier counts a task for each successful action, not for the trigger, so a two-action Zap uses about 500 a month here.
- Example B, a weekly report. 52 runs, 45 minutes by hand, 5 minutes of checking after. 12 hours to build, 8 hours of upkeep, 6 failures a year at an hour each. No tool cost, assuming one of the schedulers that come with Google Workspace or Microsoft 365.
- Example C, a monthly export. 12 runs, 30 minutes by hand, 5 minutes of checking. 8 hours to build, 4 hours of upkeep, 2 failures at an hour each. No tool cost.
Upkeep barely moves the big task and erases the small one
Before reading the table, guess which one upkeep hurts most. LibreOffice Calc returned these results from the template:
| Example A | Example B | Example C | |
|---|---|---|---|
| Hours saved per year, before upkeep | 175 | 34.7 | 5 |
| Upkeep and failure hours per year | 22 | 14 | 6 |
| Net hours saved per year | 153 | 20.7 | −1 |
| Net value per year | $5,364.75 | $757.05 | −$36.63 |
| Build cost | $1,098.95 | $439.58 | $293.05 |
| Payback, upkeep counted | 2.5 months | 7.0 months | never |
| Payback, upkeep ignored | 2.1 months | 4.2 months | 19.2 months |
| Net over three years | $14,995.31 | $1,831.58 | −$402.95 |
| Most build hours that still break even | 439 | 62 | 0 |
Upkeep took 13% of Example A’s gross saving and barely moved its payback. It took 40% of Example B’s and stretched payback by two thirds. Example C saves 5 hours a year and costs 6 to keep alive. Counted without upkeep, it looks like a 19-month payback; counted honestly, every hour spent building it is lost.
The sensitivity is steep for mid-sized tasks. Holding everything else in Example B fixed, we varied its total upkeep and failure hours:
| Example B upkeep and failure hours per year | 0 | 7 | 14 | 28 |
|---|---|---|---|---|
| Payback | 4.2 months | 5.2 months | 7.0 months | 21.6 months |
At 34.7 hours of upkeep a year, Example B’s whole saving is gone. Example A could absorb 168 hours before it stopped paying.
How we built and checked the template
We wrote the template with Python’s openpyxl library, with formulas in the cells rather than typed results. LibreOffice 24.2 in headless mode opened and calculated it, then exported the values to CSV. A separate Python function recomputed the same model from the inputs. All 30 results (ten outputs for three examples) matched to within a cent:
Example C
Net hours saved per year LO= -1 PY= -1.0 OK
Payback (months) LO= never PY= never OK
Payback if upkeep is ignored (months) LO= 19.2 PY= 19.2 OK
The check catches typing slips in the formulas, not wrong assumptions. If your inputs are guesses, the payback is a guess with decimals.
Measure upkeep instead of guessing it
The weakest input is upkeep, and the platforms do not total it for you. Power Automate keeps run history for 30 days, so a failure from last quarter is gone unless you wrote it down. Keep a two-column log next to the automation: date, minutes spent. Every fix and every manual redo goes in it.
Some upkeep is forced on you. Power Automate may turn off a cloud flow that has not been triggered for 90 days, unless the owner has a premium or capacity license. It notifies owners 30 days before, so someone has to read that email. A flow that runs quarterly or less often is the one this rule catches.
Zapier’s shutoff needs volume too: beside the 95% error rate, it lists a Zap that has run more than 20 times in the past 7 days. Either way, a turned-off automation saves nothing until someone turns it back on.
For a new automation with no history, borrow numbers from the old ones. If you have none, start with the hours you spent building it and assume a share comes back every year. Then run row 23 against row 20 and see how far apart they land. Our guide to scheduled scripts that fail silently covers making failures visible, which shortens the “notice” part of every failure.
What the formula leaves out
Money saved is real only if the freed hours go to other paid work. If a clerk’s time would sit idle, the saving is time, not cash. The formula also ignores the cost of an error the automation makes and nobody catches, which can exceed everything else. Our piece on five tests before buying automation covers that risk.
Time-only charts, such as xkcd’s Is It Worth the Time?, give a build budget from frequency and minutes saved, with no upkeep line. The same comic site’s Automation strip draws the missing line as ongoing development. The template puts a number on it, and our recomputed xkcd table applies upkeep to the comic’s own cells.
Run it on one task this week
Pick the automation you are about to build, or the one already running that annoys you most. Fill column E of the downloaded template with its numbers, and start the upkeep log the same day. If row 20 says “never”, stop or simplify it before spending more hours. If you still need a candidate, the one-week tally method finds the tasks that repeat most; more guides sit under automation.
Sources
- US Bureau of Labor Statistics: Occupational Employment and Wage Statistics, May 2025 national data (XLSX), downloaded 20 October 2026
- US Bureau of Labor Statistics: Employer Costs for Employee Compensation, June 2026, table 2 (civilian workers by occupational group)
- US Bureau of Labor Statistics: Employer Costs for Employee Compensation news release, June 2026
- Microsoft: Limits of automated, scheduled and instant flows, Power Automate
- Zapier: Zap is not running
- Zapier: How is task usage measured in Zapier
- Zapier: Plans and pricing, read 20 October 2026
- Randall Munroe: Is It Worth the Time?, xkcd 1205, and Automation, xkcd 1319