Understanding CARC and RARC Denial Codes
How Claim Adjustment Reason Codes (CARC) and Remittance Advice Remark Codes (RARC) work together on an 835, with common examples and what to do about each.
Every claim that comes back from a payer with less money than you billed carries an explanation, whether you asked for one or not. That explanation is written in two code sets: CARC and RARC. Learning to read them fast is the difference between a five-minute fix and a claim that sits in your AR bucket for a month.
What CARC and RARC actually are
CARC (Claim Adjustment Reason Code) answers one question: why was this amount adjusted? Every CARC is a financial code — it always ties to a dollar amount on the claim, whether that's a denial, a reduction, or money shifted to the patient's responsibility.
RARC (Remittance Advice Remark Code) answers a different question: what, specifically, does that adjustment mean here? RARCs add detail a CARC alone can't carry. A RARC is never itself a dollar amount — it's context.
They almost always show up together. A CARC without a RARC is common (some adjustments are self-explanatory); a RARC without a CARC never happens, because a remark code exists to clarify an adjustment, and adjustments are what CARCs are for.
Where you'll see them
Both code sets live on the 835 Electronic Remittance Advice — the ANSI X12 transaction a payer sends back for a processed claim — and on its human-readable twin, the paper or PDF Explanation of Benefits (EOB). In an 835, CARCs and RARCs sit in the CAS (Claim Adjustment Segment) and LQ (Remark Code) segments at the claim or service-line level. In an EOB, they show up as a short code next to a line item, usually with a legend at the bottom of the page translating each one.
If you're building or debugging an 835 parser, the pairing pattern to watch for is: a CAS segment carries a group code, a CARC, and a dollar amount; any related LQ segments immediately following it are the RARCs that explain that specific adjustment.
The group code prefix
Every CARC is paired with a two-letter group code that tells you who's responsible for the adjustment before you even look up what the code means:
- CO — Contractual Obligation. The provider agreed to this via their payer contract; it can't be billed to the patient.
- PR — Patient Responsibility. This amount legitimately shifts to the patient (deductible, coinsurance, copay).
- OA — Other Adjustment. Doesn't fit CO or PR — often coordination-of-benefits related.
- PI — Payer Initiated Reduction. The payer reduced payment for a reason not covered by the provider's contract.
- CR — Correction/Reversal. The payer is correcting a previous claim, not making a new determination.
That prefix alone tells you whether a code is worth appealing (CO, PI) or just needs to be billed forward (PR).
Common CARCs worth memorizing
A handful of codes account for most of what you'll actually see:
| Code | Group | Meaning |
|---|---|---|
PR-1 | PR | Deductible amount |
PR-2 | PR | Coinsurance amount |
PR-3 | PR | Copayment amount |
CO-16 | CO | Claim is missing required information (almost always paired with a RARC) |
OA-18 | OA | Exact duplicate claim or service line |
CO-45 | CO | Charge exceeds the fee schedule/contracted rate |
PR-96 | PR | Non-covered charge under the patient's plan |
CO-97 | CO | Payment already included in another service on the same claim (bundling) |
OA-109 | OA | Claim not covered by this payer — wrong payer or wrong plan |
CO-197 | CO | Required authorization or precertification wasn't obtained |
CO-16 and CO-197 are the two that generate the most rework, because they're rarely actionable on their own — you need the accompanying RARC to know what's actually missing. Notice 18, 96, and 109 aren't CO at all, even though it's easy to assume they are — always read the group code off the remittance itself rather than assuming from the number.
Common RARCs and what to do with them
RARCs come in three families based on their prefix — M codes, MA codes, and N codes — plus a type: supplemental (adds detail to a specific CARC) or alert (general information, not tied to one line item).
A few that pair constantly with the CARCs above:
M76— missing or invalid diagnosis code. Pairs withCO-16.M51— missing or invalid procedure code. Also pairs withCO-16.N115— this determination was made using a Local Coverage Determination (LCD); check the payer's coverage policy.MA01(alert) — a routine notice of appeal rights, not something to act on.
The practical rule: when you see CO-16, don't touch the claim until you've read the RARC next to it. The CARC tells you money was withheld for a documentation problem; the RARC tells you which field.
A worked example
Say a remittance line shows:
CO-97 + M15
Read left to right: CO-97 (contractual, bundled into another service) plus M15 (this service is a component of a more comprehensive procedure already paid). Translation: you billed two codes that this payer's edits treat as one — the second one won't get separately reimbursed no matter how many times you resubmit it. The fix isn't to appeal; it's to check whether the codes should've been billed together at all, or whether a modifier was needed to indicate they were genuinely separate and distinct.
Compare that to:
CO-16 + M76
Here the fix is mechanical: the diagnosis code is missing or invalid. Correct it and resubmit — no appeal needed, no clinical argument to make.
That's the whole skill: the CARC tells you the category of problem, the RARC tells you the specific one, and together they tell you whether you're looking at a data-entry fix, a bundling issue, or something worth actually appealing.
Look codes up as you work
Memorizing the handful above covers most of what crosses your desk, but the full CARC and RARC lists run into the hundreds between them, and they get revised several times a year. The CARC/RARC Lookup tool covers both sets with plain-English descriptions, common causes, and suggested fixes for CARCs, so you don't have to keep a cheat sheet taped to your monitor.
CARC and RARC codes are maintained by X12 (x12.org). Descriptions in this guide and in the lookup tool are original interpretations, not reproductions of X12's published text.