- CO-45 (“charge exceeds fee schedule/maximum allowable or contracted/legislated fee arrangement”) is usually a contractual adjustment, not a denial — the payer pays its allowed amount and writes off the difference.
- Because the group code is CO (contractual obligation), the adjusted amount can never be balance-billed to the patient; only PR-coded amounts are patient responsibility.
- Routine CO-45 is healthy — most practices deliberately set charges above their highest contracted rate — but the adjustment can hide real problems: stale chargemaster rates, the wrong fee schedule loaded, or systematic underpayment.
- The only reliable defense is comparing every ERA allowed amount against the contracted rate you loaded, line by line, with variance reporting.
- Appeals are rare for CO-45 and only justified when the payer applied the wrong fee schedule, contract version, or network status.
- A quarterly fee-schedule review — contracts, chargemaster, and billing-system rate tables — prevents most recurring CO-45 surprises.

No adjustment code appears on more remittance lines than the co-45 denial code, and none is more misunderstood. CARC 45 fires whenever the billed charge is higher than the payer’s fee schedule, maximum allowable, or contracted rate — which, for an in-network practice with sensibly set charges, is every single claim. That makes CO-45 the one “denial” you usually should not fight. The catch: because teams learn to post it on autopilot, CO-45 is also where loaded-rate errors and payer underpayments hide in plain sight. This guide separates the routine write-off from the revenue leak, with the math, the detection workflow, and the review checklist.
CO-45 Decoded: Adjustment First, Denial Rarely
Every remittance adjustment carries a group code plus a reason code. Reason code 45 states the charge exceeded the fee schedule or contracted arrangement; the group code tells you who absorbs the difference:
| Group code | Meaning | Who absorbs it |
|---|---|---|
| CO — Contractual Obligation | Difference between charge and contracted/fee-schedule rate | Provider write-off; cannot be billed to the patient |
| PR — Patient Responsibility | Deductible (PR-1), coinsurance (PR-2), copay (PR-3) | Patient |
| OA — Other Adjustment | Neither contractual nor patient liability (context-specific) | Varies — investigate |
| PI — Payer-Initiated Reduction | Payer reduction not supported by the contract | Often disputable — review |
So CO-45 means: paid, at the contracted rate, with the excess written off. The same 45 under PR — as with some out-of-network plans — shifts that excess to the patient instead, which is why posting teams must read the group code, not just the number. For the full taxonomy, see our CARC and RARC guide.
When CO-45 Is Normal — and When It Is a Red Flag
Most practices intentionally set chargemaster prices above their highest contracted rate so no payer is ever billed less than it would have allowed. Under that strategy, a CO-45 on every line is evidence the system is working. The adjustment becomes a problem in four situations:
- Stale chargemaster. If charges have not been reviewed in years, some may now sit below contracted rates — and payers generally pay the lesser of charge or allowed, so every such claim silently forfeits money with no CO-45 warning at all.
- Wrong fee schedule loaded. The billing system carries an old contract year, the wrong locality, or another payer’s rates, so posted CO-45 amounts look “expected” when the payer is actually allowing less than the current contract requires.
- Systematic underpayment. The payer applies an outdated or incorrect fee schedule on its side. Industry analyses regularly find a meaningful share of claims paid below contract; without variance checks, the shortfall just disappears into the CO-45 bucket.
- Network-status surprises. A claim processed out-of-network — lapsed credentialing, wrong TIN/NPI combination — produces unusual CO-45/PR patterns and larger patient balances than the contract intends.
Worked Example: Reading a CO-45 Line (Illustrative)
An in-network practice bills 99213 at $150. The contracted allowed amount is $92, and the patient has met the deductible on a plan with 20% coinsurance:
| EOB element | Amount | Code |
|---|---|---|
| Billed charge | $150.00 | — |
| Allowed amount | $92.00 | — |
| Contractual adjustment | $58.00 | CO-45 (write-off) |
| Payer payment (80% of allowed) | $73.60 | — |
| Patient coinsurance (20%) | $18.40 | PR-2 (bill patient) |
Total accounted for: $58.00 + $73.60 + $18.40 = $150.00. The $58 is posted as a contractual write-off and the practice may bill the patient only $18.40. Now the red-flag version: suppose the current contract actually allows $98 for 99213. The ERA still balances perfectly — CO-45 of $58 instead of $52 — and nothing looks wrong on the remit. The only way to catch the $6-per-visit underpayment is comparing the ERA’s $92 against the $98 loaded from the contract. At 4,000 such visits a year, that invisible $6 is $24,000 (illustrative).
Underpayment Detection: A 6-Step Workflow
- Load contracts as data. Enter every payer’s current fee schedule — by CPT/HCPCS, contract year, and locality — into the billing system as expected-allowed amounts, not just charge amounts.
- Compare ERA allowed vs expected allowed automatically on every posted line, not a sample. The comparison is allowed-to-expected; billed charges are irrelevant to this test.
- Set a variance threshold. Flag lines where |actual − expected| exceeds a tolerance (for example $1 or 2%) to filter rounding noise from real discrepancies.
- Work variances as a queue. Group by payer and code. One-off blips are posting errors; the same code short-paid by the same payer across many claims is a fee-schedule dispute.
- Dispute per the contract. Send the payer a project-claim listing with the contract citation and request reprocessing; most agreements have a defined underpayment/dispute clause with its own deadline.
- Track recovery and root cause. Record what the payer corrected — payer-side loading error, contract-interpretation gap, or your own wrong expected rate — and fix the source so next quarter’s variance report is quieter.
This is the same discipline that drives clean-claim and first-pass metrics: submission quality controls denials, and posting vigilance controls payment integrity. Our clean-claim guide covers the front end of that pipeline.
CO-45 Cause → Fix Reference
| Pattern you see | Likely cause | Fix |
|---|---|---|
| Consistent CO-45 on every line, allowed matches contract | Normal charge-above-allowed billing | None — post and move on |
| Allowed amounts lower than contracted rates | Payer applied wrong/outdated fee schedule | Variance report → underpayment dispute with contract citation |
| No CO-45 on some codes at all | Charge set at or below the allowed amount | Raise chargemaster price above highest contracted rate |
| CO-45 plus unusually large PR amounts | Claim processed out-of-network | Verify credentialing, TIN/NPI, and network status; request reprocessing |
| CO-45 amounts changed suddenly on one payer | New contract year or amended rates took effect | Load the new fee schedule; verify against the amendment |
| CO-45 with zero payment | Often paired with another CARC doing the real denying | Read the full code string; work the controlling denial first |
When to Appeal (Rarely) vs When to Adjust
Adjust when the allowed amount matches your verified contract rate — that is the bargain of network participation, and appealing it wastes appeal capacity you need for real denials.
Dispute or appeal only when you can attach evidence the payer applied the wrong basis: the fee-schedule exhibit or amendment showing a higher rate, proof of in-network status for the date of service, or the payer’s own published fee schedule for the locality. Frame it as a request for reprocessing under the contract, cite the specific provision, and batch identical lines into one project claim rather than appealing one at a time. Note that timely-dispute clauses for underpayments are often shorter than denial-appeal windows — check the contract, not just payer appeal policy.
Fee-Schedule Review Checklist (Quarterly)
- Current fee schedule loaded for every contracted payer, correct contract year and locality
- Chargemaster reviewed so every charge sits above the highest contracted allowed amount
- Expected-allowed amounts populated for your top 25 codes by volume, minimum
- Variance report run and worked — every line where ERA allowed ≠ expected allowed
- Payer amendments and annual rate updates logged with effective dates
- Out-of-network CO-45/PR patterns reviewed against credentialing status — lapses show up here first (see our credentialing services)
- Write-off posting codes audited: contractual (CO-45) kept separate from avoidable write-offs so leakage stays visible in reporting
Quick Answers
What does the CO-45 denial code mean? CO-45 means the billed charge exceeds the payer’s fee schedule, maximum allowable, or contracted rate. The payer pays its allowed amount and the difference is a contractual adjustment — usually a routine write-off, not a refusal to pay.
Is CO-45 patient responsibility? No. The CO group code marks the amount as a contractual obligation the provider must write off. Only amounts coded PR — deductible, coinsurance, copay — may be billed to the patient.
How do I fix recurring CO-45 on the same codes? Usually nothing needs fixing — it recurs because your charge exceeds the contracted rate by design. Verify the allowed amount matches your current contract; if it does not, update the loaded fee schedule or dispute the underpayment.
Can I appeal a CO-45 adjustment? Only when the payer applied the wrong fee schedule, contract version, or network status — and you can document the correct rate. Correct contractual adjustments are not appealable.
Why does CO-45 appear even when coding is perfect? Because it is a pricing code, not a coding-error code. It reflects the gap between your charge and the allowed amount and appears on cleanly coded, correctly paid claims every day.
Related Codes and Guides
CO-45 rarely travels alone: PR-1/PR-2/PR-3 define what the patient owes on the same line, CO-16 flags claims rejected for missing information before pricing even happens, and CO-97 marks bundled services. Reading the full adjustment string — and keeping contractual write-offs separate from avoidable ones in your revenue cycle reporting — is what turns remittance posting from data entry into payment integrity. Structured denial management closes the loop on the codes that actually are denials.
Frequently asked questions
In the vast majority of cases it is a contractual write-off: the payer paid its allowed amount and adjusted off the difference between that and your billed charge. It only functions as a problem when the allowed amount is lower than your contract requires, or when it appears alongside another code that denied the line outright.
No. The CO group code designates a contractual obligation between provider and payer, and network contracts prohibit shifting it to the patient. Patients may only be billed amounts the remit codes as PR — deductible, coinsurance, or copay — on that same line.
Compare the ERA's allowed amount — not the adjustment amount — against the contracted rate for that code, payer, and contract year. If actual allowed is below expected allowed beyond a small tolerance, you have a variance worth disputing, even though the remit itself balances perfectly.
Usually because your billed charge is at or below the payer's allowed amount, which means you are leaving money on the table — payers generally pay the lesser of charge or allowed. Review the chargemaster and set charges above your highest contracted rate.
Yes. Medicare uses CARC 45 whenever billed charges exceed the Medicare Physician Fee Schedule amount for the code, locality, and setting. For participating providers the difference is written off; limiting-charge rules govern the small non-participating exception.
