Skip to content
CMMS

How to Calculate CMMS ROI: A Worked Example That Holds Up

How to calculate CMMS ROI without vendor inflation: baseline first, hard versus soft savings, the full cost of ownership, and a worked example in pounds.

Shane Price
Shane Price
AssetOS
·October 5, 2026·10 min read
assetos cli — cmms roi
visitor@assetos.io:~$ assetos report --roi --period 12m
✓baseline captured · 8 weeks
→hard savings · £18,300
·payback · month 11
visitor@assetos.io:~$

How to Calculate CMMS ROI: A Worked Example That Holds Up

Every vendor has an ROI calculator. Type in your headcount, pick an industry, and it tells you the software pays for itself nine times over. Your finance director has seen that page before. The number they want is the one that survives the second question: "where does that saving actually show up in the accounts?"

This guide is about building that number. The formula takes thirty seconds. The work is in the inputs, and most CMMS ROI cases fall apart because the inputs were borrowed from a brochure instead of measured on your own site.

How to calculate CMMS ROI: the formula

Two lines cover it.

  • ROI (%) = (annual benefit − annual cost) ÷ annual cost × 100
  • Payback (months) = total first-year cost ÷ average monthly benefit

That is the easy part. Everything below is about what you are allowed to put in "benefit" and what you have to put in "cost".

Step 1: Measure the baseline before you sign anything

You cannot show an improvement against a number you never recorded. If the business case says "we'll cut emergency call-outs by 40%", the first question back is "from what?", and "roughly a dozen a year, I think" does not survive a budget meeting.

Spend four to eight weeks capturing a handful of figures before you buy. A spreadsheet is fine for this; the point is that the numbers exist and you can show where they came from.

  • Planned versus reactive split. Count jobs for the period and tag each one. Most teams moving off paper are 60–80% reactive and have never measured it.
  • Admin hours per technician per week. Time spent finding the last job sheet, chasing the parts order, filling in the compliance log, asking who did what. Ask each technician to track it for a fortnight; it is usually 4–8 hours.
  • Overtime and contractor call-outs. Pull twelve months from payroll and purchase ledger. These are the cleanest numbers you will have because finance already trusts them.
  • Emergency parts purchases. Next-day courier, non-contract suppliers, the premium paid for the pump that failed on a Friday.
  • Downtime on your critical assets. Hours lost, and what an hour costs on that line. Your maintenance KPIs post has the definitions; if you want to pin down repair time specifically, the MTTR calculator gives you a consistent method.
  • Missed or late statutory inspections. Count them. Each one is a risk you will be able to price later.

Skip this and you will be measuring the CMMS against a guess.

Step 2: Count the full cost, not the licence

The licence is usually the smallest line. The cost that gets left out is your own team's time, and leaving it out is the quickest way to lose credibility with whoever signs off.

Cost lineWhat it includesTypical mistake
Software licencePaid seats × 12 monthsQuoting the headline seat price and forgetting the tier you actually need
Implementation timeAsset register clean-up, importing history, building PM schedulesTreating it as free because "we're doing it in-house"
TrainingTechnician hours in sessions plus the first slow fortnightCounting the session, not the ramp
HardwareTablets, label printer, QR tagsAssuming everyone will use their own phone
IntegrationFinance or ERP connection if you need oneDiscovering it is a paid add-on in month four
Ongoing adminSomeone owning the system: new assets, schedule tweaks, reportsAssuming it runs itself after go-live

Price internal hours at loaded cost, not base salary. A technician on £30,000 costs the business closer to £38,000 once you add employer contributions, holidays and the van, which works out around £22 an hour. The CMMS implementation checklist gives you a realistic task list to estimate those hours against.

One more thing on cost: "free" tiers are not free once you hit the caps and have to migrate or upgrade mid-project. The hidden cost of free CMMS software covers how that plays out. Put the real tier in the model from the start.

Step 3: Separate hard savings from soft savings

This is where most CMMS ROI calculations inflate.

Hard savings reduce cash leaving the business. They show up in a ledger line that goes down.

  • Overtime hours reduced
  • Contractor emergency call-outs avoided
  • Premium paid on emergency parts
  • Lost production, but only where the line was genuinely capacity-constrained and the output would have been sold
  • Compliance penalties or failed audits avoided
  • Capital spend deferred because an asset's life was extended

Soft savings are capacity. The hours exist, but no cheque gets smaller unless you do something with them.

  • Technician time freed from paperwork and searching
  • Faster reporting for management
  • Fewer arguments about who did what

The rule: build the ROI on hard savings only. Show soft savings on a separate line, in hours, and say what you intend to do with those hours. If the freed time lets you bring a contracted job back in-house, that part becomes a hard saving and you can move it across. If it does not, it stays as capacity.

