Redress / Guides

Revenue cycle

Contractual adjustment in medical billing: what it is, who pays it and how to post it

A contractual adjustment is the part of your charge that a payer contract or a fee schedule says you can't collect: billed charge minus allowed amount. Under group code CO the provider absorbs it. It is correct only when the allowed amount matches what your contract says it should be. Any shortfall below that is an underpayment, even when the remittance labels it contractual.

Definition
Billed charge minus allowed amount, under a payer contract or a fee schedule set by law
Usual code
Reason code 45 with group code CO on the 835 (X12)
Who absorbs it
The provider under CO; the patient may owe it only under PR (CMS manual, ch. 22 §60.1)
When it's wrong
When the allowed amount is below your expected amount. That gap is an underpayment
Next step
Compare allowed with expected before posting, and post any shortfall to its own code

What a contractual adjustment is

No regulation defines the term. In practice it means the difference between what you billed and what the payer allowed, where a contract or a legislated fee schedule sets the allowed amount. The patient's share comes out of the allowed amount, and the payer pays the rest.

Illustrative numbers, not real rates.

Line itemAmount835 codeWho bears it
Billed charge$250.00
Contractual adjustment$110.00CO-45Provider
Allowed amount$140.00
Coinsurance$28.00PR-2Patient
Payer paid$112.00Payer

The adjustment is usually the largest number on the line, and on most A/R reports. That says more about your chargemaster than about the payer. Your billed charge is the starting point, so the higher you set charges relative to your contracted rates, the larger every contractual adjustment gets.

How it shows up on the 835

Every adjustment on a remittance pairs a group code with a claim adjustment reason code (CARC). The group code says who is liable: CO (contractual obligation), PR (patient responsibility), OA (other adjustment) or PI (payor initiated reduction) (X12 group codes). Medicare's manual adds that a group code must always accompany a CARC, and that its contractors may not omit them (CMS).

The contractual adjustment's reason code is 45: "Charge exceeds fee schedule/maximum allowable or contracted/legislated fee arrangement." X12 attaches two usage rules that affect posting (X12 CARC list):

For checking whether a particular CO-45 amount hides an underpayment, see the line-by-line CO-45 check.

Codes that get posted as contractual but aren't

Several other CARCs reduce a line under the CO group. Posting them to the contractual bucket hides what happened.

CARCX12 meaningWhat to check
59Processed based on multiple or concurrent procedure rulesRanking and percentage against your contract (CO-59)
97Included in the payment for another service already adjudicatedThe bundling edit and any modifier (CO-97)
131Claim specific negotiated discountThat a signed agreement for this claim exists
253Sequestration, reduction in federal paymentWhether this payer may apply it under your contract
29The time limit for filing has expiredProof of timely filing; otherwise an administrative write-off
197Precertification, authorization or notification absentWhether an authorization was obtained; otherwise an administrative write-off

Who pays it: CO vs PR

Under CO, the provider absorbs the amount. Medicare's manual says CO applies when "a contractual agreement between the payer and payee, or a regulatory requirement, resulted in an adjustment," and that "generally, these adjustments are considered a write off for the provider and are not billed to the patient." PR is for amounts that "may be billed to the patient or insured," typically deductible and copay (CMS manual, ch. 22 §60.1).

For Medicare Part B, the rule underneath is assignment. A supplier that accepts assignment agrees to accept the approved amount as the full charge and to collect from the beneficiary only the deductible, coinsurance and similar amounts (42 CFR 424.55(b)). A non-participating supplier that does not accept assignment may charge the beneficiary up to the limiting charge, 115 percent of the fee schedule amount for non-participating suppliers (42 CFR 414.48). That is where PR-45 appears on a Medicare remittance.

For commercial in-network claims, your provider agreement governs what you may collect from the patient beyond the PR amounts the payer reports. Out-of-network balance billing is limited by federal and state law and is outside this guide.

Contractual adjustment vs contract variance vs underpayment vs write-off

These four terms get used interchangeably, and on a busy posting day they often land on the same adjustment code, though each means something different.

