Bulk-enter charges
Outcome
Many charges entered against many members in a single grid pass, with live inline validation, modifier auto-injection, and pricing applied — so a clinician's day of session work becomes billable in minutes rather than the hour-per-row alternative.
Prerequisites
| Scope | What it lets you do |
|---|---|
billing.charge.read | View the bulk grid |
billing.charge.write | Create / edit charges |
The members you are billing exist with active coverage. Procedure codes and modifiers are part of the platform's reference data; payer- or program- specific overrides can be defined under 5.4 — Edit modifier rules.
When to use bulk entry vs. encounters
| Bulk entry | Encounters | |
|---|---|---|
| Source | Manual data entry | Imported from clinical EHR |
| Cadence | End-of-day batch | As clinicians document |
| Volume | 10–500 lines per session | Single visits |
| Validation | Live as you type | At save |
Bulk entry is the right tool when an EHR integration does not exist, when you are catching up after a downtime, or when a clinical team submits paper notes and a biller types them in.
The grid
/charges/bulk-entry. The page is a virtualized grid with these columns:
| Column | Notes |
|---|---|
| Member | Type-ahead search; matches MRN, last name, payer member ID. |
| DOS | Date of service; defaults to today; arrow keys jump days. |
| Code | Procedure code; type-ahead from code_set_procedure. |
| Modifiers | Up to 4; comma-separated; each validated against code_set_modifier. |
| Units | Numeric; default 1. |
| Diagnosis | ICD-10 codes; comma-separated; type-ahead. |
| Place of service | Numeric POS code; default from member's primary facility. |
| Provider | Rendering provider; defaults to your assignment. |
| Notes | Free text. |
| Status | Live status of validation. |
A green dot in Status means the row is ready; red means an error; amber means a warning that does not block.
Steps
Open
/charges/bulk-entry. The grid loads with a single empty row.Set the global defaults at the top — facility, default DOS, default provider — to avoid retyping them on every row.
Start typing in the Member column. Pick from the type-ahead. Tab through the cells; type-ahead and validation run on each.
Watch for inline issues:
Status Cause Fix Red — no active coverage Member has no payer policy on the DOS Check Coverage tab; add coverage if missing; otherwise the line is unbillable. Red — invalid modifier Modifier not on the master list Correct the typo. Amber — missing modifier injection A configured injection rule will add a modifier on save Confirm; tab past. Amber — auth required An auth is required for this code/program Stop and create the auth (3.3 — Manage authorizations) before saving the row. Save. The grid commits in batches of 50 rows in a single request. The platform:
- Runs the modifier injection rules per row.
- Prices each line via the active fee schedule.
- Runs pre-submit scrub at the charge level (the claim-level scrubs run later when you build the claim).
- Returns per-row status.
Saved rows turn green; rejected rows stay highlighted with the server's error in the Status column.
Send to billing. With everything green, the charges are status
VALIDATEDand ready for 2.1 — Build & submit a claim. The grid offers aBuild claimsshortcut that groups the saved charges by member + payer + filing type and creates the claims in one go.
Paste from spreadsheet
The grid accepts paste from CSV / Excel:
Click the first empty cell and paste. The platform parses the clipboard, infers columns from the headers, and fills the grid.
Review highlighted issues. Misaligned columns are flagged before save.
Save as above.
Validation
| Check | Expected |
|---|---|
| Saved rows turn green | Yes; their chargeId is in the row's metadata. |
| Status column updates inline | Yes — no full page reload. |
Build claims produces one claim per member + payer + filing type | Yes. |
| Each claim's pre-submit scrub is clean | Yes; if not, the issues panel surfaces what to fix. |
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Save returns "no fee schedule applies" | The contract's effective window does not include DOS, or no schedule attached | Fix the contract / schedule (5.2 — Manage fee schedules); save again. |
| Bulk paste mis-aligns columns | Header row missing or column order differs | Add a header row to the source spreadsheet matching the grid's columns. |
| Grid feels slow at large volume | Browser memory cap | Save in 200-row batches; the grid auto-flushes saved rows from memory. |
| Some rows save red with "auth required, but auth not on file" | Line needs an auth before billing | Open the linked auth-create dialog from the row menu. |