Clinical Medicine & Physiology
ADO Index Calculator: Age, Dyspnoea & Airflow Obstruction 3-Year COPD Mortality Score
Calculate Milo Puhan et al.’s (2009, The Lancet) primary-care ADO Index (0–10 points) from Age decade, mMRC Dyspnoea (0–4), and Post-Bronchodilator FEV1 % Predicted — without requiring a 6-Minute Walk Test.
Why primary-care clinics use the ADO Index when 6-Minute Walk corridors are unavailable!
While Celli’s BODE Index requires a standardized 30-meter 6-Minute Walk Distance (seldom performed in routine outpatient clinics), Milo A. Puhan et al. (2009, The Lancet) derived and calibrated the 0–10 point ADO Index using three variables already recorded at every COPD visit: Age (40–49 = 0, 50–59 = 1, 60–69 = 2, 70–79 = 3, 80–89 = 4, >= 90 = 5 points), Modified MRC Dyspnoea Grade (mMRC 0–1 = 0, 2 = 1, 3 = 2, 4 = 3 points), and Post-Bronchodilator FEV1 % Predicted (>= 65% = 0, 36–64% = 1, <= 35% = 2 points)!
Because chronological age strongly drives absolute 3-year mortality risk alongside lung obstruction and breathlessness, Puhan’s recalibrated logistic model logit(p_3yr) = -5.640 + 0.501 * ADO achieves superior calibration across European and North American outpatient COPD cohorts!
| ADO Component | 0 Points | 1 Point | 2 Points | 3 to 5 Points |
|---|---|---|---|---|
| Age (Years, >= 40) | 40–49 yr | 50–59 yr | 60–69 yr | 70–79 (3), 80–89 (4), >=90 (5) |
| mMRC Dyspnoea Scale (0–4) | Grade 0–1 | Grade 2 | Grade 3 | Grade 4 (3 pts) |
| Post-BD FEV1 (% Predicted) | >= 65% | 36% to 64% | <= 35% | — |
Total Puhan (2009) ADO Index Score (0 to 10 Points)
Sums Age points (B2 >= 40), mMRC Dyspnoea points (B3 in 0..4), and FEV1 % predicted points (B4 > 0).
=IF(OR(B2 < 40, B2 > 120, B3 < 0, B3 > 4, INT(B3) <> B3, B4 <= 0, B4 > 150), "Invalid ADO Inputs (Age >= 40, mMRC 0–4, FEV1% > 0)", MIN(5, INT((B2 - 40) / 10)) + IF(B3 <= 1, 0, B3 - 1) + IF(B4 >= 65, 0, IF(B4 >= 36, 1, 2)))Estimated 3-Year All-Cause Mortality Probability (%) from Calibrated ADO Logit
Evaluates 100 / (1 + EXP(-(-5.640 + 0.501 * ADO))) from Puhan et al.’s calibrated logistic curve.
=IF(OR(B2 < 40, B2 > 120, B3 < 0, B3 > 4, INT(B3) <> B3, B4 <= 0, B4 > 150), "Invalid ADO Inputs (Age >= 40, mMRC 0–4, FEV1% > 0)", ROUND(100 / (1 + EXP(-(-5.64 + 0.501 * (MIN(5, INT((B2 - 40) / 10)) + IF(B3 <= 1, 0, B3 - 1) + IF(B4 >= 65, 0, IF(B4 >= 36, 1, 2)))))), 2))Try the example
Use the original values or change them to test your understanding.