Skip to main content

Where charges come from

Outcome

You know which upstream sources feed the Charges worklist, what each one looks like in the UI, and which questions to ask when a charge looks wrong.

The shape of ingestion

There are four supported source types, all flowing into the same service.charge table:

SourceTypical shapeWhere it shows in the app
Push API (real-time)A POST from the source system per service eventCharges list — usually the freshest.
SFTP file feedNightly drop of CSV / X12 / fixed-width / HL7Charges list — same row shape as push, just batched.
HL7 v2 listenerTCP/MLLP feed of ADT / DFT messagesCharges list.
FHIR R4Encounter / ServiceRequest resources via pushCharges list.

What ingestion did to your charge

Each charge keeps a thread back to the inbound batch and the raw record:

Field on the charge detailMeaning
Source feedThe named feed (e.g. KipuEMR-prod, PointClickCare-CSV).
Ingestion batchThe inbound batch this charge came from.
Source record IDThe natural key the EMR used (so dedupe can find it next time).
Mapped atTimestamp of the mapping run.
Validation issuesAny pre-billing failures the validator raised.

Click Source record to see the raw fields the platform parsed. This is essential when a charge looks wrong and you suspect upstream data is the problem.

Your charge worklist

Open /charges. The default view filters to active statuses:

StatusWhat it meansYour move
RECEIVEDJust arrived; mapper hasn't run yetWait.
MAPPEDMapper ran cleanly; validator queuedWait.
NEEDS_FIXValidation failed on at least one ruleSee 2.3 — Fix validation issues.
VALIDATEDReady to billSee 2.2 — Charges worklist.
BILLEDA claim has consumed this chargeRead-only.
VOIDEDCancelled (by upstream or by you)Read-only.

A charge can move backward (e.g. BILLED → VALIDATED if you reverse the claim) — that's normal.

When upstream is the problem

A charge that looks structurally wrong (member ID off, date of service in the future, units = 0) is almost always an upstream issue. The order of fixes:

  1. Confirm the raw. Open the Source record tab on the charge. Does the wrong value live in the raw record? If yes — fix in the EMR, then let the next ingestion overwrite (the platform supports is_current upserts on natural-key collision).

  2. Confirm the mapping. If the raw is right but the charge is wrong, the mapping is. Tag the charge with mapping-suspect and route to the tenant admin (chapter 5 of the Tenant Manual).

  3. Override in-app — last resort. If neither upstream fix is possible in time (e.g. timely-filing pressure), Edit charge lets you correct the charge directly. The audit row stays. See 2.6 — Edit or correct a charge.

Validation

CheckExpected
Every charge carries a Source feedYes; if blank, the feed wasn't tagged in ingestion.
Source record opensYes; if not, the raw was purged (rare) or the user lacks audit.read.
NEEDS_FIX charges show issues inlineYes; the validator writes one issue per failing rule.
VOIDED charges cannot be re-billedCorrect. Re-ingest under a new natural key if the EMR voided in error.

Troubleshooting

SymptomCauseFix
New charges aren't showingFeed paused, batch failed, or your facility filter excludes themCheck /admin/ingestion/feeds (admin) for last-run status.
Same charge appears twiceNatural-key collision from upstreamOpen both — the duplicate carries is_current=false; only the current is billable.
Charge has no memberMember match failed in mapping (no MRN→member match)Tag and route; do not edit blindly.
Charge has wrong DOSUpstream sent itFix at source; let ingestion overwrite.

Where to next