Net monetary benefit per person of a triage test against no testing

Values each true positive at its net gain G and each false positive at its cost L, both in money at a stated value of health, and subtracts the cost of the test. False negatives and true negatives fare as they would without testing, so they add nothing. Divided by G and with the test cost removed, the expression is decision-curve net benefit (HE-FM-DCA-001) at the threshold L / (G + L) (HE-FM-DCA-004).

Signature

NMB = p * Se * G - (1 - p) * (1 - Sp) * L - c
Inputs
InputsDefinitionUnit
pPre-test probability of the target conditionprobability
SeProbability that a person with the condition tests positiveproportion
GMonetary value of health gained by a confirmed and treated case minus treatment and confirmation costs, against no testingpounds per case found
SpProbability that a person without the condition tests negativeproportion
LCost of the unnecessary confirmatory work-up for a person without the condition, with no health loss assumedpounds per false positive
cCost of administering the triage test to one personpounds per person
Output
NMBExpected net monetary benefit of testing against no testing, per person testedpounds per person

Function

Diagnostic test accuracy measures and the expected value of test results

Maps the cross-classification of index test results against a reference standard to the measures of accuracy, conditional on disease status (sensitivity, specificity) or on the test result (predictive values), and combines accuracy with prevalence and the consequences of true and false results into the expected net monetary benefit of testing. The notation follows the Diagnostic Accuracy article and its two triage tests.

Computational function

  • Computational function: net monetary benefit of two triage tests over a prevalence range and the break-even prevalence

    Compares two tests by net monetary benefit over a range of prevalences and returns the prevalence at which they tie, so that the preferred test can be read for any setting. The inputs differ from the formula's: two sets of accuracy and cost, and a vector of prevalences. With p_even the break-even prevalence, test A is preferred above it when G (Se_A minus Se_B) plus L (Sp_B minus Sp_A) is positive, as when A is the more sensitive and B the more specific test, and below it otherwise.

    Inputs and outputs: p: Vector of prevalences. Unit: probability.; Se_A, Sp_A, c_A: Sensitivity, specificity and cost per person of test A. Unit: proportion, proportion, pounds.; Se_B, Sp_B, c_B: The same for test B. Unit: proportion, proportion, pounds.; G: Net value of a true positive. Unit: pounds.; L: Cost of a false positive. Unit: pounds.; NMB_A, NMB_B: Net monetary benefit per person of each test at each p. Unit: pounds per person.; p_even: Prevalence at which the two tests tie, ((Sp_B minus Sp_A) L + c_A minus c_B) / (G (Se_A minus Se_B) + L (Sp_B minus Sp_A)). Unit: probability.

    Assumption: Sensitivity and specificity are the same at every prevalence, held fixed purely for illustration as in the article; the consequences of each result are as in HE-FM-DXA-005.

    Worked example (Two triage tests, article example): With test A at 0.96 and 0.76, test B at 0.80 and 0.96, both at 40 pounds, G of 21,600 and L of 400, the net benefits are 72.32 and 116.96 pounds at 1 per cent prevalence, 280.64 and 289.92 at 2 per cent and 905.60 and 808.80 at 5 per cent; the tests tie at 80 / 3,536, about 0.0226, so test A is preferred above about 2.3 per cent, as in the article. p = [0.01, 0.02, 0.05]; NMB_A = [72.32, 280.64, 905.6]; NMB_B = [116.96, 289.92, 808.8]; p_even = 0.0226

    Worked example (Test A at 60 pounds): If test A cost 60 pounds, the extra 20 pounds raises the break-even prevalence to 100 / 3,536, about 0.0283 (computed here for illustration). c_A = 60; c_B = 40; p_even = 0.0283

    Excel: With prevalences in PrevGrid and the inputs named SensA, SpecA, CostA, SensB, SpecB, CostB, GainTP and LossFP, =PrevGrid*SensA*GainTP-(1-PrevGrid)*(1-SpecA)*LossFP-CostA and the same for test B spill the two columns, and =((SpecB-SpecA)*LossFP+CostA-CostB)/(GainTP*(SensA-SensB)+LossFP*(SpecB-SpecA)) returns the break-even prevalence, held in BreakEven.

    R: nmb_two_tests <- function(p, seA, spA, cA, seB, spB, cB, G, L) { nA <- p*seA*G-(1-p)*(1-spA)*L-cA; nB <- p*seB*G-(1-p)*(1-spB)*L-cB; den <- G*(seA-seB)+L*(spB-spA); data.frame(p = p, nmb_A = nA, nmb_B = nB, best = ifelse(nA >= nB, "A", "B"), p_even = if (den != 0) ((spB-spA)*L+cA-cB)/den else NA) } Base R only; nmb_two_tests(c(0.01, 0.02, 0.05), 0.96, 0.76, 40, 0.80, 0.96, 40, 21600, 400) returns the first example, rows in input order.

    Python: def nmb_two_tests(p, seA, spA, cA, seB, spB, cB, G, L): nA = [q*seA*G-(1-q)*(1-spA)*L-cA for q in p]; nB = [q*seB*G-(1-q)*(1-spB)*L-cB for q in p]; den = G*(seA-seB)+L*(spB-spA); return {"p": list(p), "nmb_A": nA, "nmb_B": nB, "best": ["A" if a >= b else "B" for a, b in zip(nA, nB)], "p_even": ((spB-spA)*L+cA-cB)/den if den else None} Returns the same values as the R function, in input order.

    Test (Tests tie at the break-even prevalence): The two net benefits are equal at BreakEven. Expected result: TRUE. FALSE shows the break-even prevalence computed without the specificity gap in the denominator (80 / 3,456, about 0.0231). Excel check: =ABS(BreakEven*SensA*GainTP-(1-BreakEven)*(1-SpecA)*LossFP-CostA-(BreakEven*SensB*GainTP-(1-BreakEven)*(1-SpecB)*LossFP-CostB))<1E-9

    Common error (Comparing at a single prevalence): A ranking at 5 per cent says nothing about 2 per cent; the break-even prevalence and the curves over the plausible range show where each test is preferred.

    Source: Vickers AJ, Van Calster B, Steyerberg EW. Net benefit approaches to the evaluation of prediction models, molecular markers, and diagnostic tests. BMJ. 2016;352:i6. doi:10.1136/bmj.i6. Net benefit as benefit minus harm times an exchange rate, with test harm subtracted; Lord SJ, Irwig L, Simes RJ. Annals of Internal Medicine. 2006;144(11):850-855. doi:10.7326/0003-4819-144-11-200606060-00011 (abstract read). Abstract (extra cases detected by a more sensitive test).

    NMB_A(p) = p * Se_A * G - (1 - p) * (1 - Sp_A) * L - c_A; p_even = ((Sp_B - Sp_A) * L + c_A - c_B) / (G * (Se_A - Se_B) + L * (Sp_B - Sp_A))