Vendor calculators collapse these together and multiply freed hours by an hourly rate. That is how a five-person team "saves" £90,000 a year without a payroll line changing. Finance knows this trick.

A worked example

The following is a hypothetical single-site operation, built to show the method. The figures are plausible for a small UK manufacturing or food-processing site, but they are not a customer result. Plug in your own baseline.

The site: five technicians, around 220 maintained assets, one production line that matters and a lot of supporting plant. Mostly paper job sheets and a shared spreadsheet. Baseline measured over eight weeks and annualised.

Baseline (per year):

MeasureBaseline
Reactive share of jobs72%
Admin hours per technician per week6
Overtime spend£18,000
Emergency contractor call-outs14 at roughly £450 each
Emergency parts premium£2,400
Unplanned downtime on the main line36 hours at £600 per hour

First-year cost:

Cost lineAssumptionAmount
Licence5 paid seats at £35 per seat per month£2,100
Implementation120 hours of internal time at £28 (supervisor rate)£3,360
Training5 technicians × 8 hours at £22, plus 10 supervisor hours£1,160
Hardware3 rugged tablets, printer, tags£1,500
Ongoing admin2 hours a week at £28, from month three£2,300
Total year one£10,420

Ongoing cost from year two is the licence plus admin: roughly £5,000.

Hard savings, conservative, after a three-month ramp:

SavingAssumptionAmount
Overtime20% reduction as planned work displaces Friday-afternoon failures£3,600
Contractor call-outs14 down to 8£2,700
Emergency parts premiumHalved, because the PM schedule now tells you what you need next month£1,200
Downtime on the main line36 hours down to 18£10,800
Total hard savings£18,300

Soft savings, shown separately: admin time drops from 6 hours to 2 hours per technician per week. That is around 1,000 hours a year, or roughly half a technician. It is real, but it is capacity, not cash. The site's plan is to use it to clear the PM backlog that is currently being deferred, which is what drives the downtime figure above. It does not get added to the ROI.

The numbers:

  • Savings only start in month four, so the first-year benefit is nine months' worth: about £13,700.
  • First-year ROI = (13,700 − 10,420) ÷ 10,420 × 100 = 32%
  • Payback: at £1,525 a month from month four, the £10,420 is recovered in month eleven.
  • Year two onward: (18,300 − 5,000) ÷ 5,000 × 100 = 266%

A 32% first-year return is nowhere near the 400% figures in vendor material. It is also a number you can defend line by line, and that is worth far more in the meeting.

The sensitivity test

Before you present it, halve the benefits and see what happens. In the example above, hard savings drop to £9,150 a year, or about £6,850 in the nine months of year one, against a first-year cost of £10,420. Year one is negative. Year two is still 83% positive and payback moves to around month seventeen.

That is the honest shape of a CMMS business case for a small site: a modest first year while the data builds and the team adjusts, then a clear return once the planned-maintenance share climbs. If the case only works at full benefits, it is not a case.

Where CMMS ROI calculations fall apart

A short list of the things that get a business case sent back.

  1. Freed hours counted as cash. Covered above. It is the most common one.
  2. Benchmark percentages instead of your baseline. "Industry data shows 25% lower maintenance cost" is not evidence. Your eight weeks of counted call-outs is.
  3. Downtime priced at full line rate when the line was not sold out. If there is slack capacity, the real cost is labour standing idle plus any overtime to catch up, not revenue per hour.
  4. Double counting. Overtime reduction and downtime reduction often come from the same avoided failure. Pick one place to book each pound.
  5. No adoption risk. A CMMS that technicians do not use returns nothing. Assume a ramp, and build in that the first three months produce data, not savings. The manufacturing downtime post is worth a read on what unplanned stoppages really cost once you look past the headline rate.
  6. A baseline taken in a good month. Use at least two months, including a known bad period.

Presenting it

One page. Baseline figures with the dates they were measured. Full first-year cost with internal hours priced. Hard savings with the assumption next to each line. Soft savings in hours, separate. ROI, payback, and the halved-benefit case. Then a review date at six months where you bring back the same baseline measures and show what moved.

Where AssetOS fits

If adoption risk is the thing most likely to sink your ROI, pricing that charges for every operator who logs a defect makes it worse, because people stop reporting. AssetOS only charges for the people who get work orders assigned; requesters, operators and drivers running daily checks are free on every plan. That keeps the licence line small and the reporting coverage wide, which is where the downtime savings in the example come from.

If you want a second pair of eyes on your own baseline and cost model before you present it, book a call and bring the spreadsheet.

Share
Shane Price

Shane Price

AssetOS

Writing about maintenance management, CMMS implementation, and the real challenges operations teams face.

Related reading