Skip to main content

Posting & thresholds

Outcome​

Each parsed CLP loop is matched to a claim with confidence above the posting threshold (or routed to manual review), CAS rows are split into CO/PR/PI/OA correctly, and the resulting receivable accurately reflects what the payer paid, what the patient owes, and what stays on the AR.

Prerequisites​

The 835 was parsed cleanly (6.1 — 835 inbound). The rcm-app posting flow ("Receivables / 835 Workspace" in the Tenant Manual) handles the human review side — this chapter focuses on the EDI-side matching, classification, and threshold logic.

Matching CLP → claim​

The match function inside the posting flow runs against four signals, in this order of trust:

TierConfidenceSource
High≥ 0.95CLP07 → claim.payer_claim_control_number (recorded from a prior 277CA or partial 835).
Mid0.85 – 0.94CLP01 → outbound CLM01.
Low0.60 – 0.84Demographics + service date + amount approximate match.
Unmatched< 0.60Nothing close enough.

The thresholds are configurable per tenant (see the tenant-side posting-flow documentation); the defaults work for most setups.

CAS classification​

Once matched, every CAS row routes per group code:

GroupRoutes toEffect
COProvider write-offReduces AR; cannot be billed to patient.
PRPatient ARBecomes patient liability (deductible, coinsurance, copay).
PIProvider write-offSame as CO operationally.
OAInformationalDoes not change AR; logged for analytics.
CRReversalTriggers the reversal handler (see 6.3 — COB chaining).

The CAS reason code (CARC) drives downstream behavior:

  • Specific patient-liability reasons (PR-1 deductible, PR-2 coinsurance, PR-3 copay) split into the patient AR with a liability category.
  • Specific contractual reasons (CO-45 charge exceeds fee schedule) attach to the receivable for variance reporting.
  • Denial-class reasons (CO-4, CO-16, CO-29, etc.) trigger denial records — see the rcm-app denials worklist.

Variances​

A variance is a line where the platform's expected payment differs from the posted amount:

Variance sourceDetection
Contracted rate vs. paidAMT*B6 (allowed) ≠ contract's expected allowed.
Patient liability mismatchPatient AR routed to deductible when expected to be coinsurance.
UnderpaymentSVC03 plus CAS amounts ≠ SVC02.

Variances do not block posting — the receivable closes regardless — but they appear on the variance report for follow-up.

Steps​

  1. Parsed 835 lands in the receivables workspace in rcm-app (/receivables/:id).

  2. The Auto-matched tab lists CLP loops that hit High confidence. The operator confirms; the platform posts.

  3. The Review tab lists Mid-confidence rows. The operator confirms or rejects each. Confirms post; rejects move to Unmatched.

  4. The Unmatched tab lists Low-confidence + Unmatched rows. The operator manually matches against an outbound claim, or accepts as unposted.

  5. The Exceptions tab lists variances. Operator resolves each (accept variance / contest payer / re-bid).

  6. Click Post. The platform applies all confirmed lines in a single transaction.

Threshold tuning​

The posting threshold is one of the few places the EDI side meaningfully overlaps with the tenant-side workflow:

ThresholdDefaultTighten whenLoosen when
High-confidence cutoff0.95Mismatched 277CA-recorded payer claim numbers showing upAlmost never.
Mid-confidence cutoff0.85Auto-confirmed lines turn out to be wrongMost lines fall to Review unnecessarily.
Low-confidence cutoff0.60Operators can't reliably distinguish matches from non-matches at low scoresOperator team is large enough to triage.

Thresholds are set tenant-wide; talk to the tenant admin before adjusting.

Validation​

CheckExpected
Auto-matched count + Review count + Unmatched count = total CLP rowsYes.
Sum of confirmed line postings + variances + unmatched = BPR02Yes — file balances by construction.
Each PR-class row creates a patient AR entryYes.
CAS-driven denials produce denial recordsYes.

Troubleshooting​

SymptomCauseFix
All rows fall to UnmatchedOutbound CLM01 was not stamped on the source claim, or CLP07 was never recorded from prior 277CAConfirm outbound claim build is writing CLM01 correctly; replay the prior 277CAs to record CLP07.
Post fails with transaction_abortedOne referenced claim was deleted between confirm and postReload the receivable; the orphan row surfaces; manually match or skip.
Variance report has no rows but operator suspects underpaymentVariance threshold set too looseThe variance threshold is on the rcm-core side; check with tenant admin.
Posting routes PR-1 to wrong patientCLP-level patient (NM1*QC) mis-matched the receivable's claimInspect the manual-match step; the operator may have matched to a claim for a different patient.

Next​

6.3 — COB chaining (2320 CAS / AMT*F2)