ICD-10 Codes for Asthma (J45)
Asthma coding is a grid. One digit records the documented severity of the disease — mild intermittent through severe persistent — and the final digit records what's happening today: uncomplicated, exacerbation, or status asthmaticus. Most claims never use the grid at all; they default to J45.909, and that default is the biggest specificity problem in asthma coding.
How ICD-10 organizes asthma: a severity-by-acuity grid
Asthma in ICD-10-CM is a two-axis grid, and reading category J45 that way makes the whole family click. The digit right after “J45.” records the documented severity of the underlying disease: mild intermittent (J45.2-), mild persistent (J45.3-), moderate persistent (J45.4-), or severe persistent (J45.5-). The final digit records the acuity of this particular encounter: uncomplicated, with (acute) exacerbation, or with status asthmaticus. Every cell in the grid is its own billable code:
| Severity | Uncomplicated | With exacerbation | With status asthmaticus |
|---|---|---|---|
| Mild intermittent | J45.20 | J45.21 | J45.22 |
| Mild persistent | J45.30 | J45.31 | J45.32 |
| Moderate persistent | J45.40 | J45.41 | J45.42 |
| Severe persistent | J45.50 | J45.51 | J45.52 |
| Unspecified | J45.909 | J45.901 | J45.902 |
Two quirks are worth memorizing. First, the unspecified row breaks the numbering pattern: its exacerbation and status-asthmaticus codes are J45.901 and J45.902, but its “uncomplicated” code is J45.909 — ending in 9, not 0. It's a small asymmetry that produces real transposition errors when codes are typed from memory. Second, the two axes are independent. A patient classified with mild persistent asthma can have a dramatic flare (J45.31), and a patient with severe persistent asthma can come in for a routine, entirely uneventful refill visit (J45.50). What happens today moves the acuity digit; only the provider's chronic classification moves the severity digit.
Only the full grid codes are billable — the shorter category levels (J45, J45.2) won't survive a claim edit. Here's how the phrasings you'll actually see in notes land in the grid:
| The note says | The code is |
|---|---|
| “Asthma” — nothing else | J45.909 |
| “Asthma exacerbation,” no severity stated | J45.901 |
| “Moderate persistent asthma,” stable visit | J45.40 |
| “Severe persistent asthma in status asthmaticus” | J45.52 |
| “Asthma with COPD,” no type stated | J44.89 (see below) |
| “Exercise-induced bronchospasm” | J45.990 |
One more orientation note for anyone who learned asthma in the ICD-9 era: the axis changed. The old extrinsic/intrinsic split is gone — allergic and nonallergic asthma both classify to J45, and severity is what the code captures now. Need a code that isn't in the grid? Search the full J45 family in the lookup tool.
How to choose the right asthma code
1. Is COPD also documented?
If the record documents chronic obstructive pulmonary disease alongside the asthma — or uses hybrid language like “chronic obstructive asthma” — the code moves out of J45 entirely and into J44, with the asthma type added back as a second code. This changes everything downstream, so check it first; the details are in the COPD section below.
2. Is the patient pregnant?
Chapter 15 codes take sequencing priority, so asthma in a pregnant patient is led by O99.51- (diseases of the respiratory system complicating pregnancy), selected by trimester — O99.511 first, O99.512 second, O99.513 third, O99.519 unspecified — with the J45 code added to identify the asthma itself. The neighboring codes O99.52 and O99.53 cover childbirth and the puerperium. The J45 code still gets all the specificity described below; it just doesn't go first. (The exception: if the provider explicitly documents that the asthma isn't affecting the pregnancy, Z33.1 — pregnant state, incidental — replaces the O99 code. Complicating is the default; incidental has to be stated.)
3. Is it one of the special forms?
Exercise-induced bronchospasm (J45.990) and cough-variant asthma (J45.991) have their own codes that sit outside the severity grid. If the provider's diagnosis is one of these — and not a graded, classified asthma — the special-form code is the pick, and the remaining steps don't apply.
4. What severity has the provider assigned?
Find the classification in the provider's own words: mild intermittent, mild persistent, moderate persistent, or severe persistent. That statement selects the row. If no severity appears anywhere in the encounter documentation, the code falls to the unspecified row (J45.90-) — and if severity should be documentable (the patient is established, the medication list implies persistent disease), that's a query opportunity, not a shrug.
5. What happened at this encounter?
Now pick the column. Uncomplicated means the asthma is present but behaving: a medication check, a refill, a stable problem-list condition addressed during a visit for something else. With (acute) exacerbation is for a documented worsening — the ICD-10-CM Official Guidelines (Section I.C.10.a.1) describe an acute exacerbation as a worsening or decompensation of the chronic condition, and they're explicit that it is not the same thing as an infection superimposed on the asthma, even though an infection can trigger one. So “asthma exacerbation,” “asthma flare,” or “acute asthma attack” moves the acuity to exacerbation; if bronchitis or pneumonia is also documented, the infection is coded separately in addition, not folded into the asthma code. With status asthmaticus is the extreme end: a severe exacerbation that is not responding to standard treatment. Clinically it's an emergency; for the coder it's a documentation-driven pick — assign it when the provider documents status asthmaticus, and query rather than inferring it from the treatment pattern alone.
J45.42 alone, never J45.41 plus J45.42.
J45.909: the overused default
J45.909 (unspecified asthma, uncomplicated) is what gets billed when the note says “asthma” and nothing else. Sometimes that's genuinely all the documentation supports — and when it is, J45.909 is the correct code, not a failure. The problem is how often it's used when better information is sitting in the chart: a pulmonology consult that classified the patient as moderate persistent two visits ago, a problem list that reads “severe persistent asthma,” a controller-medication regimen that only makes sense for persistent disease. An unspecified code on top of specific documentation isn't a neutral choice — it understates a documented condition, weakens medical-necessity support for the therapy the provider is actually prescribing, and erodes the clinical picture payers and quality programs read from claims.
What supports a severity pick is a provider statement of the classification — “mild intermittent,” “mild persistent,” “moderate persistent,” or “severe persistent” — in the record. Clinicians typically classify using the NAEPP-style framework, where intermittent asthma means symptoms intrude no more than a couple of days a week and the persistent grades escalate by how often symptoms disrupt days, nights, and activity. That framework is useful context for a coder, but the coding point is sharper: coders don't classify — providers do. If the note describes daily symptoms and nighttime awakenings but never states a severity, the correct move is a query, not an inference from symptom frequency. And the classification should be current: a severity carried forward from an old note that the provider hasn't reaffirmed for this encounter is a documentation-integrity question, not a free upgrade.
One more nuance: unspecified severity doesn't force “uncomplicated.” If the visit is for a flare and no severity is documented, the code is J45.901 — unspecified asthma with exacerbation — and status asthmaticus without a stated severity is J45.902. Reporting J45.909 for an emergency-department asthma flare gets both axes wrong at once.
J45.31 — the severity doesn't get upgraded because today was bad. If the provider believes the disease itself has progressed, that's a re-classification for them to document, and future encounters code from the new severity.
The special forms — and the neighbors that aren't asthma
Three J45 codes sit outside the severity grid entirely:
| Code | Description |
|---|---|
| J45.990 | Exercise induced bronchospasm |
| J45.991 | Cough variant asthma |
| J45.998 | Other asthma |
J45.990 (exercise-induced bronchospasm) is for the patient whose documented condition is bronchospasm brought on by exercise. It is not the code for a patient with classified persistent asthma whose symptoms happen to worsen with exertion — that patient codes from the severity grid, because the underlying classification is the diagnosis. J45.991 (cough-variant asthma) is the documented diagnosis in which chronic cough is the predominant or only symptom. It requires the provider to have made that diagnosis — a chronic cough that hasn't been attributed to asthma stays a symptom code (R05.9, cough unspecified, or one of its siblings), not J45.991. And J45.998 (other asthma) covers documented forms that don't fit the named codes. Note that none of these carry a severity or an exacerbation/status axis — there is no “cough-variant asthma with exacerbation” code.
A few near-neighbors are worth keeping straight, because they look like asthma codes and aren't. Wheezing by itself is a symptom, R06.2 — the right code when a patient wheezes and no asthma diagnosis has been made, and the wrong one once the provider has diagnosed asthma (the J45 code then tells the whole story). Acute bronchospasm without an asthma diagnosis is J98.01; when the bronchospasm is part of documented asthma, it's captured by the asthma code rather than coded separately. And eosinophilic asthma lives outside J45 altogether at J82.83, in the pulmonary-eosinophilia category — the J45 tabular carries a “use additional code” instruction for it, so when documentation supports both, the J45 code and J82.83 are reported together rather than one replacing the other.
Two phrases deserve extra caution. “Reactive airway disease” shows up constantly, especially in pediatric and urgent-care notes; without further specificity it classifies with unspecified asthma, but it's exactly the kind of vague phrasing that deserves a query, because it's often a placeholder for a diagnosis the provider hasn't committed to yet. And “history of asthma” is genuinely ambiguous: clinicians frequently write it about a patient who still has asthma (a chronic condition), in which case the active J45 code applies — but childhood asthma that has truly resolved is a personal-history code, Z87.09 (personal history of other diseases of the respiratory system), not an active diagnosis. When the phrase could go either way, ask.
Asthma with COPD: the code moves to J44
When a patient has both asthma and chronic obstructive pulmonary disease — or the documentation uses hybrid language like “chronic obstructive asthma” or “chronic asthmatic bronchitis” — ICD-10-CM classifies the condition to category J44, not J45 alone. Pick the J44 code by what's happening with the obstructive disease at this encounter:
| Code | Description |
|---|---|
| J44.0 | Chronic obstructive pulmonary disease with (acute) lower respiratory infection |
| J44.1 | Chronic obstructive pulmonary disease with (acute) exacerbation |
| J44.89 | Other specified chronic obstructive pulmonary disease |
The stable row is the one that recently moved. Through FY2023, stable asthma-with-COPD landed at J44.9 (COPD, unspecified); the FY2024 update — effective October 1, 2023 — created J44.89 and relocated the asthma-with-COPD inclusion terms there, and the FY2026 Alphabetic Index now sends “asthma with chronic obstructive pulmonary disease” and “chronic obstructive asthma” to J44.89. References — and coding habits — that still say J44.9 for this patient are describing the old tabular.
Then apply the instruction that makes this a two-code answer: category J44 carries a “code also the type of asthma, if applicable (J45.-)” note. When the record specifies the asthma type — say, moderate persistent — you report the J44 code for the COPD and the matching J45 code for the asthma classification. The “if applicable” is doing real work: the add-on is for a documented type of asthma. When the note says only “COPD and asthma” with no classification, there's no type to add, and the J44 code carries the encounter on its own. Sequencing between the two, as with any “code also” pairing, is discretionary and follows the reason for the encounter.
The J45 side of the tabular reinforces the same move: its Excludes2 notes point “asthma with chronic obstructive pulmonary disease,” “chronic obstructive asthma,” and “chronic asthmatic (obstructive) bronchitis” to J44.89. So a claim that reports a J45 code alone for a documented asthma-plus-COPD patient isn't just missing specificity — it's in the wrong category, and it understates the obstructive disease. Need the rest of the J44 family — the J44.0 vs. J44.1 boundary, or the other J44.8- codes? Our ICD-10 guide to COPD covers the full category.
Common asthma coding mistakes
- Defaulting to J45.909 when the chart states a severity. If the provider's documentation classifies the asthma (mild intermittent through severe persistent), the severity-specific code is required — the unspecified code under-reports a documented condition.
- Reporting exacerbation and status asthmaticus together. Status asthmaticus takes precedence. An exacerbation that progressed to status asthmaticus is the status-asthmaticus code alone (for example
J45.42), never both codes from the same row. - Letting a bad day inflate the severity. A severe flare of mild persistent asthma is
J45.31— not J45.51. The severity digit is the chronic classification, not a description of the visit. - Keeping the code in J45 when COPD is documented. Asthma with COPD classifies to
J44.-— stable cases toJ44.89since the FY2024 update, not the old J44.9 — with the asthma type added from J45 per the “code also” note. J45 alone is the wrong category for that patient. - Coding a flare as uncomplicated because severity is unknown. Unspecified severity has its own exacerbation and status codes —
J45.901andJ45.902. J45.909 says nothing acute happened. - Skipping the exposure and tobacco codes. The J45 tabular expects an additional code for tobacco use, dependence, or smoke exposure when documented (
Z77.22,Z87.891,F17.-,Z72.0). Their absence leaves the claim telling an incomplete story.
A worked example
J45.42Z77.22The severity is documented, so the code comes from the moderate-persistent row — not the unspecified J45.90- codes. Both an exacerbation and status asthmaticus are documented, and status asthmaticus takes precedence, so the acuity is status asthmaticus: J45.42, with no J45.41 reported alongside it. Finally, the documented household smoke exposure supports Z77.22 under the category's use-additional-code instruction.
J44.89J45.40COPD is documented alongside the asthma, so the encounter is anchored in category J44 — and with nothing acute happening, that's J44.89, where the FY2024 update placed stable asthma-with-COPD (not the old J44.9 default), and J45 alone would be the wrong category. Because the asthma type is specified (moderate persistent), the “code also the type of asthma” note adds J45.40: the moderate-persistent row, uncomplicated column. Had the note said only “COPD and asthma,” J44.89 would stand alone.
The codes that ride along: tobacco and smoke exposure
The J45 tabular carries a use-additional-code instruction for the tobacco picture, and it's broader than just “smoker”: it covers exposure to environmental tobacco smoke, tobacco exposure in the perinatal period (P96.81), occupational smoke exposure, history of tobacco dependence, current dependence, and current use. The ones you'll attach most often:
| Code | Description |
|---|---|
| Z77.22 | Contact with and (suspected) exposure to environmental tobacco smoke (acute) (chronic) |
| Z87.891 | Personal history of nicotine dependence |
| F17.210 | Nicotine dependence, cigarettes, uncomplicated |
| Z72.0 | Tobacco use |
| Z57.31 | Occupational exposure to environmental tobacco smoke |
Pick the one the documentation supports: a current smoker with dependence takes an F17.2- code (chosen by product and any complication), a former smoker takes Z87.891, secondhand exposure at home takes Z77.22, and exposure on the job takes Z57.31. These aren't decorative — they're instructed by the tabular, and they document the exposure history that makes the asthma picture on the claim clinically coherent. In pediatric asthma especially, the secondhand-exposure code is often the only place the claim records a trigger the note discusses at length.
What the note needs to document
- The severity classification — mild intermittent, mild persistent, moderate persistent, or severe persistent — stated by the provider
- Today's acuity: stable/uncomplicated, acute exacerbation, or status asthmaticus (and which, if the flare progressed)
- Any COPD, which moves the code to J44 with the asthma type added
- Any special form — exercise-induced bronchospasm, cough-variant, or eosinophilic asthma
- Tobacco status and smoke exposure for the additional Z or F17 code
- Pregnancy (and the trimester), which re-sequences the encounter under O99.51-
Frequently asked questions
When the documentation says only “asthma” with no severity and no flare, the code is J45.909 (unspecified asthma, uncomplicated). But when the provider classifies the asthma — mild intermittent through severe persistent — a severity-specific code from J45.2- through J45.5- is required instead.
All three are unspecified-severity asthma codes; the last digit records the acuity. J45.901 is unspecified asthma with (acute) exacerbation, J45.902 is with status asthmaticus, and J45.909 is uncomplicated — no flare at all.
From category J44, not J45 alone: J44.89 when the obstructive disease is stable (the FY2024 update moved stable asthma-with-COPD there from the old J44.9 default), J44.1 during an acute exacerbation, or J44.0 with an acute lower respiratory infection. J44 carries a “code also the type of asthma, if applicable” note — add the J45 code when a specific type (for example moderate persistent) is documented.
With the status-asthmaticus code on the documented severity row: J45.22, J45.32, J45.42, J45.52, or J45.902 when severity isn't documented. If both an exacerbation and status asthmaticus are documented, status asthmaticus takes precedence and only that code is assigned.
J45.990 (exercise induced bronchospasm). It's for the documented diagnosis of exercise-induced bronchospasm itself — a patient with classified persistent asthma whose symptoms worsen with exertion still codes from the severity grid.
J45.991 (cough variant asthma), used when the provider documents that diagnosis. A chronic cough that hasn't been attributed to asthma is coded as a symptom (for example R05.9), not as cough-variant asthma.