Since 2023, hospital E/M is refreshingly logical: observation and inpatient share one code set, and you pick the level by Medical Decision-Making or total time — not history and exam. Here's the whole thing broken into pieces you can hold in your head, with a calculator to pick the code.
This is an educational summary of general CPT® / CMS rules (2023 E/M revisions, in effect through 2024–2025). Billing rules change yearly and vary by payer, contract, and locality. This is not coding, legal, or compliance advice — always confirm with your institution's coders/compliance team and current CMS & AMA CPT guidance. wRVU figures are approximate national values and update annually.
The 2023 overhaul killed the old bean-counting. Three ideas carry almost everything — get these and the codes fall out.
Pick the visit level from Medical Decision-Making (complexity) or from total time on the calendar day — your choice, whichever is higher. History & exam must be "medically appropriate" but no longer set the level.
Observation codes (the old 99217–99226) were deleted. Observation and inpatient now use the same 9922x / 9923x families. The old "is this obs or inpatient?" no longer changes your CPT code.
Admission status (observation vs inpatient) still matters enormously — it drives Part A vs Part B, patient cost, the SNF 3-day rule, and the 2-midnight rule — but it's a coverage/compliance question, separate from which E/M code you pick.
Ask three questions in order: (1) What status? (obs vs inpatient → coverage). (2) Which encounter? (initial / subsequent / same-day / discharge / critical care → code family). (3) What level? (MDM or time → the last digit).
This is a coverage status, not a place and not a code. It's set by the admitting order and the 2-midnight rule, and it changes who pays and how much.
Inpatient admission (Part A). Document the expectation and the reasoning in the admit note.
Observation (outpatient, Part B) — short-term monitoring/treatment to decide whether an inpatient admission is needed. Convert to inpatient if the picture changes.
An "observation" stay can leave a Medicare patient with surprise out-of-pocket costs and — crucially — no coverage for a subsequent skilled nursing facility stay, because obs midnights don't satisfy the 3-day inpatient requirement. Getting status right is a patient-finance issue, not just a hospital-revenue one.
Before the level, pick the encounter type. One of these five almost always applies (obs and inpatient use the same codes).
Your admission / first encounter. One initial code per admission per specialty group.
Daily progress visits. The bread-and-butter of the hospitalist day.
Used when the patient is admitted and discharged on the same date (obs or inpatient).
99238 ≤ 30 min · 99239 > 30 min. Time-based; includes exam, discharge orders, prescriptions, instructions.
99291 first 30–74 min · 99292 each add'l 30. Time-based; bundles many services. Not billed with a same-time E/M.
Medicare does not pay consult codes — use the initial hospital codes instead. Some commercial payers still accept them.
Medical Decision-Making has three elements. Your level is the one met by at least 2 of the 3. Read across, find the row where two boxes are satisfied.
| MDM level | ① Problems addressed | ② Data reviewed / analyzed | ③ Risk (Dx, Tx, management) | Initial → Subsequent |
|---|---|---|---|---|
| Straightforward | 1 self-limited or minor problem | Minimal or none | Minimal risk | 99221 → 99231 |
| Low | 2+ self-limited; or 1 stable chronic; or 1 acute uncomplicated illness/injury | Limited — one category (e.g. order/review tests, or review 1 external note) | Low risk | 99221 → 99231 |
| Moderate | 1 chronic w/ exacerbation; or 2+ stable chronic; or 1 undiagnosed new problem, uncertain prognosis; or 1 acute illness w/ systemic symptoms; or 1 acute complicated injury | Moderate — e.g. 3 items in a category, or independent interpretation of a test, or discussion of management with an external physician | Prescription drug management; decision re: minor surgery w/ risk factors; Dx/Tx limited by social determinants | 99222 → 99232 |
| High | 1 chronic w/ severe exacerbation; or 1 acute/chronic illness or injury that threatens life or bodily function | Extensive — 2+ of the moderate data options | Drug therapy needing intensive monitoring for toxicity; decision re: hospitalization / escalation; decision re: DNR / de-escalation; emergency major surgery | 99223 → 99233 |
Most inpatients you actively manage land at Moderate (99222 / 99232) because prescription drug management alone satisfies the Risk column. You reach High (99223 / 99233) when the illness threatens life/organ function, you're titrating a drug that needs intensive toxicity monitoring, or you make an escalation / DNR / de-escalation decision — so document those.
Select the elements you addressed in each column. Each category takes its highest selected element; the overall level is the one met by 2 of the 3 — and the code updates with a plain-English reason.
Data is category-based (not "highest item"): Low = 2 tests/documents or a historian · Moderate = 3 tests/documents, an independent interpretation, or an external discussion · High = any 2 of those. A historian alone is only Low.
Alternatively, total time on the calendar date — face-to-face and non-face-to-face (chart review, orders, documentation, care coordination, counseling). Not: separately billable procedures, or teaching time.
When your total time exceeds the top code's maximum, add prolonged care in 15-minute units: CPT 99418 (each additional 15 min, inpatient/obs). Medicare uses G0316 instead. Only counts once you've passed the time of 99223 / 99233 / 99236.
Pick the encounter, then the driver (MDM level or time). It returns the code, the time threshold, an approximate wRVU, and the documentation that defends it.
Work RVUs drive productivity and compensation. Note the jump from a 99231 to a 99233 — a well-documented level change more than doubles the work value of the same visit.
The note is the bill. To support Moderate/High, the chart must show the problems, the data, and the risk in plain language.
Write one line: "Total time on [date]: XX minutes, including chart review, exam, orders, documentation, and care coordination." That single statement supports a time-based level — no MDM parsing needed.
The patterns that trigger audits and denials.
Identical daily notes are the #1 audit flag and can't support a rising level. Each day's note must reflect that day's problems, data, and decisions.
A 99233 needs High MDM (or ≥50 min documented). Billing it routinely without the life/organ-threat, intensive-monitoring, or escalation language is a classic overpayment finding.
If you bill by time, the total minutes must be in the note. "Spent significant time" is not enough.
An "observation" order paired with clearly inpatient-level intensity (or vice versa) invites review. Keep the admit status, the 2-midnight expectation, and the daily intensity consistent.
Only one initial hospital code per admission per specialty group; other same-group clinicians bill subsequent care. Split/shared visits (physician + APP) and teaching-physician rules have their own documentation requirements — check your local policy.