A cardiology practice owner asked us to explain why his collections were flat while his charges had grown 9 percent, and the answer turned on a contractual adjustment vs write-off distinction his reports did not make. The billing report showed adjustments up 14 percent. His office manager said that was normal: "adjustments are just the contract discounts." When we pulled the detail, about a fifth of the adjustment dollars were not contract discounts at all. They were timely filing losses, denials written off after one call, small balances cleared to avoid statements, and a growing pile of "administrative adjustments" with no explanation. All of it had been posted to a single code labeled "Insurance Adjustment."

That practice is not unusual. The difference between a contractual adjustment vs write-off is the difference between money you agreed not to collect and money you failed to collect, and a billing system that lumps them together hides the second inside the first. Contractual adjustments are expected, predictable and, if your fee schedules are loaded, verifiable. Write-offs are decisions, and each one deserves a reason code, an approval and a place on a report someone reads.

This article defines the two, proposes a short adjustment code list, shows the monthly report we build for the practices we support, and covers the compliance rules that make some discounts risky.

Key takeaways

  • A contractual adjustment is the difference between your charge and the payer's allowed amount under a contract or fee schedule (CARC CO-45 on the remit); it is not a loss, and it should reconcile to the loaded fee schedule.
  • A write-off is any other reduction of a balance you were entitled to collect: timely filing, non-covered without an ABN, unappealed denials, small balances, bad debt, discounts and errors; each is either a policy decision or a lost dollar, and both need to be visible.
  • Use a short list of adjustment codes (about a dozen) with approval thresholds, and report adjustments monthly by code, by payer and by user.
  • Discounts and waivers of patient responsibility are regulated; routine copay waivers, inconsistent professional courtesy and undocumented hardship discounts create compliance exposure, so write the policy and apply it the same way every time.

Contractual adjustment vs write-off: definitions that hold up

A glossary line for the physicians reading this. Your charge is the fee schedule amount you bill. The allowed amount is what the payer's contract says the service is worth; the payer pays its share of the allowed amount and the patient owes the rest. The contractual adjustment is charge minus allowed. If you bill $210 for a 99214 and the contract allows $128.60, the $81.40 difference is contractual. Nobody owes it. It is a bookkeeping entry that gets your gross charge down to the amount you actually agreed to accept.

Everything else that reduces a balance without a payment is a write-off, and the reason matters. Some write-offs are correct and expected: a small balance under a dollar or two, a service that Medicare never covers and the patient signed nothing for, a documented hardship discount under your written policy. Some are avoidable losses: a claim denied for timely filing, a denial nobody appealed, a claim rejected and never resubmitted, a balance the front desk "adjusted off" to end a conversation. The point of separate codes is to see which is which without pulling every account.

The adjustment code list we recommend

CodeUseApprovalWhat a spike means
Contractual (payer)Charge minus allowed on an in-network claim; auto-posted from CO-45AutomaticFee schedule loaded wrong, or payer underpaying; compare allowed to contract
SequestrationMedicare 2 percent reduction (CO-253)AutomaticShould track Medicare payments exactly
Timely filingCO-29 denials with no successful appealSupervisorRejection queue or held claims not being worked
Non-covered, no ABN or noticeMedicare or payer denial for a service the patient could have been made liable forSupervisorOrder-entry and ABN workflow failing
Denial write-off (unappealed or lost)Denials closed without payment, with the CARC recordedSupervisor, with CARCDenial management capacity or a payer policy change
Authorization write-offCO-197 and similar where no authorization existedSupervisorScheduling and authorization workflow
Small balanceBalances under a stated threshold (for example, $5)Automatic, threshold in policyThreshold set too high, or statements not going out
Bad debtPatient balances exhausted through the statement cycle and, if used, collectionsManagerFront-end collections or statement cycle problems
Financial hardshipDiscounts under the written hardship policy with documentation on fileManager, documentedPolicy drift; review applications
Prompt-pay or self-pay discountDiscounts under the published self-pay policyAutomatic if policy appliedFine if consistent; a problem if applied to insured patients
Professional courtesyDiscounts to colleagues or staff under written policyOwnerCompliance review if applied inconsistently or to referral sources
Administrative or posting correctionReversal of posting errors, duplicate charges, refunds nettedSupervisor with noteCharge entry or posting quality

