Cost–Benefit Calculator NPV · BCR · IRR · cost per outcome · Monte Carlo

A programme appraisal that keeps its uncertainty in view. List the cost and benefit streams with the years they run and how sure you are of each, and the page discounts them, reports the net present value, benefit–cost ratio, internal rate of return, payback year and cost per unit of outcome, then reruns the whole thing a few thousand times with every input drawn from its range to give the probability the programme pays off and a tornado chart of which assumptions matter. All in the browser.

Setting

India's official social discount rate for project appraisal has been debated between 8% and 12%; the range above spans that.

Costs

Benefits (monetised)

Outcomes (not monetised)

For cost-effectiveness: units of outcome per year (children reached, DALYs averted, households connected), with their range.

Headline

Definitions

Present value PV = Σt xt / (1 + r)t with year 0 undiscounted. NPV = PV(benefits) − PV(costs); BCR = PV(benefits) / PV(costs); IRR is the rate at which NPV = 0, found by bisection (it may not exist or may not be unique when net flows change sign more than once, and the page says so); payback is the first year in which cumulative discounted net benefit turns positive. Cost per outcome = PV(costs) / Σ outcomes, with the outcomes discounted at the same rate if you tick the box, which is the usual convention for health outcomes and a contested one.

Cash flows

Uncertainty

How the simulation works

Each stream's annual amount is drawn from a triangular distribution between its low and high values with the entered amount as the mode; the discount rate is drawn uniformly from its range; streams are independent. Every draw recomputes NPV, BCR and cost per outcome from scratch. The tornado chart is one-at-a-time: each input is set to its low and then its high with everything else at its entered value, and the bar shows the resulting swing in NPV, sorted largest first. Correlated inputs (costs that rise together with scale, say) would widen the true distribution; the page does not model correlation.