Signature
NMB = p * Se * G - (1 - p) * (1 - Sp) * L - c
| Inputs | Definition | Unit |
|---|---|---|
p | Pre-test probability of the target condition | probability |
Se | Probability that a person with the condition tests positive | proportion |
G | Monetary value of health gained by a confirmed and treated case minus treatment and confirmation costs, against no testing | pounds per case found |
Sp | Probability that a person without the condition tests negative | proportion |
L | Cost of the unnecessary confirmatory work-up for a person without the condition, with no health loss assumed | pounds per false positive |
c | Cost of administering the triage test to one person | pounds per person |
NMB | Expected net monetary benefit of testing against no testing, per person tested | pounds 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.0226Worked 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.0283Excel: 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-CostAand 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-9Common 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.
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.
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.
Canonical Identity
Stable URI · Machine-readable · Resolvable · CC BY 4.0