Get the sample weekly report

Denial code · group CO

CO-146: An ICD-10-CM code on the claim was not billable under the code set in force that day

Short answer

Denial code CO-146 means a diagnosis on the claim failed the payer's date check: the ICD-10-CM code was retired, not yet effective, or incomplete under the code set that applied on the date of service. Payers judge diagnoses by that date, not by the day you billed. Find the code that was valid then, confirm the note supports it, and send a replacement claim.

Look up other codes in the denial code library.

Last reviewed by the Remitwright billing team. Editorial policy

  • Group CO · Contractual obligation

Group CO means contractual obligation: the balance is written off, not billed to the patient. The number is the reason; the two-letter group says who carries the balance.

Remark codes that usually come with CO-146

M76
A diagnosis or condition code is missing from the claim or is not one the payer can accept
M81
The diagnosis needs more characters; the payer wants the most specific code available

Common causes

The October code set changed under you

CMS posts a new ICD-10-CM file each fiscal year. The FY 2027 codes apply to encounters from October 1, 2026 through September 30, 2027. A code that was billable in September may have been split into longer, more specific codes, and the old one stops working on the first of the month.

A new code used before it took effect

Late charge entry is the usual route. A coder working in October codes a September visit with a code that only exists from October 1, and the payer checks it against the September code set. CMS has also posted April updates in some years, which moves the risk to spring as well.

The code was cut short

Categories that need a fifth, sixth or seventh character, including the filler letter X that ICD-10-CM inserts to hold an empty position, are not billable without them. Injury codes that need an encounter character are the familiar case.

Stale favorites and printed superbills

The EHR favorites list, a paper superbill or a scrubber table that nobody refreshed keeps offering last year's codes long after the update.

A claim that straddles the update

Recurring services billed on one claim with dates both before and after October 1 need the code valid on each line's date. One diagnosis for every line will fail half of them.

How to fix it and resubmit

  1. 1

    Find the line and the date

    Check which diagnosis pointer the payer rejected and the service date on that line. On a multi-line claim, the same code can be valid on one date and invalid on another.

  2. 2

    Look the code up in the right year's file

    Use the code set in effect on the date of service, which is the rule CMS sets out with each fiscal year's files. If the code was expanded, pick the longer code that the documentation actually supports.

  3. 3

    Query the clinician when the note is thin

    If the record does not say enough to choose the more specific code, ask the provider for an addendum before you guess. A code chosen without support turns a date problem into a documentation problem.

  4. 4

    Send a replacement claim

    Replace the diagnosis on the affected lines and resubmit as a corrected claim. If the code was valid on that date and the payer had not loaded the update, call provider services with the CMS file reference instead.

How to prevent it

  • EHR favorites, superbills and scrubber code tables updated before October 1 every year, and again when an April file is posted
  • A scrubber edit that checks each diagnosis against the code set for the line's date of service, not the billing date
  • Charge lag kept short in late September so visits are coded under the code set that applied to them
  • Coder notes to clinicians when a common code is expanded, showing which detail the new codes need
Worked example · hypothetical

A favorites list that missed the fiscal year change

Suppose a neurology practice's favorites list carries a headache diagnosis that the October update replaced with several longer codes. Visits from the first week of October come back CO-146 with M81. The coder checks the new fiscal year file, sees the old code is gone, and finds that the neurologist's notes already describe the pattern the longer codes ask for. She updates the favorites list, recodes the October visits, and sends replacement claims. September visits keep the old code, because it was valid on those dates.

Official text: the X12 claim adjustment reason code list. The meaning above is our paraphrase for billers; the list is the authority.

Next step

The fix for CO-146 sits with medical coding.

See medical coding

FAQ

Questions about CO-146

How is CO-146 different from CO-11?

CO-11 says a valid diagnosis does not support the procedure. CO-146 says the diagnosis code itself was not valid on that date. The first is a medical logic problem; the second is a code set problem.

When does the ICD-10-CM code set change?

The annual update takes effect October 1. CMS's ICD-10 page also lists April files in some years, so check the page each spring and fall rather than assuming one change a year.

Do I code by the date of service or the date I bill?

By the date of service, or the discharge date for inpatient stays. A claim billed in November for an August visit uses the code set that was in force in August.

Can I add more diagnoses on the replacement claim?

Only what the record supports. The replacement fixes the invalid code; it is not a chance to add conditions the clinician did not document for that visit.

Next step

Seeing a lot of CO-146?

Tell us the payer and the volume. Three quick questions, no patient data, a written answer from a biller who works that queue.

  • Three questions, about two minutes
  • No patient data, no software to buy
  • A written reply from a biller, not a sales deck

What happens next

  1. You answer three questions

  2. A billing specialist reads them

  3. A written reply by email

Prefer email? sales@remitwright.com

Seeing a lot of CO-146?

See where claims are getting stuck. No patient data needed.

Step 1 of 3

What do you bill for?

A little about your volume
How many providers? (Medical practice)

Trips per month? (NEMT)

Active clients? (Home care / home health)

Orders per month? (DME)

How many clinicians? (Behavioral health / therapy)

Claims per month, roughly? (Something else)

What's the biggest problem right now?

Where should we send the review?

Add details (optional)

We work inside your system; this tells us which login to ask for.

Please don't include patient information in this form.

  • No patient data requested
  • No obligation
  • Reply in writing
Get a billing review
Billing review

Get a billing review

See where claims are getting stuck. No patient data needed.

Step 1 of 3

What do you bill for?

A little about your volume
How many providers? (Medical practice)

Trips per month? (NEMT)

Active clients? (Home care / home health)

Orders per month? (DME)

How many clinicians? (Behavioral health / therapy)

Claims per month, roughly? (Something else)

What's the biggest problem right now?

Where should we send the review?

Add details (optional)

We work inside your system; this tells us which login to ask for.

Please don't include patient information in this form.

  • No patient data requested
  • No obligation
  • Reply in writing

BAA signed before any access, a user you create, MFA on. Patient data stays in your systems. How access works