Denial code CO-96 — non-covered charge(s)
CO-96 means the payer treated the charge as not covered under the plan’s benefit design or coverage rules. Confirm the exclusion in writing before you treat it as a fixable coding error.
Last reviewed against published HFMA, CMS, MGMA, Premier, and related primary sources linked on this page on .
What CO-96 means
CO-96 (group code CO = contractual obligation) means the payer adjudicated the charge as non-covered. The most common real cause is a plan exclusion or benefit limitation for that service on that date — not a missing digit on the claim. First action: pull the remittance remark codes and the plan’s coverage language for the service; only then decide among patient liability, appeal on coverage policy, or write-off.
What the code actually says
X12’s short description for reason code 96 is: “Non-covered charge(s).” (X12 CARC (opens in a new tab), as of this page’s last review). That sentence is intentionally broad. It does not tell you why the charge is non-covered — statutory exclusion, plan rider, frequency limit, investigational status, or wrong benefit category all can surface as 96 depending on the payer’s mapping.
Companion RARCs usually carry the actionable detail (X12 RARC (opens in a new tab)). Medicare coverage determinations and claims processing context live in CMS manuals such as the Medicare Claims Processing Manual (opens in a new tab); commercial plans rely on the member’s certificate of coverage and medical policy library. Always record the as-of date of the policy you cite — coverage changes by plan year.
Most common causes and where they originate
Service excluded in plan certificate
- Where it originates
- Benefit design
- How to confirm on the remit
- RARC on non-covered / exclusion; EOB benefit note
- Prevention owner
- Financial counselling + eligibility
Frequency or unit limit exhausted
- Where it originates
- Utilization / prior visits
- How to confirm on the remit
- Remark on maximum allowed / frequency
- Prevention owner
- Auth + scheduling
Experimental / investigational per medical policy
- Where it originates
- Payer medical policy
- How to confirm on the remit
- Policy ID on denial letter or portal
- Prevention owner
- Clinical + UM
Wrong place of service or benefit category for coverage
- Where it originates
- Coding + scheduling
- How to confirm on the remit
- Covered in facility but not office (or reverse)
- Prevention owner
- Coding
Diagnosis does not meet coverage criteria (mapped to non-covered)
- Where it originates
- Coding + documentation
- How to confirm on the remit
- Medical policy diagnosis list vs coded ICD
- Prevention owner
- CDI + coding
Carve-out benefit billed to medical instead of carve-out vendor
- Where it originates
- Registration
- How to confirm on the remit
- Portal points to behavioral or dental vendor
- Prevention owner
- Registration
Operational framing. Pull your top CO-96 procedure codes against plan policies — national averages are not a substitute for your mix.
Working the denial, in order
Step 1
Read RARCs and the EOB narrative
Non-covered is a category; the remark and EOB sentence name the theory (exclusion, frequency, investigational, etc.).
Step 2
Pull plan coverage language for the DOS
Certificate of coverage, medical policy, or Medicare coverage document effective on the date of service. Snapshot the version date in the ticket.
Step 3
Fork: true exclusion vs correctable coding/coverage criteria
If documentation or diagnosis can meet published criteria, correct and resubmit or re-open. If the benefit is excluded, stop coding gymnastics.
Step 4
Patient liability vs provider write-off vs appeal
Check whether a PR group code also appears and whether an ABN/waiver or estimate process applied. Policy appeals need the coverage citation; Medicare levels are in [MLN006562](https://www.cms.gov/files/document/mln006562-medicare-parts-b-appeals-process.pdf).
Step 5
Timely filing and advance notice process fix
If staff should have known the exclusion before service, fix eligibility counselling. Track labour on [cost to collect](/cost-to-collect).
Before you resubmit
- RARC and EOB non-covered reason copied into the ticketNot just “CO-96.”
- Plan policy or certificate section cited with effective dateAs-of date recorded for the coverage rule used.
- Diagnosis and documentation compared to coverage criteriaOnly resubmit when criteria can actually be met.
- Frequency limits and prior utilization checkedIncluding other providers in the same plan year when visible.
- Carve-out / correct payer already ruled outCompare to [CO-109](/denials/co-109) wrong-payer patterns.
- Patient communication path decided (estimate, appeal, self-pay)Do not silent-statement without benefit confirmation.
- Appeal package includes policy text + clinical rationale if appealingSkip appeal when exclusion is explicit and undisputed.
Preventing it upstream
CO-96 prevention is eligibility + financial counselling + medical policy checks before service.
- Maintain a non-covered services list for top payers (cosmetic carve-outs, specific POS rules, common investigational flags).
- Run benefit verification that answers “is this code covered for this diagnosis?” — not only “is the plan active?”
- For high-dollar elective services, require written coverage confirmation or a signed self-pay estimate.
- Feed repeated CO-96 codes into scheduling alerts.
See denials for prevention-vs-appeal capacity and cost to collect for labour cost when non-covered work is discovered after the visit.
How this code differs from ones it gets confused with
CO-96 vs [PR-204](/denials/pr-204). Both can involve non-covered services. PR-204 is a patient-responsibility group code: the remittance is assigning liability to the patient under the benefit plan. CO-96 is contractual-obligation framing of a non-covered charge. Read the group code before you statement the patient.
CO-96 vs [CO-45](/denials/co-45). CO-45 reduces a covered charge to an allowed amount. CO-96 says the charge is not covered (typically no allowed amount for that benefit).
CO-96 vs [CO-97](/denials/co-97). Bundling assumes the service is packaged into another payable service. Non-covered means the plan is not buying that benefit as billed.
When remarks are ambiguous, pull the EOB sentence and the plan policy before choosing an appeal template.
Common questions
- What does the CO-96 denial code description actually mean?
- X12’s short description is simply “Non-covered charge(s).” It means the payer treated the billed charge as not covered. The specific exclusion, limit, or policy theory is usually in the RARC and EOB text, not in the three-character reason code alone.
- Can I fix CO-96 by changing the CPT code?
- Only if the original code was factually wrong and the correct code is covered. Recoding solely to obtain payment for a non-covered service is a compliance problem. Fix documentation and coding accuracy first; do not “code to coverage.”
- Is CO-96 always billable to the patient?
- No. Group code CO is not PR. Some non-covered services are patient responsibility under plan rules; some are provider liability depending on notice, network, and state law. Confirm PR codes, estimates, and waivers before statementing.
- When is a CO-96 appeal worth it?
- When you have plan language or medical policy showing the service should be covered for this diagnosis and setting, plus clinical documentation. Pure benefit exclusions rarely overturn on appeal; spend labour using a dollar floor ([denials hub](/denials)).
Sources
- X12 Claim Adjustment Reason Codes (CARC) (opens in a new tab) — X12
- X12 Remittance Advice Remark Codes (RARC) (opens in a new tab) — X12
- CMS Medicare Claims Processing Manual (Pub. 100-04) (opens in a new tab) — Centers for Medicare & Medicaid Services
- CMS MLN006562 — Medicare Parts A & B Appeals Process (opens in a new tab) — Centers for Medicare & Medicaid Services
- Premier: claims adjudication costs providers $25.7 billion (opens in a new tab) — Premier Inc.
Last reviewed against published HFMA, CMS, MGMA, Premier, and related primary sources linked on this page on .
Every benchmark and formula on this page is sourced and dated above. Where a figure is a range, the range is the honest answer, not a hedge. If you think something here is wrong or out of date, tell us — corrections are logged and dated.