Try this function

Implementations

  • Excel

    Net monetary benefit of a triage test from named cells

    With Prev, Sens, Spec, GainTP, LossFP and TestCost named, the formula returns the net monetary benefit per person tested, held in NMBTest.

    =Prev*Sens*GainTP-(1-Prev)*(1-Spec)*LossFP-TestCost

Assumptions

  • Missed cases and true negatives fare as without testing

    A false negative leads to the same care and outcomes as no testing and a true negative to no consequences, so only true and false positives change value; any harm from a missed case beyond that, or anxiety from a false positive, would need its own term.

  • Gain and loss valued per person at a stated value of health

    G is the QALY gain of a treated case times the value of a QALY minus treatment and confirmation costs; in the article 1 QALY at 25,000 pounds, the lower end of NICE's range, less 3,000 and 400, gives 21,600. No discounting or time horizon is modelled.

  • Every positive triage result confirmed by a perfect test

    All positives go on to a confirmatory test assumed perfect, so false positives are cleared at cost L and true positives are treated.

Worked examples

  • Triage test A at 5 per cent prevalence

    0.05 times 0.96 times 21,600 is 1,036.8, 0.95 times 0.24 times 400 is 91.2, and minus the 40 pound test the net monetary benefit is 905.6 pounds per person, as in the article.

    p = 0.05; Se = 0.96; Sp = 0.76; G = 21600; L = 400; c = 40; NMB = 905.6
  • Triage test B at 5 per cent prevalence

    864 minus 15.2 minus 40 gives 808.8 pounds per person, 96.80 pounds less than test A, as in the article.

    p = 0.05; Se = 0.8; Sp = 0.96; G = 21600; L = 400; c = 40; NMB = 808.8
  • Triage test A at 2 per cent prevalence

    414.72 minus 94.08 minus 40 gives 280.64 pounds, below test B's 289.92 at the same prevalence, as in the article.

    p = 0.02; Se = 0.96; Sp = 0.76; G = 21600; L = 400; c = 40; NMB = 280.64

Common errors

  • Choosing the test with the better accuracy summaries

    Test B leads on proportion correct, PPV, the positive likelihood ratio and DOR, but at 5 per cent prevalence test A's 8 extra cases per 1,000 are worth 172,800 pounds against 76,000 pounds for its 190 extra false positives, a gain of 96.80 pounds per person.

  • Holding the preferred test fixed across settings

    At 2 per cent prevalence test B is preferred (289.92 against 280.64 pounds); the ranking reverses at about 2.3 per cent (HE-CF-DXA-001), so the comparison must be made at the prevalence of the population modelled.

  • Assuming extra cases found by a more sensitive test benefit as much

    Lord, Irwig and Simes warn that a more sensitive test detects extra cases to which results from trials enrolling only cases found by the old test may not apply; the net gain G may be smaller for them.

Sources

  • Net benefit as benefit minus harm times an exchange rate, with test harm subtracted

    Vickers AJ, Van Calster B, Steyerberg EW. Net benefit approaches to the evaluation of prediction models, molecular markers, and diagnostic tests. BMJ. 2016;352:i6. doi:10.1136/bmj.i6. Net benefit and risk prediction: net benefit is defined as benefit minus harm times an exchange rate, the relative value of finding a case against an unnecessary procedure, in units of true positives; Extensions: the harm of a test can be subtracted from the net benefit. Multiplying by the monetary value of a true positive gives the per-person formula in this record.

    View source →

  • NICE cost-effectiveness range of 25,000 to 35,000 pounds per QALY

    National Institute for Health and Care Excellence. NICE technology appraisal and highly specialised technologies guidance: the manual (PMG36). London: NICE; 2022, last updated 31 March 2026. Sections 6.3.4 and 6.3.7: below a most plausible ICER of 25,000 pounds per QALY gained the decision is normally based on the cost-effectiveness estimate; as the ICER increases in the range of 25,000 to 35,000 pounds per QALY gained, decisions make explicit reference to further factors.

    View source →

  • Extra cases found by a more sensitive test may differ in treatment benefit

    Lord SJ, Irwig L, Simes RJ. Annals of Internal Medicine. 2006;144(11):850-855. doi:10.7326/0003-4819-144-11-200606060-00011 (abstract read). Abstract: accuracy studies suffice if a new test is safer or more specific than, but of similar sensitivity to, an old test; if a new test is more sensitive, it detects extra cases, and results from treatment trials that enrolled only patients detected by the old test may not apply to them.

    View source →

Canonical Identity

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