League-table fill of three indivisible programmes funded whole or not at all

Funds whole programmes in ascending order of ICER, each only if its full incremental cost fits in the budget left after the programmes already funded, and otherwise passes over it to the next. Each y_i is 1 when programme i is funded and 0 otherwise, H_w is the health bought and U_w the budget left unspent. Dakin and Tsiachristas frame the allocation of healthcare resources as a 0-1 knapsack problem, in which each item is packed whole or not at all, and the league table as the greedy algorithm for it, and Stinnett and Paltiel show that mathematical programming handles partial and complete indivisibility. Following the order need not give the most health that whole programmes can buy (HE-ER-CELT-005). The best choice of whole programmes belongs to the Integer Programming article.

Signature

y_1 = (Delta_C_1 <= B); y_2 = (y_1 * Delta_C_1 + Delta_C_2 <= B); y_3 = (y_1 * Delta_C_1 + y_2 * Delta_C_2 + Delta_C_3 <= B); H_w = y_1 * Delta_E_1 + y_2 * Delta_E_2 + y_3 * Delta_E_3; U_w = B - (y_1 * Delta_C_1 + y_2 * Delta_C_2 + y_3 * Delta_C_3)
Inputs
InputsDefinitionUnit
Delta_C_1Incremental cost of the first programme in ascending ICER order against its comparator, above zerocurrency
BBudget available for the three programmescurrency
Delta_C_2Incremental cost of the second programme in ascending ICER order against its comparator, above zerocurrency
Delta_C_3Incremental cost of the third programme in ascending ICER order against its comparator, above zerocurrency
Delta_E_1Incremental health gain of the first programme in ascending ICER order against its comparator, above zeroQALYs, or DALYs averted
Delta_E_2Incremental health gain of the second programme in ascending ICER order against its comparator, above zeroQALYs, or DALYs averted
Delta_E_3Incremental health gain of the third programme in ascending ICER order against its comparator, above zeroQALYs, or DALYs averted
Output
y_1Equals 1 when the first programme in ascending ICER order is funded in full and 0 when it is not fundedbinary indicator
y_2Equals 1 when the second programme in ascending ICER order is funded in full and 0 when it is not fundedbinary indicator
y_3Equals 1 when the third programme in ascending ICER order is funded in full and 0 when it is not fundedbinary indicator
H_wTotal incremental health gain of the programmes fundedQALYs, or DALYs averted
U_wBudget less the incremental cost of the programmes fundedcurrency

Function

League-table allocation of a fixed budget across independent programmes ranked by ICER

Takes the incremental cost Delta_C_i and incremental health gain Delta_E_i of each of a set of independent programmes, each measured against its own comparator, and a fixed budget B. It returns the share of each programme funded when programmes are funded in ascending order of ICER until the budget is exhausted, the health the budget buys, the critical ratio of the last programme funded and, under the alternative fixed ratio rule, the budget that a stated threshold implies. Each programme's ratio is the two-option ICER of HE-FM-ICER-001, or the ratio against doing nothing of HE-FM-ACER-002 when doing nothing is the comparator, and is not restated here. A league table ranks independent programmes competing for one budget, while mutually exclusive options for the same patients are ranked on the cost-effectiveness frontier (HE-FN-CEF-001, HE-CF-CEF-001), and the table takes such a set at its sequential ratios along the frontier (HE-FM-CEA-001). Ties and cost-saving programmes follow the dominance rule HE-FM-DOM-001, the threshold as marginal spending over marginal health is HE-FM-CET-001, and the health a new programme displaces at a threshold, Delta_C divided by k, and its incremental net health benefit are HE-FM-CET-002. This package adds the funded share of each programme, the critical ratio, the fill for programmes that must be funded whole and the budget implied by a fixed ratio, with a computational function that fills the table for any number of programmes. Notation follows the Cost-Effectiveness League Table article.

Try this function

Implementations

  • Excel

    Whole-programme league-table fill from named cells

    With the budget in Budget and the three programmes' incremental costs and QALYs, in ICER order, in CostFirst, CostSecond, CostThird, QALYFirst, QALYSecond and QALYThird, the first three formulas, held in cells named FundFirst, FundSecond and FundThird, return 1 when that programme is funded, the double minus turning TRUE or FALSE into 1 or 0. The fourth returns the health, held in WholeHealth, and the fifth the budget left, held in UnspentBudget.

    =--(CostFirst<=Budget); =--(FundFirst*CostFirst+CostSecond<=Budget); =--(FundFirst*CostFirst+FundSecond*CostSecond+CostThird<=Budget); =FundFirst*QALYFirst+FundSecond*QALYSecond+FundThird*QALYThird; =Budget-(FundFirst*CostFirst+FundSecond*CostSecond+FundThird*CostThird)

