Incremental benefit-cost ratio between two mutually exclusive options

Divides the extra present-value benefits of option Y over option X by its extra present-value costs. When Y costs more than X, an incremental ratio above one is the same condition as Y having the higher net present value, so the ratio applied incrementally gives the same choice as net present value. Average ratios of each option against doing nothing do not.

Signature

BCR_YX = (PVB_Y - PVB_X) / (PVC_Y - PVC_X)
Inputs
InputsDefinitionUnit
PVB_YPresent value of monetised benefits of option Ycurrency in the stated price year, £ million in the examples
PVB_XPresent value of monetised benefits of option Xthe same currency basis as PVB_Y
PVC_YPresent value of costs of option Y, greater than PVC_Xthe same currency basis as PVB_Y
PVC_XPresent value of costs of option Xthe same currency basis as PVB_Y
Output
BCR_YXIncremental benefit-cost ratio of option Y over option X, written BCR_{Y,X} in the articleratio

Function

Benefit-cost ratio comparison and classification function

Maps the present values of monetised benefits and costs of one or more options, split where needed by how consequences are classified and by who bears the costs, to ratio summaries and to their link with net present value. The basic ratio and net present value are given under cost-benefit analysis (HE-FM-CBA-002 and HE-FM-CBA-001); PVB and PVC on this page are the same quantities as PV_B and PV_C there. The formulas below relate the ratio to net present value, apply it between mutually exclusive options, and show how the classification of savings, transfers and costs outside the public sector changes it.

Computational function

  • Computational function: sequential incremental benefit-cost comparison of mutually exclusive options

    Takes the present-value benefits and costs of any number of mutually exclusive options, including doing nothing, and returns the option with the largest net present value by applying the incremental ratio HE-FM-BCRX-002 step by step. The options are sorted by cost; the cheapest becomes the current choice, and each more costly option replaces it only if its incremental ratio over the current choice exceeds one. The inputs are lists of options rather than the two named options X and Y of the formula, and each comparison is made against the current choice, not against the next cheaper option.

    Inputs and outputs: PVB_j: Present value of monetised benefits of option j, zero for doing nothing; required. Unit: £ million.; PVC_j: Present value of costs of option j, under the same classification for every option; required. Unit: £ million.; BCR_jd: Incremental ratio of option j over the current choice d at each step, returned as an intermediate output. Unit: ratio.; d: Chosen option. Unit: option label.; NPV_d: Net present value of the chosen option, PVB_d minus PVC_d. Unit: £ million.

    Assumption: The options are mutually exclusive and are all described with the same classification of savings, transfers and costs. Where two options have the same cost, the one with the larger benefits is placed first and the other cannot replace it.

    Worked example (Base case with savings counted as benefits): Doing nothing, X and Y are sorted by cost. X over doing nothing gives 8.0/4.0 = 2.0, so X becomes the current choice; Y over X gives 6.0/5.0 = 1.2, so Y replaces it. PVB_j = (0, 8.0, 14.0); PVC_j = (0, 4.0, 9.0); BCR_jd = (2.0, 1.2); d = Y; NPV_d = 5.0

    Worked example (Cost-saving variant with savings counted as benefits): With X averting £4.5 million of treatment costs, X over doing nothing gives 9.5/4.0 = 2.375 and Y over X gives 4.5/5.0 = 0.9, so X is kept. PVB_j = (0, 9.5, 14.0); PVC_j = (0, 4.0, 9.0); BCR_jd = (2.375, 0.9); d = X; NPV_d = 5.5

    Worked example (Cost-saving variant with savings netted off costs): Netted, X has a cost of minus £0.5 million and sorts below doing nothing, so it starts as the current choice. Doing nothing over X gives a ratio of minus 10 and Y over X gives 4.0/4.5 = 0.89, so X is kept with the same net present value as in the gross version, although its own netted ratio is negative. PVB_j = (5.0, 0, 9.0); PVC_j = (-0.5, 0, 4.0); BCR_jd = (-10, 0.89); d = X; NPV_d = 5.5

    Excel: =REDUCE(1,SEQUENCE(ROWS(Costs)-1,1,2),LAMBDA(best,k,IF(INDEX(Costs,k)>INDEX(Costs,best),IF((INDEX(Benefits,k)-INDEX(Benefits,best))/(INDEX(Costs,k)-INDEX(Costs,best))>1,k,best),best))) In Excel 365, with the options sorted by ascending cost (ties with larger benefits first) in ranges named Benefits and Costs, the formula returns the row of the chosen option within the ranges.

    R: choose_option <- function(pvb, pvc) { o <- order(pvc, -pvb); d <- o[1]; for (j in o[-1]) if (pvc[j] > pvc[d] && (pvb[j]-pvb[d]) / (pvc[j]-pvc[d]) > 1) d <- j; d } Returns the position of the chosen option in the input vectors, which need not be sorted.

    Python: def choose_option(pvb, pvc): return functools.reduce(lambda d, j: j if pvc[j] > pvc[d] and (pvb[j]-pvb[d]) / (pvc[j]-pvc[d]) > 1 else d, sorted(range(len(pvc)), key=lambda j: (pvc[j], -pvb[j]))) Uses functools.reduce over the options sorted by cost and returns the index of the chosen option.

    Test (Chosen option has the largest net present value): The option returned by the procedure has the largest net present value of all the options listed. Expected result: TRUE. Excel check: =INDEX(Benefits-Costs,ChosenRow)=MAX(Benefits-Costs)

    Test (Chosen option never has a negative net present value): Because doing nothing is listed with zero benefits and zero costs, the procedure never returns an option whose costs exceed its benefits. Expected result: TRUE. Excel check: =INDEX(Benefits-Costs,ChosenRow)>=0

    Common error (Ranking the options by their own ratios): Picking the option with the highest ratio against doing nothing selects X in the base case, with a ratio of 2.0 against 1.56, and loses £1.0 million of net present value. Comparing each option with the next cheaper option rather than with the current choice can also select an option that loses to an earlier one.

    Source: Office of Management and Budget. Circular A-4: Regulatory Analysis. 17 September 2003, reinstated 2025. Section D (Analytical Approaches), subsection on benefit-cost analysis, which identifies the alternative that maximises net benefits by measuring the incremental benefits and costs of successively more stringent alternatives.

    sort options by PVC_j ascending; d = cheapest option; for each later option j: BCR_jd = (PVB_j - PVB_d) / (PVC_j - PVC_d); d = j if PVC_j > PVC_d and BCR_jd > 1; NPV_d = PVB_d - PVC_d

