Each of those criteria takes a stream of numbers as its input, and the stream is where the real errors live. Four principles decide what enters.
What counts as an incremental cash flow?
Sunk costs never enter. Money already spent cannot be recovered by any decision made today, so a completed market study, a paid consultant, a demolished building and last year's research are all irrelevant to whether the project should proceed. The temptation to include them is strongest when the sunk sum is large, which is exactly when it must be ignored.
Opportunity costs always enter, at market. If a project consumes a resource the firm already owns, the relevant charge is what that resource could otherwise earn. An idle building with a ₹2.40 crore rental market is a ₹2.40 crore annual cost to the project that occupies it, whether or not any cash changes hands and whatever the depreciated book value says.
Externalities enter, in both directions. Cannibalisation is the common one: a new product that takes ₹18.00 crore of revenue from an existing line at a 22% margin costs the firm ₹3.96 crore a year, and that belongs in the project. The mirror case is positive, where a new product pulls sales through an existing channel, and it belongs too. What decides is whether the firm's total cash flow changes, never whether the project's own does.
Financing costs never enter the cash flow at all. Interest, principal and lease payments stay out of free cash flow because the discount rate already charges for capital, so deducting interest and then discounting at the weighted average cost of capital pays for the debt twice. At Saraswati Snack Foods (synthetic) that single error is worth -₹21.5644 crore of net present value on a project whose correct value is ₹24.2876 crore.
Four principles, and the last one is the expensive one.
Advertisement
How do working capital and depreciation enter?
Working capital enters at the level of the change, not the level of the balance, and it is released at the end of the project. Use incremental revenue as the base, not the new line's own revenue, since the cannibalised sales were already carrying receivables and inventory.
Depreciation is not a cash flow and enters only through the tax it shelters. The two standard routes agree: OCF = EBIT x (1 - t) + Depreciation, or equivalently OCF = (Revenue - Cash costs) x (1 - t) + t x Depreciation. Compute it both ways once, confirm they match, and then use whichever you find easier to read.
{
"skill": "Building and stress-testing a capital-budgeting model with unequal lives and a budget constraint",
"use": "Have an assistant write the code for the full criterion set (NPV, IRR, MIRR, payback, discounted payback, profitability index, equivalent annual annuity, and a brute-force search over feasible bundles under a budget), and have it write the assertions that catch the errors this area actually produces rather than just printing a table.",
"tools": ["A chat assistant with code execution", "Python: numpy-financial or a hand-rolled annuity factor, plus itertools for the bundle enumeration", "A spreadsheet, for the second independent implementation"],
"prompt": "Given a list of projects with an initial outlay, a cash-flow vector, a discount rate and a total budget, compute for each project the NPV, IRR, payback, discounted payback, profitability index and equivalent annual annuity. Then produce three bundles under the budget: the greedy profitability-index ranking, the best feasible integer bundle by exhaustive search, and the divisible upper bound with the fractional project named. Assert that PI greater than 1 and NPV greater than 0 always agree, that EAA times the annuity factor over the least common multiple of the lives equals the replication-chain NPV to within 1e-9, and that the greedy bundle's NPV never exceeds the integer optimum. Do not round intermediate values.",
"verify": "Run the two identity assertions and then deliberately break them: feed a project with a negative NPV and confirm the PI test fails with it, and set one life so the least common multiple changes and confirm the chain check still ties. Recompute one project's NPV and its EAA by hand with an annuity factor before trusting any of the table. Check that no cash-flow vector contains an interest or principal payment, because a model that discounts a post-interest flow at the weighted average cost of capital is internally wrong and no assertion in the code will catch it. Trace every input cash flow to the source it came from and date it. Where the projects have unequal lives, state the replication assumption in the output rather than leaving it implicit.",
"diy": "You must be able to compute an annuity factor, an EAA, a discounted payback and a profitability index with a calculator, and to say which criterion answers which question. The gate rewards that because the errors here are errors of formulation, not of arithmetic: a tool given a cash-flow stream that already includes cannibalisation and interest will return six beautifully consistent criteria, all of them measuring the wrong project.",
"market": "US"
}