Assumptions

  • Whole programmes only in the indivisible league-table fill

    Each programme is funded at its full incremental cost or not at all, the case Dakin and Tsiachristas describe as programmes that cannot be partially adopted. Programmes are numbered in ascending order of ICER with both increments above zero, and programmes with equal ICERs are taken in the order given, which can change the result.

  • A whole programme that does not fit is passed over

    When a programme's cost exceeds the budget left, the fill passes over it and tests the next, which agrees with the article's step 3, where neither Q nor R fits after P. The pass-over is the convention of this package; none of the cited sources states which variant a league table of whole programmes uses. Stopping at the first programme that does not fit is the other convention and can buy less health (HE-EX-CELT-009). A programme whose cost equals the budget left fits, since the test is at most B.

Worked examples

  • Article's whole-programme case with P funded and Q and R left out

    In step 3 of the article a second authority has GBP 1,000,000 for whole programmes. P (GBP 600,000, 60 QALYs) heads the table at GBP 10,000 per QALY and is funded, after which neither Q nor R (GBP 500,000 and 40 QALYs each) fits in the GBP 400,000 left, so the fill buys 60 QALYs.

    B = 1000000; Delta_C_1 = 600000; Delta_E_1 = 60; Delta_C_2 = 500000; Delta_E_2 = 40; Delta_C_3 = 500000; Delta_E_3 = 40; y_1 = 1; y_2 = 0; y_3 = 0; H_w = 60; U_w = 400000
  • Whole programme that exactly uses the budget left

    With an illustrative budget of GBP 1,100,000, Q exactly fits in the GBP 500,000 left after P, a limiting case for the test at most B, and the fill buys 100 QALYs with nothing left.

    B = 1100000; Delta_C_1 = 600000; Delta_E_1 = 60; Delta_C_2 = 500000; Delta_E_2 = 40; Delta_C_3 = 500000; Delta_E_3 = 40; y_1 = 1; y_2 = 1; y_3 = 0; H_w = 100; U_w = 0
  • Passing over a whole programme that does not fit to fund a smaller one below it

    Replacing R with an illustrative programme S (GBP 300,000, 15 QALYs, GBP 20,000 per QALY), Q does not fit after P but S does, so the fill buys 75 QALYs and leaves GBP 100,000. Stopping at Q would buy 60 QALYs.

    B = 1000000; Delta_C_1 = 600000; Delta_E_1 = 60; Delta_C_2 = 500000; Delta_E_2 = 40; Delta_C_3 = 300000; Delta_E_3 = 15; y_1 = 1; y_2 = 0; y_3 = 1; H_w = 75; U_w = 100000

Common errors

  • Reading the whole-programme fill as the best choice of whole programmes

    In step 3 of the article the fill buys 60 QALYs, while funding Q and R in place of P spends the same GBP 1,000,000 for 80 QALYs, 20 more. Following the order does not guarantee the best choice of whole programmes, the case integer programming is built for, and the mathematical programming framework of Stinnett and Paltiel handles complete indivisibility directly.

  • Part-funding an indivisible programme in the league table

    Applying the divisible share of HE-FM-CELT-001 to step 3 of the article funds 0.8 of Q and reports 92 QALYs, the 60 of P plus 0.8 of Q's 40, a result that cannot be delivered when Q must be funded whole (computed here for illustration).

Sources

  • Dakin and Tsiachristas on the 0-1 knapsack problem for programmes that cannot be partially adopted

    Dakin H, Tsiachristas A. Rationing in an era of multiple tight constraints: is cost-utility analysis still fit for purpose? Applied Health Economics and Health Policy. 2024;22(3):315-329. Section 2.1, headed Constrained optimisation, which frames the allocation of healthcare resources as a 0-1 knapsack problem of choosing items to maximise value without exceeding a weight constraint or packing more than one of each item, and notes that constrained optimisation may fail to identify the best solution when the constraints are flexible and programmes cannot be partially adopted. Section 2.2 describes the league table as the greedy algorithm for the knapsack problem.

    View source →

  • Stinnett and Paltiel on indivisibility in mathematical programming for budget allocation

    Stinnett AA, Paltiel AD. Mathematical programming for the efficient allocation of health care resources. Journal of Health Economics. 1996;15(5):641-653. Abstract, which states that previous methods for allocating health care resources subject to a budget constraint relied on unnecessarily restrictive assumptions, and that a general mathematical programming framework can accommodate returns to scale, partial and complete indivisibility and programme interdependence.

    View source →

Canonical Identity

League-table fill of three indivisible programmes funded whole or not at all | HealthEconomics.wiki