Lesson 14 / 25
NPV and Payback for the Worked Example
Bring benefits and costs together.
Monthly cash flows, discounted
Combine the pieces into monthly cash flows: realised labour savings plus error savings minus running, monitoring and maintenance costs, after a one-off investment. Accumulate to find the payback month, discount each month to compute NPV, and report a simple ROI for reference. Keep the model transparent (a few named inputs), so others can challenge each assumption.
From point estimates to ranges
NPV and payback give the headline; sensitivity and simulation show how fragile it is.
NPV and payback for the invoice automation, run
I ran this with plain Python 3. All figures belong to one worked example (an invoice-processing team) with invented but internally consistent numbers; prices are placeholders. With $13,716 of freed staff time at 60% realisation, $7,500 of error savings and $3,016 of monthly costs, the net benefit is $12,714 a month. The $53,000 investment pays back in month 5, and the three-year NPV at 10% is about $343,000.
one_off = 53000
labour_saved = 12000 * 3.81 / 60 * 18.0 # $13,716 of staff time freed per month
realisation = 0.6 # share of freed time that turns into money
error_saving = 12000 - 4500 # error cost today minus with AI + review
monthly_cost = 3016 # run + monitoring + maintenance
net = labour_saved * realisation + error_saving - monthly_cost
cum, npv, payback = -one_off, -one_off, None
for m in range(1, 37):
cum += net
npv += net / 1.10 ** (m / 12) # 10% annual discount rate
if payback is None and cum >= 0: payback = m
print(f"net benefit per month: ${net:,.0f}")
print(f"payback month: {payback}")
print(f"3-year NPV at 10%: ${npv:,.0f}")
print(f"3-year simple ROI: {(net * 36 - one_off) / one_off:.0%}")
Output:
net benefit per month: $12,714 payback month: 5 3-year NPV at 10%: $343,492 3-year simple ROI: 764%
Keep inputs on one sheet
List every input with its source and owner at the top of the model; reviewers should be able to change one and see the result.
Quick check: In the example, which input converts freed hours into money?
- The token price
- The discount rate
- The payback month
- The realisation rate
Answer
The realisation rate — Not all freed time is cash.