Skip to main content

The billing pipeline

Outcome

You understand the path a single charge takes from your EMR all the way to a posted, paid (or written-off) line. Every later chapter assumes this picture.

The big diagram

Stage-by-stage

1. Ingestion (upstream of you)

Your EMR (or another source — push API, SFTP file feed, HL7 v2 listener) delivers an inbound batch. The platform parses it against the configured mapping, validates it, and writes the result as service.charge rows. You see the result on /charges. The how of ingestion is the Tenant Admin's job; you only need to know what arrived and why anything failed.

Where to lookWhat it tells you
/charges?status=NEEDS_FIXValidation failed; you have to repair upstream or correct in-app.
/charges?status=VALIDATEDReady to bill.
/admin/ingestion/feeds/:id/artifactsThe most recent inbound batch — admins see this; you usually don't.

See 2.1 — Where charges come from for the upstream picture.

2. Charge prep

Before a charge is billable, the platform has to know:

  • Active coverage for the member on the date of service. Eligibility cache may need a refresh — see 2.4 — Confirm eligibility.
  • Active authorization if the program requires one. If the auth is missing, you can attach an existing one or request a new one — see 2.5 — Attach or request auth.
  • Validated rate. The rate-resolver picks the highest-priority applicable rate (contract → fee schedule → state default).

The Charges page surfaces these checks as inline issues. A charge that fails any of them sits at NEEDS_FIX until you (or the clinical team) resolves it.

3. Build

Selecting validated charges and clicking Build claim creates a CREATED claim and runs the scrubber:

Scrubber stageJob
Modifier injectionAdds modifiers per modifier_injection_rule (e.g. HQ for groups, 95 for telehealth).
Validation rulesPre-submit checks (auth required, modifier valid, bundle conflicts, etc.) per the PRE_SUBMIT_VALIDATE rule set.
BundlingCCI / MUE compaction.
PricingApplies contracted fee schedule + any group / per-diem / institutional bands.

If anything fails the claim stays CREATED with an issue list. Fix and re-validate; the platform re-runs the scrubber idempotently.

4. Submit

A clean CREATED claim accepts Submit. The platform:

  • Routes to the right trading partner per the routing rules.
  • Renders 837P or 837I based on filing type.
  • Hands the file to the transport (SFTP / API / direct).
  • Promotes the claim to BUILTSUBMITTED once transport confirms.

5. Acknowledgment

Two acks come back:

DocWhenEffect
999Within minutes of the file arrivingConfirms the file parsed.
277CAHours laterConfirms the payer accepted (or rejected) the claim.

A clean 277CA flips the claim to ACCEPTED. A rejection generates an issue with the payer's reason; you fix and rebuild.

6. Adjudication & 835

The payer adjudicates — sometimes minutes, sometimes weeks. The result arrives as an 835 (electronic remittance advice). The receivable lands at /receivables/:id with six tabs: Auto-matched, Review, Unmatched, Exceptions, Adjustments, Trace.

You walk those tabs (chapter 4), then Post. Posting:

  • Updates each claim's balance.
  • Records remittance_adjustment rows (CARC / RARC).
  • Routes patient liability (PR-1/2/3) to the patient AR.
  • Auto-builds secondary / tertiary claims if COB applies.
  • Emits denial rows for any DENIED lines, which appear on the worklist.

7. Denials → auto-correction → re-bill

A denial flows to the /denials worklist. The auto-correction engine has a registry of handlers keyed by CARC (CO-4, CO-16, CO-29, CO-18, CO-97, CO-197, etc.). It runs automatically; you review the result on the Auto-correction tab.

Engine outcomeYour move
SUCCESSNone — the rebill is in flight.
FAILED / SKIPPEDManually decide: appeal, rebill, write off, or route back.
Not yet attemptedWait, or trigger by hand.

8. AR management & timely filing

Anything outstanding lives on /ar/aging. You sort by age, by payer, by days-in-AR. The timely-filing watch (/ar/timely-filing) shows claims approaching their payer-specific filing deadline; the dashboard alert escalates as the window narrows.

9. Patient billing

Lines tagged PR-1/2/3 and any unbilled patient balance after secondary post route to patient AR. Statements (electronic + paper) generate on a configurable cadence.

Where each stage lives in this manual

StageChapter
Ingestion + charge prep2. From EMR to Claim
Build, submit, ack, COB3. Claim Lifecycle
ERA posting4. Receivables
Denials + appeals5. Denials
Aging, timely filing6. AR
Patient AR7. Patient Billing
KPIs8. Reporting

Where to next