Billing operations
Work the money day to day: how the pipeline fits together, the Billing Command Center workspace, the Billing Monitor, the pre-visit readiness queue, claims, payment posting, patient balances and statements, memberships, and the APCM program.
Billing operations
Work the money day to day: how the pipeline fits together, the Billing Command Center workspace, the Billing Monitor, the pre-visit readiness queue, claims, payment posting, patient balances and statements, memberships, and the APCM program.
How billing works end-to-end
Before working the individual tabs, it helps to see the whole pipeline. Hero EMR is built so that money follows the chart on its own: every hand-off below happens automatically, and the system only asks for a person when it hits something it can’t fix itself.
- A visit is signed. Billing starts the moment the clinician signs and closes the encounter (see Sign & close) — there is no separate “send to billing” step.
- Charges are priced. The visit’s E/M and CPT codes become charges, priced by your layered billing setup — organization defaults, service overrides, negotiated rates, and per-patient exceptions.
- A claim is built and checked. For insured visits Hero EMR assembles the claim and runs readiness checks, so coding, demographic, and policy problems surface as fix before send issues in your queue instead of as payer rejections weeks later.
- Claims batch to the clearinghouse. Ready claims go to the clearinghouse (Office Ally) as 837P batches. The clearinghouse answers with acknowledgements — a 999 for the file and a per-claim 277CA verdict — confirming each claim actually arrived and was accepted for processing.
- The payer adjudicates — and the money posts itself. The payer decides what it pays, what it writes off, and what the patient owes, then sends back an electronic remittance (an 835 / ERA file). Hero EMR ingests it automatically and posts the payments and contractual write-offs to each claim.
- What’s left becomes patient responsibility. Only after adjudication does the remainder — copay, coinsurance, deductible — move onto the patient’s balance, where statements and collections take over. Patients are never billed amounts insurance is still deciding.
Open and navigate the Billing Command Center
Day-to-day money work happens in the Billing Command Center — one workspace for pre-visit readiness, claims, payment posting, patient balances, and recurring-revenue programs. The header shows your organization name and the active payment-model label (Insurance, Pure Cash, DPC, Hybrid Insurance + Cash, or Not Set), and the whole workspace adapts to that model and to each user’s permissions — so two staff members can legitimately see different tabs.
-
Open the workspace.
Staff whose permission profile includes any billing permission get a dedicated
Billingbutton in the top toolbar — and staff with only billing permissions land here directly after login. Admins reach the same page from theAdmintoolbar menu →Billing. Other parts of Hero EMR deep-link in too: the calendar’s appointment window can jump straight to a visit’s billing records, opening the Claims Pipeline focused on that encounter (see the calendar). -
Learn the sidebar groups.
Operations—Dashboard(the Billing Monitor, the pipeline-health view covered in Monitor billing health),Pre-visit(the upcoming-visit readiness worklist — see Visit readiness),Claims Pipeline,Payments,Patient AR, andReports, which offersQuick Reportswith date-range and group-by controls, aGenerate Reportbutton, and one-clickCSV/Excel/PDFexport.IDR— a narrow out-of-network dispute workflow under the No Surprises Act — appears here only if your practice enables it underAdditional Features.Programs— theAPCMprogram, covered in APCM billing; it likewise appears only when enabled.Configuration—Payment Model,Collections & Fees,Service Menu,Subscriptions,Charge Fees,Negotiated Rates,Claim Submission,Billing Identity,Auto Modifiers, andSimulator. This is the setup material covered in Billing setup — exceptSubscriptions, the day-to-day membership workflow documented in Memberships. If you switch tabs with unsavedCollections & Feesedits, anUnsaved changesdialog asks before discarding (Keep editing/Discard).
-
Understand why tabs differ per person.
Tab visibility follows the payment model first — Pure Cash and DPC practices don’t see
Claims PipelineorNegotiated Ratesby default — and is then filtered by each staff member’s billing permissions (assigned in staff permission profiles). A staff member with no matching permission seesNo billing tools are available for this staff profile.Admins can reveal every tab with the sidebar footer toggleShow all tools/Use model defaults.
Show all tools is admin-only and remembered per browser, so it doesn’t follow you across machines.
Monitor billing health (the Billing Monitor)
The Dashboard tab is the Billing Monitor — one live picture of the organization’s billing pipeline over a window you pick (7d / 30d / 90d, plus Refresh). Instead of hopping between tabs to ask is billing healthy?, you read one strip left to right and click whatever looks wrong.
-
Read the lifecycle strip.
Eight linked stages mirror the end-to-end pipeline:
Signed→Charges→Claims→Submitted→Acknowledged→Adjudicated→Posted→Patient balance, each with its count or dollars for the window. Every stage is clickable and jumps to the tab that works it — the claim stages open the Claims Pipeline, the money stages open Payments or Patient AR. - Work the exception chips. Chips appear under a stage only when something there needs attention, colored by severity and stamped with the age of the oldest problem (oldest Nd). A clean strip means a clean pipeline — there is nothing to dismiss. Each chip deep-links to the tab where you fix it; the table below shows what can surface where.
-
Scan the Billing Inbox rollup.
The
Billing Inboxpanel summarizes the alert rail without leaving the workspace: anN activebadge, one chip per alert type and severity (for example charge ar drift 17), and the newest alerts with timestamps.Open billing inboxjumps to the main Inbox’sBillingfolder (see Inbox queues), and the same active count shows as a red badge on theDashboardtab in the sidebar — visible from anywhere in the workspace. -
Read the money row.
Three cards along the bottom:
Insurance AR (awaiting payer)— submitted claims awaiting the payer, aged0-14/15-30/31+ days;Patient ARwith its aging buckets; andCollected in windowsplit into insurance and patient collections, with a footer showing ERA ingestion health — how many remittance runs landed in the window, by source and status, and when the last one ran. -
Expand the Revenue Overview for trends.
The classic collapsible
Revenue Overview(titled Collections Overview for pure-cash and Membership Overview for DPC practices) now sits collapsed at the bottom of the tab, with period buttons from7 daystoYear to date, summary cards such asInsurance BilledandOutstanding AR, aClaim Status Pipelinechart, and anAR Agingbreakdown.
| Stage | Exception chips that can appear |
|---|---|
Signed | Unbilled insured — insured visits signed but never billed, including ones whose claim was deleted or that carry custom fees; Self-pay review — self-pay visits left with an open balance. |
Claims | Readiness blocked — claims failing pre-submission checks; Duplicate live claims — two live claims covering the same visit. |
Submitted | Rejected unworked; Batch failures; Voids unconfirmed; Voided, payer-live — a claim you voided that the payer still shows as active. |
Acknowledged | Stale in-flight — no acknowledgement 14 days after submission, or no adjudication 25 days after acknowledgement; Missing 277CA acks. |
Adjudicated | Denials unworked; Unposted ERAs; Orphan/reversal ERAs — remittances that match no claim or take money back; Filed outside EMR. |
Patient balance | Charge/AR drift — bookkeeping drift between charges and the patient ledger; Stuck payments — payment attempts that never completed. |
Behind the monitor, automated checks sweep the whole pipeline nightly — unbilled insured visits, self-pay balances, stale in-flight claims, claim-integrity problems (duplicates, void confirmations, orphan charges, bookkeeping drift), payment-posting problems, and statement, refund, and batch failures — and file each finding as a billing-inbox alert. The chips and the rollup are two views of that same alert rail.
Billing Inbox rollup, and the money row along the bottom.Dashboard sidebar tab counts the alerts still active, so a quiet badge genuinely means a healthy pipeline.
Billing folder with charge and error details plus Chart and Patient AR jump buttons — see Inbox queues.
Work the pre-visit billing readiness queue
The Pre-visit tab is the Upcoming Visit Readiness worklist — every scheduled visit in the next 14 days (by default), built to catch eligibility and insurance problems before the patient arrives. It used to lead the Dashboard tab; it now has its own sidebar tab, unchanged in behavior, so the Dashboard can be the Billing Monitor. The header shows the date range plus Filters, CSV, and Refresh buttons.
-
Scan the chip strip.
Summary chips count
Upcoming,Missing elig.,Stale elig.,COB missing,Open problems, andIn progress, plus payer-class chips forMedicare,Medicaid,Private, andUnknown.Filtersnarrows byStart date,End date,Payer search(Aetna, BCBS…),Provider,Visit type,Payer class, and eligibility status (Any eligibility). -
Run eligibility checks.
Each row’s
Eligibility checkaction queues a live eligibility verification with the payer (via Office Ally) for the patient’s primary policy — you’ll see Eligibility check queued. Rows without an active primary policy are rejected with an error. Checks run in the background, so results don’t appear instantly;Refreshafter a few minutes. -
Flag what needs a human.
Flag billing problemopens a dialog asking “What needs human resolution before this visit?” withReason,Priority, andNotesfields; flagged visits later show aResolve problemaction. Both actions require billing AR permission (tooltip:Requires billing AR permission). -
Open the detail drawer.
Clicking a row opens a drawer with
Visit & patient,Eligibility,Insurance policies,Coordination of benefits,Work items,Billing messages, andBilling notes— notes are visible to billing staff only.
Pre-visit tab — the same worklist, chips, and detail drawer as before, just moved out of the Dashboard.Pre-visit tab; the Dashboard is now the Billing Monitor. Nothing else changed — the chips, filters, eligibility checks, and detail drawer all work exactly as before.
Review charges and run the claims pipeline
Charges created when a visit is signed and closed (see Charges & E/M) flow into the Claims Pipeline, which moves them from review through submission to resolution. The tab has four views — with clickable summary stats (needs review, ready, active batches, follow-up, stuck 25+ days) that jump you to the matching slice.
-
Review new charges.
Ready to Submitsplits intoNeeds Review— charges carrying issue badges such as coding or demographic problems — andReady to Send. Fix the issue, then useMark readyon the charge’s work item in the Action Center. -
Create a batch.
In
Ready to Send, tick charges (orSelect all) and pick theClaim submission channel:Office Ally SFTP,Availity SFTP, orManual portal— unconfigured channels show- setup required. ClickCreate Batchfor an integrated channel, orCreate Claim Filefor manual (“Creates a downloadable 837P file for external portal upload.”). -
Track what’s in flight.
The
In Flightview lists batches with per-batch actions:Download 837P, submit to the channel,Mark manual portal upload complete, andCheck acknowledgements— TA1/999 acknowledgements show as Received or Pending in the claim detail. Expanding a batch shows a per-claim 277CA roster: every claim in the batch with anAccepted,Rejected, orAwaiting 277CAbadge, the payer’s status message, and aFixlink that jumps straight to that claim’s Action Center item — a legend decodes the codes (277CA ack codes: A1/A2 accepted · A3-A8 rejected (A4 = not found)). A claim moves throughDraft,Ready,Submitted,Acknowledged, andIn Process, then resolves toPaid,Denied,Partial,Pended,Appealed, orClosed. Claims with no activity for 25+ days raise an amber banner with aReview oldest stuck claimsfilter. -
Work the Action Center.
The
Action Centeris a smart-sorted worklist across six lanes (table below). The lane cards across the top show each lane’s count, dollar total, and the age of its oldest item (oldest Nd) — so a lane that’s quietly aging stands out at a glance — and each claim row carries a readiness badge (Ready, orN issues — fix before send) telling you whether it’s safe to resend before you even open it. Search bySearch patient, claim #, payer, code…, sort bySmart sort/Newest update/Highest dollars, and narrow withMy items,Include snoozed, orGroup by lane. Selected claims take bulkSnooze 7d/Flag; each item also offersFlag,Note,Assign me,Snooze,Mark ready(charges), andMark uploaded(manual batches). -
Resolve a claim.
Expanding a claim shows
Exact Problems(denial and rejection issues with codes, financial impact, and appeal deadlines — denial codes are decoded into plain language by a glossary the server builds from your payers’ actual responses, e.g. CO-16: “Claim is missing information or has invalid information.”; codes it can’t decode still appear with their raw code rather than being dropped),Codes(editable diagnoses and per-line CPT/modifier edits with save-and-resubmit),Financials,Submission, and aManual Submission PackagewithShow Raw 837P/Copy raw 837P/Download raw 837P. Denied claims offerFile Appeal,Correct & Resubmit, andWrite Off; aRegenerateaction rebuilds the claim from the patient’s current insurance after a coverage correction.
| Lane | What lands there |
|---|---|
Denied / underpaid | Claims the payer denied or paid below the expected amount. |
Rejected | Claims that came back rejected and need correction before resubmission. |
Pended | Claims the payer is holding in a pended status. |
Fix & submit | Charges with review issues to fix and mark ready. |
Awaiting manual upload | Manual-portal claim files waiting to be uploaded and marked complete. |
Follow-ups due | Claims whose follow-up date has arrived. |
2 issues — fix before send.Write Off is hidden entirely without the sensitive-billing permission. Assign staff permission profiles to match who does what.
Post ERAs, manual payments & refunds
The Payments tab is headed Payment Posting, with Manual Entry, Upload ERA 835, and Refresh buttons across the top. It’s where insurance remittances and hand-keyed payments get applied to claims — and where refunds are issued.
-
Upload an ERA.
Upload ERA 835accepts .835, .edi, and .txt files, then parses and auto-matches the remittances. The result message reports what happened — for example “3/5 claims posted (4 payments, 2 adjustments).” — with unmatched claims left staged for review rather than blocking the post. -
Post queued remittances by payer check.
Electronically received remittances wait in
Unposted Remittances (N), grouped by payer check — the 835 trace number. Each check group shows the check total, the unposted amount, and the posted/other variance, so a check whose money doesn’t add up stands out before you post; expand a group for its per-claim rows (Claim, Billed, Paid, Patient Resp, Status). Rows markedReady to posttakePost; reversals and takebacks instead carry an amberNeeds review (reversal/takeback)badge with the reason, and theirPostbutton stays disabled until you resolve the claim state. -
Enter a manual payment.
Manual Entryopens theManual Payment Entryform:Claim #(required),Payment Type(Insurance Payment,Patient - Cash,Patient - Card,Patient - ACH),Payer,Check #,Amount(required),Payment Date, andNote— thenPost Payment. TheClaim #field is a live search picker — type a couple of characters of the patient, claim number, or payer and pick the claim from the results; no more pasting exact identifiers. -
Reconcile the edges.
Two collapsible panels keep the odd cases honest.
External / filed outside EMR (N)lists remittance and status references that match no claim in Hero EMR — typically claims filed directly at the clearinghouse portal (Office Ally references likeC###P##) — with source, payer, service date, and amounts, so money arriving for them is tracked instead of vanishing.Recent ERA Ingestion Runsshows one row per 835 file processed by the pollers or a manual upload — received time, source, status, and matched / posted / unmatched counts — your proof that remittances are actually flowing in. -
Audit and refund.
Recent Payment Activitylists the latest 200 payments with Date, Patient / Payer, Type (ERA-835, Insurance, Cash, Card, ACH), Billing Entity, Amount (with any Refunded sub-line), Claims, and Status (Posted / Pending). Refundable payments show aRefundaction that opens theIssue Refundmodal — remaining refundable balance,Refund amount, andRefund reason, confirmed withRefund Payment. Card refunds flow back through Stripe automatically.
Unposted Remittances queue — grouped by payer check with a check-total variance — up top, Recent Payment Activity below with per-row Refund actions.Manage patient balances, statements & collections
The Patient AR tab opens the AR Workspace, which summarizes total outstanding (for example $1,601.51 across 10 patients) with Filters and Refresh buttons and a Search by patient name or MRN… box; practices with multiple billing entities also get a Billing entity switcher. Billing-inbox alerts about a specific patient deep-link straight here with that patient already filtered, so you land on the account in question rather than the whole roster. A toggle flips between two views:
Aging — who owes what
- One row per patient: Balance (with Copay / Coins / Ded / Credit / Held breakdowns), Last Statement, Last Payment, and an aging badge —
Current,30-60 Days,61-90 Days,90+ Days. - Status filters include
Current,Past Due,Payment Plan,Credit Balance, andCollections Warning;Aging FiltersaddsMin Balance,Max Balance, andAging Bucket. - Row actions:
Statement,Plan(beta),Timeline, andCollections— plus a checkbox per row for bulk statement sends.
Day Sheet — one day’s money
- The front-desk view for a single date:
Previous Day/Today/Next Dayplus weekday quick-pick chips, with filters for visit status,Provider,Location, andOnly issues. - Each visit row shows cash
Owed/Paid, credit and held-credit lines, the pre-visit collection state (e.g. Optional prepay or Collection due amounts), claims owed/paid, membership status, and issue flags. - Row actions:
Statement,Plan(beta),Fees,Activity, andCollections.
-
Send a statement.
Statementopens theStatement Preview— practice and patient addresses, line items with Charges / Insurance / You Owe columns, andTOTAL AMOUNT DUE:at the bottom. Deliver it withPrintorEmail. -
Send statements in bulk.
In the
Agingview, tick the checkbox on each row you want and clickSend Statements (N)to email them all at once. The result reports per patient — for example Sent 12, failed 2 with the failing names — and the failed patients stay selected so you can fix the issue (say, a missing billing email) and retry without double-sending anyone who already got theirs. -
Open the billing timeline.
The
Timelinerow action opens theBilling Timelinedrawer: the patient’s outstanding balance and available credit up top, then every billing event in one chronological view — charges from their visits, claims, payments, refunds, and statements. It’s the fastest way to answer “what happened with this patient’s money?” without hopping between tabs. -
Offer a payment plan (beta).
Plan— badgedBetain the UI — opensCreate Payment Planwith a frequency choice and an installment preview before you commit. -
Review fees and payment activity.
On the Day Sheet,
Feesopens theFee Reviewmodal listing no-show and late-cancellation fees generated by your visit policies, with a permission-gatedWaive Feebutton that requires a waive reason.Activityopens thePayment Activitymodal — the receipts and credits hub: receipt numbers, amounts, refunded amounts, payment methods, aStatement history(delivery method and status per statement), andIssue Refund,Hold Credit,Apply Held Credit, andRelease Held Creditactions (all require the sensitive-billing permission). Available credits auto-apply to future balances; held credits stay off the balance until you apply or release them. -
Escalate to collections.
Collectionsappears once a patient carries $100 or more in the90+ Daysbucket. It asks you to confirm sending the patient to collections, then moves the account into the collections workflow.
Aging view — balances, aging badges, and per-patient Statement and Plan (beta) actions.Plan action is explicitly badged Beta — expect the workflow to evolve, and double-check installment schedules before promising them to patients.
Collections & Fees policies from Billing setup; the patient-side experience is covered in Portal payments.
Run membership & subscription billing
The Subscriptions tab — “Manage recurring membership plans and patient billing.” — is the home of recurring revenue, and the primary billing workflow for DPC practices. All money movement runs through your connected Stripe account, so complete Stripe Connect onboarding first.
-
Turn on subscriptions.
The
Subscription Settingscard gates everything: anEnable subscriptionstoggle,Allow patient self-cancelfor portal self-service, and a cancellation-timing choice ofAt end of billing periodorImmediately. If Stripe Connect isn’t active you’ll see: “Stripe Connect is not active. Plans cannot be published until Stripe is configured in Admin > External Providers > Stripe.” -
Build your plans.
Under
Membership Plans,New Planopens the plan form —Plan name,Amount,Currency, anEverybilling-interval selector, and an optional trial. Plan cards support edit, publish/unpublish, and archive. Editing a published plan’s price, cadence, or trial shows a versioning warning: existing members keep the price they accepted, and the new version applies only to new enrollments. -
Enroll members.
The
Member Roster(“Monitor active subscriptions and resolve billing issues.”) lists Member, Plan, Status, Renews, Billing, and Actions, with aSearch by name or planbox plus status and plan filters. To enroll, enter a Patient ID, choose a plan, and copy theEnrollment link— the patient completes checkout in the patient portal (see Portal payments). -
Manage each member.
Per-member actions:
Detailsexpands anInvoice timelinewith per-invoice status and hosted Stripe invoice links;Cancelopens theCancel membershipmodal with a proration/access preview, a reason selector (Patient requested,Payment issue,Plan fit,Staff review,Other), and a typed confirmation;Resumeundoes a scheduled period-end cancellation;Collectretries the open invoice immediately (enabled only while the latest invoice is open); andPayment linkcopies a hosted payment link for the patient. -
Work the recovery queue.
The
Payment recovery queuehighlights members with failed invoices; rows flagPayment recovery needed,Cancels at period end,Plan no longer offered, andSnapshot needs staff review, alongside Stripe sync health. Staff with the access-override permission can useRecord overrideto grant temporary access while billing is being fixed — care continues, the invoice gets chased.
Membership Health chart — active paying members, net and at-risk MRR, trials, past-due and grace-period counts, scheduled cancellations, and top churn reason — and the Membership Report quick report exports the roster, snapshots, invoices, and cancellation reasons (see the Billing Monitor).
Bill the APCM program
APCM (Advanced Primary Care Management) is an opt-in module: the tab is absent until an admin enables it under Additional Features, and it shows only for users with billing dashboard or AR permission. Once on, it manages the full monthly cycle — enrollment, consent, care plans, and G-code billing — across four sub-tabs:
-
Watch the dashboard.
The
Dashboardsub-tab shows tier counts —Enrolled,G0556,G0557,G0558— plusMonthly Revenue, anAlertscard, and anUpcoming Generationcard with a month picker andPreview Generation/Generate Nowbuttons. -
Enroll patients.
Enrollmentshas three views:Enrolled (N),Pending review (N), andEligible (N). From Eligible, select patients and clickEnroll selected (N); from Pending review, bulkApprove (N)orReject (N). Each enrolled row shows Tier,Chronic conditions, Last appt,Coordinating provider, Status, andConsentbadges, with aManagelink to the enrollment detail. An auto-enrollment settings card can scan for eligible patients automatically or on demand (Scan now); the Eligible table showsEst. tierandEst. / morevenue. -
Capture consent.
Patient consent is a formal e-signed agreement. The
Consentbadge on each enrollment reflects pending vs. obtained consent (with method and date), and the signed consent PDF files to the patient’s media tab. -
Generate and track billing.
Generate Now(orPreview Generationfirst) creates the month’s APCM billing events. TheBilling Historysub-tab lists them by month with Patient, Code, Amount, Status, and Generated columns and aRefreshbutton. Generated events flow into the normal claims pipeline as G-code charges. -
Keep care plans current.
The
Care Planssub-tab manages each enrollment’s plan —Goalswith+ Add goal,Interventionswith+ Add intervention, andSave Care Plan— and surfaces aMissing Care Planslist, since care-plan documentation supports the billed codes.
Upcoming Generation card that creates the month’s billing events.Need help? Email support@heroemr.com.