TermWhat it isFormulaTypical 835 codesIs money owed?How to post
Contractual adjustmentCharge above the correct allowed amountBilled − expectedCO-45NoContractual adjustment code
Contract varianceDifference between what the payer allowed and what your contract saysAllowed − expectedHidden inside CO-45, 59, 97 or 131Yes, when below zeroVariance code, held open
UnderpaymentA payment below what the payer owedOwed − paidAny; often no code flags itYes, by the payerVariance code; appeal
Write-offMoney that was owed but given upBalance releasedCO-29, CO-197, or none for patient balancesIt was; you chose or were forced to stop collectingA code per type

Practices usually split write-offs into administrative (missed filing limits, missing authorizations), small balance, bad debt and charity care. Each deserves its own code, because only the first is a process problem you can fix.

The same CO-45 line can carry a correct contractual adjustment and an underpayment at once. The remittance can't tell you which; your expected amount can.

How to post it so underpayments stay visible

  1. Compare allowed with expected for each line before posting. The expected reimbursement guide covers how to calculate it by contract type.
  2. If they match, post the CO-45 amount as a contractual adjustment.
  3. If allowed is below expected, post billed minus expected as the contractual adjustment, and expected minus allowed to a separate variance code that stays open until it is appealed or resolved.

Illustrative numbers, not real rates. Take the line above, but suppose your contract sets the allowed amount at $150. The remittance still shows CO-45 for $110. You post $100 as contractual and $10 to variance. The patient's coinsurance follows the payer's PR amount on the remittance; if the variance is recovered, check whether the patient's share changes too.

Keep denials and timely-filing losses out of the contractual bucket. Those are preventable write-offs, and they need their own codes for reporting. If everything adjusted off is called contractual, the largest number on the A/R report is the one nobody looks at. It also flatters the net collection rate, which subtracts contractual adjustments from charges before dividing.

For a Medicare shortfall, the route back is a redetermination. For a commercial one, it is usually the payer's appeal or reconsideration process under your contract.

When your charge is below the fee schedule

A contractual adjustment only flags charges above the allowed amount. When your charge is lower, there is nothing to adjust, and nothing on the remittance tells you money was left behind. Under Medicare assignment the approved amount is "the lesser of the fee schedule amount and the actual charge" (42 CFR 424.55(b)(1)), so a charge set below the fee schedule is paid at the charge. Commercial contracts can contain a lesser-of clause as well, so check yours. A line with no CO-45 at all can be a sign that a charge needs updating.

Questions

Can a patient be billed for a contractual adjustment?

Not when the remittance shows it under group code CO. Medicare's manual says CO adjustments are generally a write-off for the provider and are not billed to the patient. Under group code PR, such as PR-45 on a non-participating Medicare claim billed up to the limiting charge, the patient may owe it.

What is the difference between a contractual adjustment and a write-off?

A contractual adjustment removes the part of a charge that a contract or fee schedule says you can't collect from anyone. A write-off gives up money someone did owe, for a reason such as a missed filing limit, a small balance, bad debt or charity care. They need separate adjustment codes so that preventable losses stay visible.

How do you calculate a contractual adjustment?

Subtract the allowed amount from the billed charge. A $250 charge with a $140 allowed amount carries a $110 contractual adjustment, before any deductible, coinsurance or copay is applied to the $140.

Can a contractual adjustment be appealed?

Only the part that shouldn't be there. If the allowed amount is below what your contract or the fee schedule says, the shortfall is an underpayment and can be appealed. The rest of the adjustment is correct and stays written off.

Every payment, checked against your contract

Redress is building AI agents that work the practice's side of the revenue cycle: they check each payment against what you're owed and appeal what comes back short, and a person signs every appeal. We're early, and we'd like to hear how your team handles this today.

Talk to a founder
Sources
  1. X12 claim adjustment group codes (CO, OA, PI, PR)
  2. X12 claim adjustment reason codes (45, 59, 97, 131, 253, 29, 197, 2)
  3. Medicare Claims Processing Manual, ch. 22, §60.1 group codes and §60.2 reason codes
  4. 42 CFR 424.55, payment to the supplier and assignment
  5. 42 CFR 414.48, limits on actual charges of nonparticipating suppliers

Last reviewed October 28, 2026. This guide is general information about payer payment rules, not legal advice. Your payer contract and provider manual control the details; check them before you file.