All articles
Billing·7 min read

The 10 PT denial codes that cause the most lost revenue

The denials that show up repeatedly on PT remittances, what each one actually means, and the upstream fix that stops them from coming back.

HS

The HealthSpark Team

Insurance + billing infrastructure for independent PTs

This article is informational and not legal, compliance, or billing advice. Payer rules and dollar amounts can change — confirm current figures and requirements before billing.

Why denials are a workflow problem, not a coding problem

Most PT practices treat denials as a claim-by-claim frustration — appeal this one, resubmit that one, write off the rest. The real pattern is that the same handful of denial codes account for the majority of lost revenue, and almost all of them are created upstream of the claim.

Fixing denials one at a time keeps the backlog flat. Fixing the upstream step that caused each denial takes it off the list for good.

What this looks like on your own

Running denial management as a solo PT means doing all of this, by hand, every week:

  • Open every payer portal and pull the week's denials and underpayments — each portal has a different login, different layout, different report format
  • Categorize denials by code (CO-16, CO-29, CO-50, CO-197, and so on) and tally dollar impact
  • Decide which denials are worth appealing based on dollar amount, success probability, and time left in the filing window
  • Write appeal letters, pull supporting documentation, and submit through the right channel (some payers want a portal, some want a fax, some want mail)
  • Track appeal status and follow up when the payer goes silent — which they usually do
  • Trace each denial code back to the upstream step (eligibility, authorization, coding, documentation) and try to fix the workflow before the same denial appears next week

For a solo PT seeing patients full-time, denial management is the Sunday-night tax. It never really ends, the backlog always grows a little faster than you can close it, and every hour spent on it is an hour not spent on care.

Key takeaway

Every denial has an upstream step where it could have been prevented. The fix lives there, not in the appeal.

The 10 codes that show up most often

  • CO-16 (missing information) — a required field, NPI, or modifier is absent. Upstream fix: claim scrubbing before submission.
  • CO-18 (duplicate claim) — often a resubmission of a claim still in adjudication. Upstream fix: visibility into in-process claims before resubmitting.
  • CO-22 (coordination of benefits) — another payer is primary. Upstream fix: secondary insurance confirmed at intake.
  • CO-27 (expenses after coverage terminated) — patient is no longer covered. Upstream fix: eligibility re-run before the visit.
  • CO-29 (timely filing) — claim filed past the payer window. Upstream fix: a submission workflow that does not let claims sit.
  • CO-45 (charge exceeds fee schedule) — a write-off category, not a denial to chase. Clean the contract rates in the billing system.
  • CO-50 (not medically necessary) — documentation does not support the services. Upstream fix: note language that supports skilled care.
  • CO-97 (included in another procedure) — bundling issue. Upstream fix: verify payer-specific bundling rules before coding.
  • CO-197 (precertification missing) — authorization required but not obtained. Upstream fix: confirm auth requirements at intake for every payer.
  • CO-109 (claim not covered by this payer) — wrong payer, usually Medicare Advantage billed as Original Medicare. Upstream fix: eligibility check that surfaces MA enrollment.

Where PTs get in trouble

  • Appealing everything. Time spent on low-dollar appeals is time not spent seeing patients. Triage by dollar amount and code.
  • Treating denials as random. They are not. A denial report grouped by code tells you what to fix upstream.
  • Missing the timely-filing window. A denial you sit on for 90 days can become unappealable.

Inside HealthSpark

HealthSpark ingests every remittance, groups denials by code and dollar impact, and traces each category back to the upstream step that caused it. Appeals worth pursuing are queued and handled. Write-offs that are not worth the time are closed with a single review. You get one dashboard instead of eight portal logins.

How HealthSpark handles this end-to-end

  • Unified remittance processing: every payer feeds into one system; no portal-hopping
  • Denial analytics: denials grouped by code, ranked by dollar impact, with the root-cause workflow step identified
  • Triage by ROI: appeals worth pursuing are flagged; low-dollar noise is closed out so you do not chase it
  • Appeal preparation: packets are assembled with the right documentation for the denial code, not a dump of the whole chart
  • Filing-window tracking: timely-filing deadlines are tracked per payer; nothing rots until it is unappealable
  • Upstream fixes: the recurring denial categories get their workflow root cause addressed — so the same denial does not show up next month

The Sunday-night tax disappears. You see patients. We run denial management as a real operational function.

The HealthSpark workflow

Submit your visit. We handle the rest.

Eligibility, Medicare Advantage detection, home health episode checks, KX thresholds, claims, denials, and payouts — in one connected workflow built for independent PTs.