Twelve codes is about right. Fewer than eight and the categories blur; more than twenty and posters guess. Every code except the automatic ones requires a note, and the note should say what was tried ("appealed 5/12, upheld 6/20, no second level available") not just "denied."

The monthly adjustment report

Every month, alongside charges, payments and AR, produce adjustments by code, with dollars and count, compared to the prior three months and the same month last year. Then break the non-contractual codes down by payer and by the user who posted them. Three questions come out of that page.

Is the contractual adjustment rate stable? Contractual adjustments as a percentage of charges should move only when your payer mix or fee schedule moves. If the rate rises with no change in either, allowed amounts are coming in below contract for someone, which is an underpayment problem, not an adjustment problem. Practices that have loaded their fee schedules can run a variance report to find it; practices that have not are trusting the payer.

What share of adjustments is avoidable loss? Add timely filing, non-covered without notice, denial write-offs and authorization write-offs, and divide by net revenue (payments plus patient collections). In our experience a well-run practice keeps this under 2 to 3 percent; above 5 percent there is a specific broken workflow, and the codes tell you which one. This number, more than any other, is what an RCM audit is looking for when it quantifies revenue leakage.

Who is posting what? A single user posting most of the denial write-offs or small-balance adjustments is either the designated person doing their job or the person clearing their queue the easy way. The report cannot tell you which; a ten-account sample can.

A worked example

A three-physician practice bills $310,000 in June. Contractual adjustments are $148,000, or 47.7 percent of charges, in line with prior months and consistent with a Medicare-heavy payer mix. Non-contractual adjustments total $14,200: timely filing $4,100, denial write-offs $5,600 (of which $3,900 carries CO-197), non-covered without ABN $1,300, small balance $600, bad debt $1,800, hardship $800. Net revenue for the month is $158,000. Avoidable loss (timely filing, denial write-offs, non-covered, authorization) is $11,000, or 7 percent of net revenue. The report points directly at two workflows: authorization before scheduling and the rejection queue. Fixing those two is worth more than any collections push, and the practice would never have seen it under a single "Insurance Adjustment" code.

The compliance side of discounts

Some write-offs are regulated. Routinely waiving Medicare copays and deductibles, other than under a documented, individualized financial hardship determination, has been treated by the OIG as potential inducement and can misstate your actual charge. Professional courtesy extended to physicians who refer to you is a risk area under the anti-kickback and Stark rules. Self-pay discounts must be structured so that your "charge" to insured patients remains your actual charge. Waiving patient balances for insured patients to avoid statements may violate your payer contracts, which usually require you to make reasonable collection efforts. None of this means you cannot offer discounts; it means the policy has to be written, applied consistently, documented per patient where it depends on circumstances, and reviewed by counsel. The adjustment code list above makes that consistency visible, which is the compliance benefit of doing the bookkeeping right.

Refunds are the other side. A credit balance created by an overpayment is not an adjustment; it is money owed to a payer or patient, and for Medicare it must be reported and returned within 60 days of identification. Do not let posters "adjust off" credit balances to clean up an account. Our medical billing service posts credits to a separate queue for exactly that reason.

Questions we hear

Our system only has three adjustment codes. Do we need to change systems?

No. Nearly every practice management system lets you add adjustment codes and require a reason. Build the list above, map the auto-posting for CO-45 and CO-253, and retire the catch-all code so nobody can use it. Retraining posters takes a week.

Should small balances be written off automatically?

Yes, at a low threshold set in policy, applied to all patients the same way, and reported monthly. If the small-balance total grows, the cause is usually statements not going out or copays not being collected at the visit, and the code shows you that before it becomes bad debt.

How far back should we recode old adjustments?

Do not. Start clean on the first of next month, run the new report for three months, and then compare. Recoding history is expensive and the pattern you need to see will show up in ninety days of correct data.

What to do this week

  1. Pull June adjustments by code and by user; if most dollars sit in one or two generic codes, sample twenty accounts from each and classify them by hand.
  2. Build the twelve-code list in your system, with approval levels and required notes, and disable the generic code for manual use.
  3. Confirm CO-45 and CO-253 auto-post to the contractual and sequestration codes and nothing else does.
  4. Put your self-pay, hardship, professional courtesy and small-balance policies in writing, apply them consistently and have counsel review them.
  5. Add the monthly adjustment report, with the avoidable-loss percentage, to the month-end package starting August 1.