📋 Narrative
⌨️ Code Entry
🧮 Calculations
📖 Guide
📑 Sign & Append
Enter codes directly
Type a code such as AA1 and press Enter — or add several at once separated by spaces or commas. Each recognized code is added below with a severity dropdown wherever one is needed. This works alongside the checkboxes; anything added here also appears in the Narrative tab and in the copied report.
0 codes
Select codes from the left panel
to build your interpretation
to build your interpretation
Additional notes
BMI Calculator
Ratio Calculators
IVC / VC
VA / TLC
MVV Calculator
Per ATS/ERS: predicted MVV ≈ 40 × FEV₁; LLN ≈ 80% predicted ≈ 32 × FEV₁.
A measured MVV below LLN may reflect obstruction, NMD, effort, or deconditioning.
MIP / MEP z-score
MIP (Maximal Inspiratory Pressure)
MEP (Maximal Expiratory Pressure)
Enter your report's age/sex/height-specific predicted and LLN values (same units and sign convention as the measured value).
z = (measured − predicted) / RSD, with RSD = (predicted − LLN) / 1.645 — i.e. LLN taken as the 5th percentile (1.645 SD below predicted).
Changes Over Time
Enter prior and current values. FEV₁/FVC in liters; DLCO in mL/min·mmHg.
| Param | Prior | Current | Δ Abs | Δ % | Sig? |
|---|---|---|---|---|---|
| FEV₁ | — | — | — | ||
| FVC | — | — | — | ||
| DLCO | — | — | — |
FEV₁/FVC significance: |Δ| ≥ 0.10 L AND |Δ%| ≥ 10% from prior value
DLCO significance: |Δ| ≥ 2.5 mL/min·mmHg AND |Δ%| ≥ 15%
DLCO significance: |Δ| ≥ 2.5 mL/min·mmHg AND |Δ%| ≥ 15%
Annualized Rate of Change
Typical age-related FEV₁/FVC decline: ~25–35 mL/year; accelerated >40 mL/yr loss.
Typical age-related DLCO decline: ~0.2–0.4 mL/min·mmHg/year; accelerated >1 mL/min·mmHg/yr loss.
Typical age-related DLCO decline: ~0.2–0.4 mL/min·mmHg/year; accelerated >1 mL/min·mmHg/yr loss.
Adjusted LLN DLCO (Hemoglobin Correction)
Cotes formula for Hb-corrected DLCO LLN:
Male: LLN × (1.7 × Hb) / (10.22 + Hb)
Female: LLN × (1.7 × Hb) / (9.38 + Hb)
Male: LLN × (1.7 × Hb) / (10.22 + Hb)
Female: LLN × (1.7 × Hb) / (9.38 + Hb)
Quick reference for fellows & attendings.
This panel summarizes the workflow, the decision logic encoded by each code section,
and includes the laboratory's reference flowcharts.
Tool how-to with screenshots, decision logic per code section, clinical guidance.
The lab's authoritative source document on PFT interpretation methodology.
Reference flowcharts
Click a chart to expand. Use the 📊 View decision flowchart link in the left panel (above the code list) to jump directly to the chart matching your current section.
Spirometry & flow-volume loops A & B codes
MVV (Maximum Ventilatory Volume) D codes
Lung volumes E codes
DLCO / KCO G codes
Five-step workflow
- Pick a Quality code (QC always; plus QS/QV/QD per modality tested).
- Move through Spirometry → Lung Volumes → DLCO picking one or more codes per section. Severity dropdowns appear under codes that need them.
- If a prior study exists, use Changes Over Time. HA/HB/HC have chips for which parameters changed; M1/M2 pull rates from the calculator.
- Use the Calculations tab for BMI, ratios, MVV, MIP/MEP z-score, longitudinal change, annualized rate, and the Hb-adjusted DLCO LLN.
- Read the Narrative tab. Fill any red placeholders. Copy.
Decision logic — by section
Spirometry (A / B codes)
FEV₁/FVC < LLN (obstruction):
• FVC > LLN → grade by FEV₁ z-score: AB1 (dysanapsis variant), AB2 mild, AB3 moderate, AB4 severe.
• FVC < LLN → mixed-disorder branch: AD2 (TLC normal — air-trapping only), AD3 (TLC reduced — pick severity), AD1 (no volumes available).
• FVC > LLN → grade by FEV₁ z-score: AB1 (dysanapsis variant), AB2 mild, AB3 moderate, AB4 severe.
• FVC < LLN → mixed-disorder branch: AD2 (TLC normal — air-trapping only), AD3 (TLC reduced — pick severity), AD1 (no volumes available).
FEV₁/FVC > LLN (no obstruction):
• AA1 all normal; AA2 normal with small-airway coving.
• Low-PEF or known NMD: AC1/AC2; add AC3 (PEF reduced out of proportion — may mimic obstruction/restriction; clinical correlation).
• Isolated low FEV₁: AE1 (PRISm).
• Low FVC, non-specific: AE2.
• FVL looks obstructive despite normal ratio: AE3 (pseudonormalization).
• Lung volumes available to clarify: AE4.
• AA1 all normal; AA2 normal with small-airway coving.
• Low-PEF or known NMD: AC1/AC2; add AC3 (PEF reduced out of proportion — may mimic obstruction/restriction; clinical correlation).
• Isolated low FEV₁: AE1 (PRISm).
• Low FVC, non-specific: AE2.
• FVL looks obstructive despite normal ratio: AE3 (pseudonormalization).
• Lung volumes available to clarify: AE4.
FVL morphology: AF1 intrathoracic, AF2 extrathoracic, AF3 fixed CAO, AF4 sawtooth, AF5 knee variant, AF6 biphasic (possible unilateral CAO).
Add-ons: AU borderline · AV1/AV2 volumes · AO obesity · BA/BB/BC FVC commentary when volumes unavailable · AZ unreliable.
MVV & respiratory muscle pressures (D codes; MIP / MEP)
• MVV > LLN: DA.
• MVV < LLN, FEV₁ normal: weakness/effort pattern (DB, or DM if known NMD).
• MVV < LLN, FEV₁ low, MVV > 32×FEV₁: DC (reflects reduced FEV₁).
• MVV < LLN, FEV₁ low, MVV < 32×FEV₁: DD (out of proportion), or DE if obstruction present (dynamic hyperinflation).
• Unreliable: DZ.
• MVV < LLN, FEV₁ normal: weakness/effort pattern (DB, or DM if known NMD).
• MVV < LLN, FEV₁ low, MVV > 32×FEV₁: DC (reflects reduced FEV₁).
• MVV < LLN, FEV₁ low, MVV < 32×FEV₁: DD (out of proportion), or DE if obstruction present (dynamic hyperinflation).
• Unreliable: DZ.
Respiratory muscle pressures (MIP / MEP):
Bottom subsection of the MVV tab. Pick a severity for each (not reduced → severely reduced); the sentence carries a general reference value (MIP ~100, MEP ~180 cmH₂O). Reference values are age/sex/height-specific — grade against the lab's predicted/LLN. The MIP/MEP z-score calculator (Calculations tab) returns z = (measured − predicted) / RSD, RSD = (predicted − LLN) / 1.645, and flags below-LLN (z ≤ −1.65).
Bottom subsection of the MVV tab. Pick a severity for each (not reduced → severely reduced); the sentence carries a general reference value (MIP ~100, MEP ~180 cmH₂O). Reference values are age/sex/height-specific — grade against the lab's predicted/LLN. The MIP/MEP z-score calculator (Calculations tab) returns z = (measured − predicted) / RSD, RSD = (predicted − LLN) / 1.645, and flags below-LLN (z ≤ −1.65).
Lung volumes (E codes)
TLC < LLN (restriction):
• RV/TLC normal, no obstruction → EB1/EB2/EB3 (graded by TLC z-score).
• RV/TLC > ULN, no obstruction → EC (pick both severities: restriction + air-trapping).
• RV/TLC > ULN, obstruction present → ED (pick both severities).
• RV/TLC normal, no obstruction → EB1/EB2/EB3 (graded by TLC z-score).
• RV/TLC > ULN, no obstruction → EC (pick both severities: restriction + air-trapping).
• RV/TLC > ULN, obstruction present → ED (pick both severities).
TLC > ULN:
• RV/TLC > ULN → EH2 (hyperinflation; pick air-trapping severity).
• RV/TLC < ULN, VC > ULN → EH3 (supraphysiologic, no air-trapping).
• RV/TLC > ULN → EH2 (hyperinflation; pick air-trapping severity).
• RV/TLC < ULN, VC > ULN → EH3 (supraphysiologic, no air-trapping).
TLC normal (LLN < TLC < ULN):
• RV/TLC > ULN → EH1 (air-trapping; pick severity).
• TLC/VC mismatch → EK1 or EK2.
• All normal → EA.
• RV/TLC > ULN → EH1 (air-trapping; pick severity).
• TLC/VC mismatch → EK1 or EK2.
• All normal → EA.
Add-ons: EN1/EN2 N₂ washout · EU borderline · EZ unreliable · EO obesity.
DLCO (G codes)
• Unreliable: GZ.
• DLCO > ULN: GE (elevated).
• DLCO within normal: GA. Borderline: GU.
• DLCO < LLN: GB1/GB2/GB3 (by z-score). Add GH1 (Hb unavailable, formula provided) or GH2 (Hb-adjusted predicted in use).
• Poor gas mixing: GI. Low VA + high KCO: GK.
• DLCO > ULN: GE (elevated).
• DLCO within normal: GA. Borderline: GU.
• DLCO < LLN: GB1/GB2/GB3 (by z-score). Add GH1 (Hb unavailable, formula provided) or GH2 (Hb-adjusted predicted in use).
• Poor gas mixing: GI. Low VA + high KCO: GK.
Changes over time (H / M codes)
Change Assessment:
HA no change, HB improvement, HC worsening — each with chips for {lung mechanics, lung volumes, spirometric indices, air-trapping, DLCO}. HZ no prior.
HA no change, HB improvement, HC worsening — each with chips for {lung mechanics, lung volumes, spirometric indices, air-trapping, DLCO}. HZ no prior.
Modifiers & Add-ons:
M1/M2 — rate context (within / exceeds expected); chips for FEV₁/FVC/DLCO, values auto-fill from the calculator.
M3 consistent decline · M4 DLCO change non-significant · M5 FVC obstruction caveat.
M1/M2 — rate context (within / exceeds expected); chips for FEV₁/FVC/DLCO, values auto-fill from the calculator.
M3 consistent decline · M4 DLCO change non-significant · M5 FVC obstruction caveat.
Thresholds
| Metric | Mild | Moderate | Severe |
|---|---|---|---|
| z-score | −1.65 to −2.50 | −2.51 to −4.00 | < −4.00 |
| Significant change | Threshold (both required) |
|---|---|
| FEV₁ / FVC | |Δ| ≥ 0.10 L AND |Δ%| ≥ 10% |
| DLCO | |Δ| ≥ 2.5 mL/min·mmHg AND |Δ%| ≥ 15% |
| Annualized rate | Within typical | Accelerated |
|---|---|---|
| FEV₁ / FVC | ≤ 40 mL/yr loss | > 40 mL/yr loss |
| DLCO | ≤ 1 mL/min·mmHg/yr loss | > 1 mL/min·mmHg/yr loss |
Placeholder & chip types
- Severity dropdown (single) — codes like AD3, EH1, EH2 with one mild/mod/severe selection.
- Two severity dropdowns — EC and ED: restriction severity and air-trapping severity, picked independently.
- Custom single-select dropdown — MIP/MEP: choose not reduced / mildly / moderately / severely reduced.
- Multi-select chips (parameters) — HA/HB/HC: chips toggle which parameters the change applies to.
- Multi-select with calculator — M1/M2: chips for FEV₁/FVC/DLCO; selected parameters pull their annualized rate from the calculator. Selected-but-not-entered shows red [not entered].
Special populations
- Transgender / gender-diverse: add QG (Quality → Population-specific Notes) for the standardized reference-equation note.
- Obesity (BMI ≥ 40): AO (spirometry) and/or EO (lung volumes).
- Anemia: use GH1 if Hb unavailable, GH2 if lab provides Hb-corrected DLCO. Use the Adjusted LLN DLCO calculator to re-grade.
- NMD: AC1/AC2/AC3, BC, DM, MIP/MEP, and CS1/CS2 threads.
References
- ATS PFT Interpretation 2026 flowcharts (A/B, D, E, G codes).
- Duke South Lab PFT Interpretation Guide v1.9.
- GLI spirometry race-neutral: Bowerman et al., AJRCCM 2023.
- GLI lung volumes: Hall et al., ERJ 2021.
- GLI DLCO: Stanojevic et al., 2017.
📑 Append interpretation to PFT report
Upload the original PFT report (PDF). The tool will append a new page
with your interpretation narrative and signature block, then download
the combined PDF. Everything runs locally in your browser — the
PDF is never uploaded anywhere.
1
Upload the original PFT PDF
No file selected
2
Signature
Optional metadata (patient, MRN, study date)
3
Generate combined PDF
Tip: the appended page reflects whatever is currently in the Narrative tab. Switch back to Narrative to add or remove codes before generating.