The same control, counted twice, gets two answers
A $150,000 loading-station control pays back in 3.41 years on the booked ledger and 1.59 years once the human-capital lines are priced. The control did not change. The accounting did.
Every number here runs through the same four-line model as the calculator on this site. Press P for presenter mode, M for the site map.
Pricing four unbooked cost lines takes the payback from 3.41 years to 1.59
The same control fails a 3-year hurdle on one count and clears it on the other. What your committee votes on is the scope of the count.
Pricing four unbooked cost lines takes the payback from 3.41 years to 1.59
One loading station, one $150,000 control, seven cost lines behind the incidents it removes. Three of those lines are invoiced. The committee usually sees only those three.
Booked cost lines only: $55,000 a year.
Source: README.md worked example, transcribed from Brandon (2025); model in src/capitals.py
Three invoiced lines total $55,000 a year
Equipment downtime, spilled material, injury costs. Each one is already invoiced and already sits in a system somebody owns.
Annual incident cost counted $55,000
On those three lines the payback is 3.41 years
At 80% risk reduction the control saves $44,000 a year. Divide $150,000 of capital by that saving and the payback lands past the 3-year hurdle, so the request is rejected.
Payback 3.41 yr · 5-year ROI 147%
Fails the hurdleFour unbooked lines add $63,000 a year
Lost work time, retraining after turnover, productivity loss, crew morale. Same incidents, no invoice. Counted, the station costs $118,000 a year.
Annual incident cost counted $118,000
The same control now pays back in 1.59 years
The annual saving becomes $94,400 and the payback halves. Nothing about the equipment moved. If you only ever show one accounting, you are choosing the verdict before the vote.
Payback 1.59 yr · 5-year ROI 315%
Clears the hurdleRisk reduction swings the payback 1.00 year, more than all seven cost lines together
The input that decides the case is typed in by the person making the case. Say so out loud, in the same sentence as the payback.
Risk reduction swings the payback 1.00 year, more than all seven cost lines together
A payback of 1.59 years rests on nine inputs. Move each one by 30% on its own, hold the other eight, and the bars sort themselves by how far the answer travels.
Payback in years when one input moves ±30% and the rest hold still.
Computed in page from evaluate(), the same function as docs/index.html and src/capitals.py
Nine inputs, each moved 30% on its own
Risk reduction, capital cost, and the seven cost lines. One moves 30% up and 30% down while the other eight hold at base. Bars are in input order.
Sorted, two bars dwarf the other seven
Risk reduction swings the payback 1.00 year. Capital cost swings it 0.95. The widest cost line, equipment downtime, moves it 0.24.
Risk reduction 1.27 to 2.27 yr · capital cost 1.11 to 2.07 yr
The widest bar is the number you typed, not one you measured
Risk reduction is nowhere measured in this tool. It multiplies by whatever you supply. Put that assumption on the slide beside the payback, or the committee is voting on your guess without being told.
99.9% of draws clear the hurdle on one count, 31.3% on the other
Two thousand seeded draws, every input jittered 30%. Uncertainty is not what separates the two verdicts, so do not let a sensitivity run stand in for the argument.
99.9% of draws clear the hurdle on one count, 31.3% on the other
Draw every input independently across the same ±30% window, 2,000 times, seeded so the run reproduces. Each draw goes through the same four-line model and returns one payback.
Filling the histogram, draw by draw.
Seed 1904, 2,000 draws, mulberry32 - identical to docs/index.html and src/montecarlo.py
2,000 draws, every input jittered 30%
Cost lines, capital cost and risk reduction each get their own independent draw inside the band. Every draw returns one payback and lands in a bin.
99.9% of human-capital draws pay back inside 3 years
The median draw lands at 1.60 years, the 5th percentile at 1.05, the 95th at 2.43. The spread is wide and it still clears.
P(payback within 3 yr) 99.9%
31.3% of booked draws clear the same hurdle
Same seed, same spread, same model, three cost lines instead of seven. The median draw now lands at 3.40 years, past the hurdle.
P(payback within 3 yr) 31.3%
The verdict turns on the count, not on the uncertainty
On one axis the middle 90% of human-capital draws runs 1.05 to 2.43 years and the booked draws run 2.22 to 5.45. They share one fifth of a year. Tightening your input bands will not close that gap; only changing what you count will.
Overlap 2.22 to 2.43 yr
What this does not establish
- No empirical data is used anywhere in this repository. There is no dataset and no fitted parameter. The worked example is transcribed from one published article's cost table; everything else is arithmetic on numbers a user supplies.
- Counting more cost can never weaken the case, by construction. The human-capital accounting is a strict superset of the booked one, so adding lines always shortens the payback. That is a property of the arithmetic, not a finding about controls.
- Risk reduction is an input, not a measurement. The tool does not know your control or your failure modes. It multiplies by whatever you type, and the tornado shows most of the conclusion resting on that one number.
- The human-capital lines are estimates, not invoices. Lost work time, retraining, productivity, morale. Each is a priced judgement, and it should be labelled as one when it reaches a finance reviewer.
- Nothing is discounted and benefits are assumed flat. A dollar saved in year five counts the same as one saved today, and the control is assumed to keep working at the same rate for the whole horizon.
- ROI here is cumulative benefit over investment, not net return. 147% means benefits reached 1.47 times the capital cost. Net ROI is always exactly 100 points lower: 47% and 215%.
- Monte Carlo propagates uncertainty, it does not reduce it. The ±30% window is a choice. Draws are independent, and in a real plant the cost lines move together.
Full list: README.md, "Limitations".
Take both paybacks to the committee
- Pull the next capital request that was rejected on payback. Write down the cost lines it counted.
- Price the four human-capital lines for the same incidents: lost work time, retraining after turnover, productivity loss, morale. Mark each one as an estimate and say who estimated it.
- Run both accountings, and state the risk reduction you assumed as an assumption, in the same sentence as the payback.
- Show the committee the tornado, not only the headline. If the case turns on a number you typed, they should see that before they vote.
Compared with whom
A rate means nothing until you pick the peer group. Changing the NAICS band changes the verdict on the same site.
Read it →or press M to open the map of the whole site.