How to Calculate the ROI of a Software Project
Practice3 minInnovialabs editorial team
In short
ROI = (benefit − cost) / cost × 100%, where benefit is savings plus extra profit over a chosen period and cost is the total cost of ownership including support; the payback period shows when accumulated benefit covers the investment.
The ROI formula
ROI (return on investment) shows how much you get back for every unit of money invested:
ROI = (Benefit − Cost) / Cost × 100%
Both values are calculated over the same period — usually 2-3 years, because software rarely pays off immediately. The second key metric is the payback period: how many months it takes for the accumulated benefit to equal the investment.
Step 1. Count the full cost
A common mistake is counting only development. Calculate the TCO (total cost of ownership):
- development: analysis, design, coding, testing;
- infrastructure: servers, cloud, domains, third-party APIs;
- licenses and subscriptions for services you use;
- support and improvements after launch;
- rollout: staff training, data migration;
- your own team's time spent on requirements and acceptance.
Step 2. Estimate the benefit
Benefits come in two kinds.
Savings:
- staff hours freed by automation (hours × hourly cost);
- fewer errors and the losses they cause;
- retiring old systems and subscriptions.
Revenue growth:
- new sales through a new channel (website, bot, app);
- higher conversion or average order value;
- more repeat purchases thanks to CRM and messaging.
Estimate conservatively and base it on your current numbers: how many leads get lost, how much time goes into routine work. Write down every assumption — you will need to revisit them.
Step 3. A worked example
A hypothetical example in abstract units (u) — a company introduces a CRM that automates lead handling. Horizon: 3 years.
| Item | Amount |
|---|---|
| Development and rollout (one-off) | 100 u |
| Support and infrastructure | 20 u per year |
| Managers' time saved | 60 u per year |
| Extra profit from fewer lost leads | 20 u per year |
Cost over 3 years: 100 + 20 × 3 = 160 u Benefit over 3 years: (60 + 20) × 3 = 240 u
ROI = (240 − 160) / 160 × 100% = 50%
Note: count profit from sales as the benefit, not total revenue — otherwise ROI will be inflated.
Step 4. Payback period
Net benefit per month: (80 − 20) / 12 = 5 u. Payback period: 100 / 5 = 20 months.
Keep in mind that benefits rarely start on day one: during development and rollout they are zero. So the real payback period, counted from the start of the project, will be longer.
Making the estimate more reliable
- Calculate three scenarios — pessimistic, base and optimistic.
- Start with an MVP: test the key hypothesis cheaper and refine the numbers with real data.
- Record metrics before launch so you have something to compare against.
- Track intangible effects separately: customer convenience, data transparency, less dependence on specific people. They are hard to convert into money but still affect the decision.
Common mistakes
- Counting development and forgetting support.
- Using revenue instead of profit.
- Choosing too short a horizon — software rarely pays off within a few months.
- Never checking the estimate after launch.