Arte SheetsLearn. Try. Understand.

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 Component0 Points1 Point2 Points3 to 5 Points
Age (Years, >= 40)40–49 yr50–59 yr60–69 yr70–79 (3), 80–89 (4), >=90 (5)
mMRC Dyspnoea Scale (0–4)Grade 0–1Grade 2Grade 3Grade 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.

Further reading