Input 1 — Recovered hours
From your time study, take administrative hours per job that a system can absorb: re-entry, reminder-chasing, status communication, document preparation. Multiply by monthly job volume and a loaded hourly cost.
Be honest about what happens to those hours. If nobody's workload actually changes, the saving is capacity, not cash — which is still valuable, but it should not be modelled as a cost reduction.
Input 2 — Recovered revenue
Estimate work that currently slips: unsold estimates never followed up, leads that went unanswered, jobs completed but invoiced late or not at all. Apply your own close rate and average ticket, and use the conservative end of the range you observe.
Input 3 — Avoided cost
- Subscriptions retired by consolidation.
- A deferred hire, counted only if the deferral is genuinely credible.
- Rework, penalties or write-offs traced to coordination failures.
Input 4 — Full cost of the change
- Subscription and implementation.
- Data migration and clean-up time.
- Training and the temporary productivity dip during transition.
- Ongoing configuration and exception handling.
Assumptions you must state
Write them down next to the model: adoption rate, ramp period, whether volume is assumed flat or growing, and what happens to recovered hours. A model without stated assumptions cannot be audited later, and a model nobody can audit will not survive its first bad month.
There is no universal ROI figure for operational software. Any number that arrives without your inputs in it is marketing, not analysis.