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:
| Tier | Confidence | Source |
|---|---|---|
| High | ≥ 0.95 | CLP07 → claim.payer_claim_control_number (recorded from a prior 277CA or partial 835). |
| Mid | 0.85 – 0.94 | CLP01 → outbound CLM01. |
| Low | 0.60 – 0.84 | Demographics + service date + amount approximate match. |
| Unmatched | < 0.60 | Nothing 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:
| Group | Routes to | Effect |
|---|---|---|
CO | Provider write-off | Reduces AR; cannot be billed to patient. |
PR | Patient AR | Becomes patient liability (deductible, coinsurance, copay). |
PI | Provider write-off | Same as CO operationally. |
OA | Informational | Does not change AR; logged for analytics. |
CR | Reversal | Triggers the reversal handler (see 6.3 — COB chaining). |
The CAS reason code (CARC) drives downstream behavior:
- Specific patient-liability reasons (
PR-1deductible,PR-2coinsurance,PR-3copay) split into the patient AR with a liability category. - Specific contractual reasons (
CO-45charge 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 source | Detection |
|---|---|
| Contracted rate vs. paid | AMT*B6 (allowed) ≠ contract's expected allowed. |
| Patient liability mismatch | Patient AR routed to deductible when expected to be coinsurance. |
| Underpayment | SVC03 plus CAS amounts ≠ SVC02. |
Variances do not block posting — the receivable closes regardless — but they appear on the variance report for follow-up.
Steps
Parsed 835 lands in the receivables workspace in rcm-app (
/receivables/:id).The Auto-matched tab lists CLP loops that hit High confidence. The operator confirms; the platform posts.
The Review tab lists Mid-confidence rows. The operator confirms or rejects each. Confirms post; rejects move to Unmatched.
The Unmatched tab lists Low-confidence + Unmatched rows. The operator manually matches against an outbound claim, or accepts as unposted.
The Exceptions tab lists variances. Operator resolves each (accept variance / contest payer / re-bid).
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:
| Threshold | Default | Tighten when | Loosen when |
|---|---|---|---|
| High-confidence cutoff | 0.95 | Mismatched 277CA-recorded payer claim numbers showing up | Almost never. |
| Mid-confidence cutoff | 0.85 | Auto-confirmed lines turn out to be wrong | Most lines fall to Review unnecessarily. |
| Low-confidence cutoff | 0.60 | Operators can't reliably distinguish matches from non-matches at low scores | Operator team is large enough to triage. |
Thresholds are set tenant-wide; talk to the tenant admin before adjusting.
Validation
| Check | Expected |
|---|---|
| Auto-matched count + Review count + Unmatched count = total CLP rows | Yes. |
Sum of confirmed line postings + variances + unmatched = BPR02 | Yes — file balances by construction. |
| Each PR-class row creates a patient AR entry | Yes. |
| CAS-driven denials produce denial records | Yes. |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| All rows fall to Unmatched | Outbound CLM01 was not stamped on the source claim, or CLP07 was never recorded from prior 277CA | Confirm outbound claim build is writing CLM01 correctly; replay the prior 277CAs to record CLP07. |
Post fails with transaction_aborted | One referenced claim was deleted between confirm and post | Reload the receivable; the orphan row surfaces; manually match or skip. |
| Variance report has no rows but operator suspects underpayment | Variance threshold set too loose | The variance threshold is on the rcm-core side; check with tenant admin. |
| Posting routes PR-1 to wrong patient | CLP-level patient (NM1*QC) mis-matched the receivable's claim | Inspect the manual-match step; the operator may have matched to a claim for a different patient. |