Extract CAS segments from the 835 835 service line (Loop 2110) and claim level: CAS01 is the adjustment group code (CO = contractual, PR = patient responsibility, OA = other adjustment, PI = payer-initiated), CAS02 is the CARC (Claim Adjustment Reason Code), CAS03 is the adjustment dollar amount; a single CAS segment can carry up to three CARC/amount pairs
Look up each CARC in the current X12/CMS CARC code list (published by CMS and X12 jointly, updated quarterly); common actionable codes include 4 (late filing), 16 (claim lacks required information), 18 (duplicate), 97 (not covered — requires auth), 109 (claim not covered by this payer)
Read MOA and LQ/HI segments or the remittance remark code (N1 through NX prefix codes) in the 835 for RARC codes; RARC provides additional context on the reason for the CARC adjustment — look up in the RARC code list maintained by CMS
Classify denials by root cause using the CARC/RARC combination: coding denial (CARCs 4, 11, 16, 97) → clinical/coding team; eligibility denial (CARC 27, 109) → eligibility re-verification; duplicate (CARC 18) → claim deduplication review; PR codes → patient billing
For denials with a viable appeal path, generate an appeal packet with the original claim, supporting documentation, CARC/RARC explanation, and clinical notes; submit within the payer's appeal window (typically 60–180 days from the remittance date)
Track denial rates by CARC code over time in your analytics layer to identify systemic billing issues (e.g., consistent CARC 16 for a specific CPT code indicating a documentation gap)
Known gotchas
CARC and RARC code lists are updated quarterly; hardcoding code descriptions in your application creates staleness risk — load the current list from the CMS website or an API-accessible code set and refresh on each update cycle
CARC CO-45 (contractual adjustment) is expected on every paid claim where the billed amount exceeds the contracted rate and should not trigger a denial workflow — filter CO-45 before routing to your denial management queue
A single claim line can have multiple CAS segments with different group codes; summing only the first CAS per line will produce incorrect adjustment totals — iterate all CAS segments within each service line loop
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp