The Supa Journal
Behavioral Health

CO 45 denial code: the adjustment most billers waste time on

The CO 45 denial code is not really a denial. It is a contractual write-off. When it is correct, the rare cases worth investigating, and what not to appeal.

RCM Expert, Supa · August 27, 2026 · 8 min read
Countless soft bubbles of light, near identical but for the few that catch differently - the handful of CO 45 lines worth a second look among the thousands that are simply the contract working

By Kathryn Thompson, RCM Expert, Supa

TL;DR: The CO 45 denial code means your charge exceeded the contracted or allowable amount. In the large majority of cases it is correct, it is a contractual write-off, and there is nothing to appeal. The value is not in fighting it. It is in spotting the small percentage where the payer priced against the wrong fee schedule.

Key takeaways

  • X12 defines code 45 as a charge exceeding the fee schedule or contracted arrangement.
  • CO means Contractual Obligation, so the balance cannot be billed to the patient.
  • Most CO 45 lines are the system working correctly rather than failing.
  • The exception worth hunting: a payer applying an outdated or wrong fee schedule.
  • Track CO 45 as a pricing metric, not as a denial metric.

Open any AR aging report and CO 45 will be near the top by volume. That leads to a lot of practices to treat it as a denial problem and assign someone to work on it.

That assignment is usually a waste of a good biller.

What does the CO 45 denial code mean?

Code 45 is officially defined by X12 as "Charge exceeds fee schedule/maximum allowable or contracted/legislated fee arrangement," with the added note that the adjustment "cannot equal total service charge and must not duplicate prior payer adjustments" (X12).

The CO prefix is the part people skim past. In X12's group code set, CO stands for Contractual Obligation (X12). That single fact settles most questions about this code.

What is a group code? The two letter prefix tells you who absorbs the amount. CO means the provider absorbs it under contract. PR means the patient owes it. OA is everything else.

So a CO 45 line is the payer saying you billed $250, your contract allows $140, and the $110 difference is yours to write off. That is not a rejection of the service. It is the contract doing what you signed it to do.

The practical consequence is direct. A CO 45 balance cannot be billed to the patient. Some billing content muddles this by mixing CO 45 in with non covered services, where patient billing may be appropriate. Those are different situations with different group codes, and conflating them creates real compliance exposure.

When is CO 45 actually worth investigating?

When the allowed amount does not match your contract. That is the only question worth asking, and it is answerable in about two minutes if your fee schedules are accessible.

Four situations justify a closer look.

The payer priced against an outdated fee schedule. Contracts get renegotiated and payer systems do not always catch up. If your allowed amount reflects last year's rate, that is recoverable money and it is usually recoverable across many claims at once, not just the one in front of you.

Your own fee schedule is out of date. The mirror image, and more common. Charges set below the allowed amount mean you are leaving money on every claim, and CO 45 will never flag it because the adjustment simply gets smaller. Vendor guidance consistently lists outdated fee schedules among the top causes (MediBillMD).

The code or modifier was wrong. A mispriced service sometimes reflects a coding error rather than a pricing one, and the allowed amount is correct for the code you submitted rather than the service you delivered.

A pattern across one payer. One CO 45 tells you nothing. Forty of them on one payer, all landing below contract, tells you something worth a phone call.

Outside those four, the correct action is to post the adjustment and move on.

[Image: A side by side comparison of a billed charge, a contracted allowed amount, and the resulting write off, presented as a clean stacked bar with the write off portion picked out in accent color, editorial data visualization style - alt='CO 45 is the difference between the billed charge and the contracted allowed amount']

How should you measure CO 45 if it is not a denial?

As a pricing signal. Your CO 45 total is the gap between what you charge and what you have agreed to accept, and that number tells you two useful things.

If the gap is very wide, your charge master is set well above market and the number is mostly noise. If the gap is narrow or occasionally zero, your charges may be set too low, which means claims where the payer would have paid more are being capped by your own billed amount.

That second scenario is the expensive one and almost nobody watches for it. A payer will never pay more than you bill. If your fee for a service sits at $130 and the contracted allowable is $140, you lose $10 every single time, silently, with no code and no report flagging it.

