\[ICER = \frac{\Delta Cost}{\Delta Effect} = \frac{C_{intervention} - C_{comparator}}{E_{intervention} - E_{comparator}}\]
A trial-based economic evaluation compares a new DPP-4 inhibitor to metformin monotherapy over 5 years:
| Outcome | Metformin | DPP-4 Inhibitor |
|---|---|---|
| Total Cost | INR 85,000 | INR 1,42,000 |
| QALYs | 3.82 | 4.15 |
c_new <- 142000; c_old <- 85000
e_new <- 4.15; e_old <- 3.82
delta_c <- c_new - c_old
delta_e <- e_new - e_old
icer <- delta_c / delta_e
cat("Incremental Cost: INR", format(delta_c, big.mark = ","), "\n")
#> Incremental Cost: INR 57,000
cat("Incremental QALYs:", delta_e, "\n")
#> Incremental QALYs: 0.33
cat("ICER: INR", format(round(icer), big.mark = ","), "per QALY\n")
#> ICER: INR 172,727 per QALYThe intervention falls in the NE quadrant (more costly, more effective). Compare the ICER to the Willingness-to-Pay (WTP) threshold:
\[iNMB = (\Delta E \times WTP) - \Delta C\]
iNMB > 0 means cost-effective at the given WTP.
wtp <- 100000 # INR per QALY (HTAIn threshold)
inmb <- (delta_e * wtp) - delta_c
cat("iNMB at WTP INR 1,00,000/QALY: INR", format(round(inmb), big.mark = ","), "\n")
#> iNMB at WTP INR 1,00,000/QALY: INR -24,000
if (inmb > 0) {
cat("Decision: Cost-effective (iNMB > 0)\n")
} else {
cat("Decision: NOT cost-effective (iNMB < 0)\n")
}
#> Decision: NOT cost-effective (iNMB < 0)You are pricing a new rapid diagnostic test for sepsis. The evidence:
\[C_{max} = (\Delta E \times WTP) + C_{comparator}\]
\[P_{max} = \frac{C_{max} - C_{associated}}{N}\]
delta_e_test <- 0.02
wtp_threshold <- 100000
c_comparator <- 500
c_associated <- 200
n_units <- 1
c_max <- (delta_e_test * wtp_threshold) + c_comparator
p_max <- (c_max - c_associated) / n_units
cat("Clinical Value: INR", format(delta_e_test * wtp_threshold, big.mark = ","), "\n")
#> Clinical Value: INR 2,000
cat("+ Savings from replacing old test: INR", format(c_comparator, big.mark = ","), "\n")
#> + Savings from replacing old test: INR 500
cat("= Total Headroom: INR", format(c_max, big.mark = ","), "\n")
#> = Total Headroom: INR 2,500
cat("- Nurse time: INR", format(c_associated, big.mark = ","), "\n")
#> - Nurse time: INR 200
cat("= Maximum Justifiable Price: INR", format(p_max, big.mark = ","), "\n")
#> = Maximum Justifiable Price: INR 2,300proposed_price <- 3000
overpriced_by <- ((proposed_price - p_max) / p_max) * 100
if (proposed_price > p_max) {
cat("At INR", format(proposed_price, big.mark = ","),
"the product is", round(overpriced_by, 1), "% above the maximum justifiable price.\n")
cat("Recommendation: Reduce price by INR",
format(proposed_price - p_max, big.mark = ","), "\n")
} else {
cat("Price is within the cost-effective range.\n")
}
#> At INR 3,000 the product is 30.4 % above the maximum justifiable price.
#> Recommendation: Reduce price by INR 700