Try this function

Implementations

  • Excel

    Incremental benefit-cost ratio in one cell

    With named cells for each option's present-value benefits and costs, Excel returns the incremental ratio, or #N/A when option Y does not cost more than option X.

    =IF(CostsY>CostsX,(BenefitsY-BenefitsX)/(CostsY-CostsX),NA())

Assumptions

  • Mutually exclusive options with the larger option costing more

    Only one of X and Y can be adopted, and PVC_Y is greater than PVC_X. A ratio above one then favours Y; if the labels are swapped so that the first-named option is the cheaper one, a ratio above one favours the other option.

  • One classification for both options in an incremental ratio

    Savings, transfers and costs are classified the same way for both options. The value of the incremental ratio still depends on the classification, but whenever the incremental cost is positive under each classification, its comparison with one does not.

Worked examples

  • Catch-up vaccination over routine vaccination with savings as benefits

    Counting averted treatment costs as benefits, option Y has benefits of £14.0 million and costs of £9.0 million, and option X has £8.0 million and £4.0 million. The incremental ratio is 1.2, so Y has the higher net present value although X has the higher average ratio (2.0 against 1.56).

    PVB_Y = 14.0; PVB_X = 8.0; PVC_Y = 9.0; PVC_X = 4.0; BCR_YX = 1.2
  • Catch-up vaccination over routine vaccination with savings netted off costs

    Netting averted costs off programme costs, option Y has benefits of £9.0 million and net costs of £4.0 million, and option X has £5.0 million and £1.0 million. The incremental ratio is about 1.33, again above one, so the choice of Y does not depend on the classification.

    PVB_Y = 9.0; PVB_X = 5.0; PVC_Y = 4.0; PVC_X = 1.0; BCR_YX = 1.33
  • Catch-up vaccination when routine vaccination averts more treatment costs

    In the article's cost-saving variant, option X averts £4.5 million of treatment costs, so counted gross it has benefits of £9.5 million. The incremental ratio of Y over X falls to 0.9, below one, and X becomes the better option with a net present value of £5.5 million against £5.0 million.

    PVB_Y = 14.0; PVB_X = 9.5; PVC_Y = 9.0; PVC_X = 4.0; BCR_YX = 0.9

Common errors

  • Choosing between exclusive options by their average ratios

    Picking the option with the higher ratio against doing nothing selects X in the article's base case (2.0 against 1.56 counted gross, 5.0 against 2.25 netted) and gives up £1.0 million of net present value. The choice between exclusive options rests on the incremental ratio or on net present value.

Sources

  • Circular A-4 on incremental benefits and costs of successive alternatives

    Office of Management and Budget. Circular A-4: Regulatory Analysis. Washington, DC: Executive Office of the President; 17 September 2003, reinstated 2025. Section D (Analytical Approaches), subsection on benefit-cost analysis, which measures incremental benefits and costs of successively more stringent alternatives to identify the one that maximises net benefits, and states that the ratio of benefits to costs is not a meaningful indicator of net benefits.

    View source →

Canonical Identity

Stable URI · Machine-readable · Resolvable · CC BY 4.0