The practical rule most billing teams settle on is to set charges at a consistent multiple above the highest contracted rate across your payers, then review annually. Our guide to revenue cycle management for behavioral health covers where this fits in the wider process.

What does this mean for your denial rate?

It means your denial rate is probably wrong, and probably flattering.

If CO 45 lines are counted as denials in your reporting, your denial rate is inflated by adjustments that were never denials. If they are excluded, the number is cleaner. Either way, the figure you report should be defined and consistent, because comparing it against benchmarks is meaningless otherwise.

For context on what a real denial rate looks like, KFF found that nearly 17% of in network claims were denied across ACA marketplace plans in 2021, with denial rates "ranging from 2% to 49%" across issuers (KFF). That spread is enormous, and part of it is definitional rather than real.

The honest position is that a denial rate is only comparable against itself over time unless you know exactly what the other party counted. Track your own trend, define your terms, and treat cross practice benchmarks with suspicion.

Where automation actually helps with CO 45

Not with appeals, because there is usually nothing to appeal. Automation helps by removing CO 45 from human attention entirely while catching the small fraction that deserves it. That is a filtering problem, and it works in three steps.

Step one is contract aware posting. When the expected allowed amount for each code and payer is known to the system, every CO 45 line can be checked against it as it posts. Lines matching the contract post automatically. Lines that do not get flagged.

Step two is pattern detection across claims. A single underpayment is invisible. Forty of them across one payer in a month is a contract issue worth escalating, and that pattern only becomes visible when something is looking across the whole remittance flow rather than claim by claim.

Step three is closing the loop on your own charges. The silent loss case, where your billed amount sits below the allowed amount, is detectable the moment allowed exceeds billed. That should generate an alert, because it will never generate a denial.

Supabill runs as an integrated set of behavioral health trained agents across the revenue cycle, and this is exactly the kind of high volume, low judgment work they are suited to. The system posts the expected adjustments and surfaces the exceptions, so your team sees the forty underpaid claims instead of the four thousand correct ones.

The honest limit: none of this recovers money that your contract does not entitle you to. If your rates are poor, automation makes that visible faster and does not fix it. Renegotiation is a human job and a slow one. What you get here is the evidence to walk into that conversation with, which is not nothing, but it is not a rate increase either.

Want to see which of your CO 45 lines are actually underpayments? Book a demo.

FAQ

Q: Can I bill the patient for a CO 45 amount?

A: No. CO means Contractual Obligation, so the adjustment is absorbed by the provider under the payer agreement. Billing it to the patient would breach most in network contracts, and it is a different situation from a non covered service where patient responsibility may apply.

Q: Is CO 45 worth appealing?

A: Usually not. The adjustment is generally correct and reflects your contracted rate. The exception is where the payer priced against the wrong or an outdated fee schedule, which is worth pursuing, especially when it appears across multiple claims.

Q: Why do I get so many CO 45 lines?

A: Because you bill above your contracted rates, which is standard practice. Every claim to a contracted payer generates a contractual adjustment. High volume is expected and is not by itself a sign of a problem.

Q: What is the difference between CO 45 and CO 97?

A: CO 45 is a pricing adjustment where the charge exceeded the allowable. CO 97 means the service was bundled into another service already adjudicated. One is about rate, the other is about whether the service is separately payable at all.

Q: Should CO 45 count toward my denial rate?

A: That is your definitional choice, but including it inflates the number with adjustments that were never denials. Whichever you choose, apply it consistently, and state the definition when comparing against any benchmark.

Q: How often should I review my fee schedule?

A: At least annually, and after any contract renegotiation. The specific risk to watch is a billed amount that has fallen below a contracted allowable, since that loses money on every claim without generating any code or alert.

RCM Expert, Supa

RCM expert at Supa. 20+ years building revenue cycle operations in healthcare; Adjunct Professor at Concordia University-St. Paul teaching healthcare MBA.

Keep reading

All articles
See it on your stack

Run this on your own practice.

Watch ambient agents handle your front desk, documentation, and billing — inside the tools you already use.

Book a demo