Why the same CPT coding errors keep coming back

Sort a denial report by claim adjustment reason code and the coding problems announce themselves. CO-4 means a modifier is missing or inconsistent with the procedure. CO-97 means the payer bundled the service into another one paid the same day. CO-16 means something required was missing. A unit rejection means the count exceeded what the payer allows. A practice that sees the same codes month after month has a process that produces the same claim the same wrong way.

The coder is rarely the only cause. An EHR template that drops a modifier onto every injection, a charge master line that stores a drug in milligrams instead of billing units, a provider who has picked the same E/M level for a decade, a superbill that still lists a code deleted two years ago: these produce errors faster than any coder can catch them.

E/M level selection under the MDM-or-time rules

The 2021 revision to office and outpatient E/M codes (99202 through 99215) removed history and examination from level selection. A level is now chosen on either medical decision making, scored across the problems addressed, the data reviewed and ordered, and the risk of the management chosen, or on total practitioner time on the date of the encounter. In 2023 the same framework was extended to hospital inpatient and observation, emergency department, nursing facility and home visits. CMS publishes its own guidance on these visits, and it differs from the AMA in places, most visibly on prolonged services, where Medicare uses its own G code rather than the CPT add-on.

The errors are predictable. Providers still document long histories and exams that support nothing, then pick a level by habit. Time is billed without a statement of total time, or with another day's time counted in. MDM is over-scored by counting each lab in a panel separately, or under-scored because a chronic illness with exacerbation is documented as stable. The fix is a template that presents the MDM table at signing, a single required total-time field, and a periodic look at each provider's level distribution against a sample of their own notes. A distribution that is almost entirely one level is a habit, not a case mix.

Modifier 25: the E/M that has to stand on its own

Modifier 25 reports a significant, separately identifiable E/M service by the same practitioner on the same day as a procedure. Every procedure already includes deciding to do it, explaining it and checking the site afterward. Modifier 25 says the visit went meaningfully beyond that. Dermatology biopsies, orthopedic joint injections and pediatric well visits with a problem addressed are where it is most often attached wrongly.

Payers audit it with one question: if you delete the procedure from the note, is there still a documented, medically necessary E/M with its own problem, assessment and plan? If not, the modifier does not belong. At the source, turn off any EHR rule that adds 25 automatically whenever an E/M and a procedure share a date, structure the note so the problem-oriented portion is visibly separate from the procedure note, and teach the rule as a documentation question rather than a billing one.

Modifier 59 and the X modifiers against NCCI edits

The National Correct Coding Initiative maintains procedure-to-procedure edits, pairs of codes Medicare will not pay together on the same day without an explanation. Each pair carries a modifier indicator: 0 means no modifier will unbundle it, 1 means an appropriate modifier can when the documentation supports a separate encounter, separate anatomic site, separate practitioner or otherwise distinct service. Modifier 59 is the general-purpose version. XE, XS, XP and XU are the more specific versions CMS introduced, and when one of them fits it should be used instead of 59.

The error is using 59 as a key to the payment door, adding it to whatever the scrubber flags until the claim goes through. That gets paid until an audit reads the notes. The fix: load the current NCCI table into the scrubber, refresh it each quarter when CMS publishes the update, and require a coder to look at the note before an X modifier is appended to a flagged pair. The NCCI Policy Manual settles most arguments about what counts as distinct.

Units, time-based codes and medically unlikely edits

Unit errors cut both ways. Drug codes are defined per unit dose, and the unit is often neither the vial nor the milligram; a charge entered as milligrams administered can overbill by an order of magnitude, and one entered as a single unit per vial can underbill the same way. Timed codes have their own thresholds: Medicare applies its own counting method to 15-minute therapy codes based on total timed minutes, while other timed services follow the CPT convention that a unit is reported once the midpoint is passed. Infusion codes follow a hierarchy that decides which code is primary regardless of the order performed.

CMS also publishes medically unlikely edits, the maximum units of a code expected on a single date of service, and payers apply them automatically. The fix belongs in charge capture: every drug in the charge master shows its billing unit and a conversion from the documented dose, timed services are entered as minutes and converted by the system, and any code that regularly hits an MUE is reviewed to see whether the documentation supports the units or a unit definition has been misread.

Laterality, patient status, telehealth and deleted codes

The remaining errors are mechanical, and a well-built scrubber should never let them out the door.

  • Laterality: procedures on paired structures need RT or LT, or modifier 50 when the procedure is genuinely bilateral and the code is not already defined that way. Make laterality a required field for every code on the paired-structure list.
  • New versus established: a patient is new if no practitioner of the same specialty in the same group has seen them in the past three years. Billing the wrong status loses money in one direction and invites recoupment in the other, and the rule can be checked against the schedule automatically.
  • Telehealth: Medicare distinguishes telehealth in the patient's home (POS 10) from other locations (POS 02), and many commercial payers still want modifier 95 on the line. Build a payer-specific telehealth rule rather than one global default, and review it when the annual rules change.
  • Deleted codes: CPT changes every January. The 2023 update deleted the consultation codes 99241 and 99251 and folded observation care into the inpatient range. A favorites list that still carries a deleted code produces a rejection every time it is used, so refresh the charge master and every provider's favorites before the first of the year.

Fixing coding errors at the source, not on the claim

Correcting a denied claim recovers one payment. Correcting the origin changes every claim that follows. Take the recurring reason code, find the claims behind it, and trace each back to where the wrong code, modifier or unit first appeared: the encounter template, the charge master, the scrubber rules, a provider habit, or a coder working from a stale reference. The fix goes there, with a date on it, and the same reason code is watched for two months to confirm it moved.

A baseline coding audit makes this faster. A sample of charts read against the claims submitted for them, reported in both directions, shows which of these errors you have before a payer does. Under-coding is the more common finding and the one that costs most quietly. Credentialed coders working from current code sets are the floor; the ceiling is a feedback loop where every coding denial reaches the person who can stop the next one. That is how DyBilling approaches coding: denials worked by reason code, the upstream cause fixed inside the practice's own system, and audit findings returned as specific charts with a change attached to each.