Provider Manual · Part V

Billing setup

Configure how charges are priced and applied, layer by layer: organization defaults, service-level overrides, per-patient exceptions, the code prices and payer rates insurance claims bill, and the simulator that previews the result.

7 sections~36 min read8 screenshots
V
Part V

Billing setup

Configure how charges are priced and applied, layer by layer: organization defaults, service-level overrides, per-patient exceptions, the code prices and payer rates insurance claims bill, and the simulator that previews the result.

5.1Overview

Find billing configuration and learn the three layers

All billing configuration lives in the Billing Command Center (Admin > Billing). The left sidebar groups screens into Operations (day-to-day work), Programs, and Configuration (setup). Everything in this part lives under Configuration, and the cash price and collection rules resolve through the same three-layer hierarchy. Insurance claims are priced separately, from your code prices and payer rates (§5.4b).

  1. Open Admin > Billing. The Command Center opens on the Dashboard; when you come back to it in the same browser tab, it reopens the page you were on. Confirm the practice name and payment model in the header (for example, Dr. Romero's Practice · Insurance) — the payment model decides which configuration tabs appear. Other ways in are described in §5.7.
  2. Find the Configuration group in the sidebar. It holds Payment Model, Collections & Fees, Service Menu, CPT List Prices, Negotiated Rates, Claim Submission, Billing Identity, Rules & Overrides, and Simulator. Subscriptions (memberships) sits under Programs, next to APCM and, when your practice turns them on, RPM and Maternity.
  3. Learn the three layers. Collections & Fees sets the organization default; the Service Menu adds per-service overrides; a patient’s Custom Billing Rules add per-patient exceptions. Each layer only changes what it explicitly sets — anything left on Use organization default inherits from the layer above.
  4. Know what the payment model hides. Insurance, Hybrid Insurance + Cash, and Not Set show every tab. Pure Cash hides Claims Pipeline, Negotiated Rates, and Rules & Overrides; DPC also hides CPT List Prices. Billing Identity shows in every model, because superbills print its NPI, tax ID, and address. When the model hides a tool you are allowed to use, the sidebar footer offers Show all tools (see §5.7).
  5. Switch the payment model with the preview. Choosing a new model on Payment Model opens “Switch to DPC?” (or the model you picked) — “Review what changes before you switch.” While it reads Checking what changes… nothing can be saved. For DPC it lists, as they apply: the billing-type rules it turns off (they are kept, so you can turn them back on in Collections & Fees), whether a membership plan is published yet (until one is, patients can’t book membership-covered visits online; staff can book them with a recorded override unless staff membership exceptions are off), how many upcoming visits without charges it re-prices (visits that already have charges keep the terms they were booked with), patient cash rates that no longer apply, and “Existing payments and claims are kept.” Confirm with Switch to DPC. If the preview can’t load, the switch stays disabled with Retry. Switching away from DPC says “Upcoming visits keep the terms they were booked with.” Switching into DPC or Pure Cash while patient-responsibility billing is on (§5.2) adds “Turns off automatic patient-responsibility collection (it follows insurance claims): no new estimate pre-charges and no charges after an insurer pays. Balances already billed and payment reminders continue.” The banner after a switch sums it up — for example “Switched to DPC. Turned off automatic patient-responsibility collection. Re-priced 2 upcoming visits.”
Billing Command Center with the Configuration group in the left sidebar and the Collections and Fees live summary showing payment model, default collection, billing-type rules, missed appointments, outstanding balance, and saved card
The Billing Command Center sidebar. The Configuration group is where billing setup happens; the live summary recaps the organization's current posture.
Screen updated since this picture: the sidebar now reads CPT List Prices (was Charge Fees) and Rules & Overrides (was Auto Modifiers), and Subscriptions moved from Configuration to Programs.

The Configuration tabs

  • Payment Model — Insurance, Pure Cash, DPC, or Hybrid Insurance + Cash; decides which tabs apply.
  • Collections & Fees — organization-wide collection, fee, guard, statement, and reminder defaults.
  • Service Menu — per-service pricing and collection overrides.
  • CPT List Prices — your practice’s price for each CPT or HCPCS code, used by insurance claims without a payer rate and by cash visits without a visit price (§5.4b).
  • Negotiated Rates — each payer’s contract rates, plus the rates Hero learns from that payer’s payments; claims and patient cost estimates use them first (§5.4b).
  • Claim Submission — how claims are sent (the route card), claim-file channels, and drug NDC defaults.
  • Billing Identity — each clinician’s billing NPI, tax ID, and address for claims and superbills; filter by Needs setup and show or hide inactive clinicians.
  • Rules & Overrides — billing code rules that adjust codes, modifiers, units, or place of service automatically, plus any legacy auto modifiers, each for all clinicians or one.
  • Simulator — a full-lifecycle dry run of a visit from booking through payer response.

The three layers

  • Organization default — Collections & Fees. The baseline for every visit and patient.
  • Service override — Service Menu. Per provider + visit type.
  • Patient exception — Custom Billing Rules. Per individual patient.
  • Most specific wins — a patient rate beats a service price, which beats the org default.
Why the layering matters: set the organization default once so the whole practice behaves consistently, then override only the handful of services or patients that genuinely differ. You rarely need to touch the lower layers.
5.2Org defaults

Set organization billing defaults in Collections & Fees

Collections & Fees is the organization-wide baseline — the rules applied to every visit and every patient unless a service or patient overrides them. A Live summary across the top recaps the current posture (payment model, default collection, billing-type rules, missed-appointment fees, outstanding-balance guard, saved card) so you can see the effect of your changes at a glance.

  1. Default pre-visit collection. Collect a payment for the visit? (Yes / No), and if yes, What do you want to collect? — Copay only (use the eligibility copay when available) or a Fixed deposit. Turn on Use different rules per insurance or billing type? to vary by payer — for example, require a deposit from Cash Pay patients while collecting only copays from insured ones, with cash-pay upfront options of No upfront, Full cash price, Fixed deposit, Percent of price, or Office review. Turning that on also reveals a No-gate / no-charge insurance types checkbox grid — ticked billing types bypass organization-level visit collection, saved-card gating, and visit collection charges entirely (Service Menu overrides still apply). In a DPC practice this card is replaced by What to collect · Membership — “Set by the DPC payment model. Standard visits need an active membership at booking. Services set to Cash only in the Service Menu are billed as cash, and patients can book them without a membership.” — with Change payment model and Open Subscriptions, plus a warning line while no membership plan is bookable online. Other models read “Membership-covered visits come with the DPC payment model.”
  2. Saved card & autobilling. Require a saved payment method to book? (Yes / No), and Charge saved cards before visits? — Off, Simulate, or Live — with Provider readiness, a lead time (hours), retry count and backoff, and a failure action (Staff review or Mark unpaid). These controls always show, but automatic charging needs a saved card: while Require a saved payment method to book? is No they are disabled with “Turn on Require a saved payment method to book? to charge saved cards automatically.”, and picking No while charging is on warns “Automatic charging turns off too.”
  3. Patient responsibility billing. Automatically collect patient responsibility? turns on automatic collection of an insured patient's deductible, coinsurance, and copay from their eligibility (271) data. Turning it on opens an Enable patient-responsibility billing? confirmation that counts how many of your active insurers have a negotiated contract and names the ones that don't. Then choose When to collect — After adjudication (card on file, charge the real cost once the payer responds; recommended) or Estimate up front, which adds How much to pre-charge (Copay only or Full estimate) and an over-collection choice (Credit + manual; Auto-refund is shown but not yet available) — plus an Eligibility freshness window in days. After adjudication also offers Simulate post-adjudication collection only (record the amount; do not charge the card). An estimate only ever replaces the pre-visit collection of a visit you bill to the patient’s insurance: it never applies to a membership-covered or free visit, to a service set to Cash only in the Service Menu (billed as cash to everyone and collected by that service’s own policy), or to any visit in a DPC or Pure Cash practice. Because this billing follows insurance claims, a DPC or Pure Cash practice doesn’t see this block while it is off (unless Show all tools is on). A DPC or Pure Cash practice that still has it on keeps seeing it, and while the model hides the block the amber note “Your payment model (DPC) doesn’t bill insurance. Turn this off unless you still bill insurance for some patients.” appears — with Estimate up front it adds “Estimate up front never pre-charges anyone in this model.”
  4. Missed appointment policy. Late cancellation: a Late-cancellation window — “Cancelling less than this long before the visit counts as late and gets the fee below. Earlier cancellations are free.” — and a Late-cancellation fee of No fee, Fixed $, or Forfeit deposit. No-show: a fee of No fee, Fixed $, or Forfeit deposit (keep the deposit paid for the visit instead of adding a fee; the patient disclosure then reads “No-show forfeits the deposit · Missing the appointment forfeits any collected deposit.”). Cancellation fees apply before the visit; no-show fees apply after the appointment time passes. The same card holds No-show handling — Manual (staff mark missed visits no-show) or Automatic, with a Timing preset, a Minutes after grace value, and a toggle for whether telehealth visits are included. The Live summary reflects the choice as Auto… or Manual no-showing. Staff can mark a visit a no-show from the calendar’s right-click menu (Mark as No-Show) on its day and for 7 practice-calendar days after; the dialog shows the no-show policy this visit was booked under (“This visit was booked with a $50.00 no-show fee.”, or, for a forfeit, No-show policy: the deposit is kept). Older visits are resolved with Cancel Appointment instead.
  5. Refunds after a cancellation. Choose what happens to money the patient already paid when a visit is cancelled and the policy says it goes back: Staff approves each refund (Refunds wait in Billing → Payments) or Refund automatically (Card payments made in Hero go back to the card). “Cash, check and outside-terminal card payments always wait for staff.” Until the practice chooses, Hero’s default applies (staff approval, unless your Hero environment turns automatic refunds on). Only a billing manager or administrator can change it. The Cancel Appointment dialog then tells staff what will happen — for example “$20.00 goes back to the card automatically.” or “$20.00 waits for staff approval in Billing → Payments.”, or Deposit kept when the policy forfeits it. Fees are kept out of the money still on file for the visit, net of anything refunded earlier: the dialog’s Refund & deposit figures (Paid on file, Refund) already subtract earlier refunds, and only the part of a fee that money doesn’t cover becomes a new fee charge. Once the visit’s refund completes, its invoice reads Paid with an Appointment balance released line, and the balance no longer shows in Patient AR.
  6. Outstanding balance & scheduling. Decide whether an unpaid balance blocks new appointments: Off, Any balance, Threshold (block above $X), or Threshold + age (also weigh how old the balance is). An optional payment-plan exception lets enrolled patients keep scheduling.
  7. What patients see. A live preview of the exact booking and check-in messaging your settings produce — useful for confirming the patient-facing wording before you save.
  8. Insurance & routing options. Collect patient share only applies the collection rules to the patient's portion (copay / coinsurance) rather than the full billed amount. The card can also show an Allow online fallback for cash-only offices toggle — when Stripe is ready and the default collection requires a deposit, or whenever the toggle is already on. In a DPC or Pure Cash practice the card is hidden unless Show all tools is on or one of its settings is still in effect; in that last case it reads “Your payment model (DPC) doesn’t bill insurance. This is shown because a setting in it is still on.” Those two models’ What patients see preview no longer lists Insurance claims are not the default upfront path.
  9. Claims processing defaults. (Insurance-style payment models.) Organization-wide claim defaults — Accepts assignment and Participating provider — applied to professional claims; set here, not on physician profiles.
  10. Statements & Payment Reminders. Statement mode decides what happens to automatic statements: Off, Email, Print (office mails), or Email + print — “Hero never mails paper. With Print, automatic statements are only marked as queued for your office — to print one, open the patient’s Statement in Patient AR and download a current PDF.” Statement due date reads “Statements are due [30] days after the statement date (0 = due on receipt).” (0–90 days). Payment reminders are emailed on the Reminder days after the patient’s share is owed (default 0, 3, 7, 14, 30; the chip for day 0 reads When owed) — day 0 is when the patient’s share becomes owed: the due date for self-pay charges, or when the payer’s decision is posted.
  11. Validate and save. One save bar stays pinned to the bottom of the page and covers everything on it, statements and reminders included. With nothing pending it reads All changes saved · Policy v{n} · Last saved … beside Validate policy; once you edit, it reads Unsaved changes with Discard, Validate policy, and Save changes. Saving reports “Changes saved.”; if only the statements part fails you see “Collection settings saved, but Statements & Payment Reminders were not. See the message in that card.” Validating checks the combination for conflicts before you commit (Blocking errors, Warnings, or “Policy validation passed — no issues found.”). Switching to another Billing tab with unsaved edits asks before discarding them.

When the payment model hides sections of this page (for example in a Pure Cash or DPC practice) and you haven’t chosen to show all tools, a banner reads “Some sections are hidden in the {model} billing model.” with a Show all tools button and the note “Saved to your account.”

What patient-responsibility auto-billing depends on follows the timing you choose. After adjudication charges the patient’s real share from the card on file once the payer’s remittance posts; it needs an authorized saved card, but it runs whatever Charge saved cards before visits is set to, and it charges what the remittance leaves the patient, so no negotiated contract is needed. Estimate up front is collected by the pre-visit auto-charge, so it only charges when Charge saved cards before visits is Live, and only when the estimate can be priced from a negotiated contract for that payer — otherwise the patient falls back to normal collection. QMB, Medicaid, and Medicare patients are always excluded.
The middle of Collections & Fees, scrolled past Default pre-visit collection: the tail of the billing type rules with an Add billing type rule button, the Saved card & autobilling question Require a saved payment method to book with No selected, Patient responsibility billing with Auto-bill patient responsibility from eligibility set to No, the grey note pointing at Service Menu for per-service overrides, and the top of the Missed Appointment Policy card with its Late cancellation and No-show columns
Collections & Fees no longer fits one screen. This frame runs from saved-card and autobilling rules through patient-responsibility billing to the start of the missed-appointment policy; Default pre-visit collection sits off-frame above. The grey note in the middle is the handoff to the Service Menu for per-service overrides.
Collections and Fees lower half showing outstanding balance and scheduling options, the what-patients-see preview, insurance and routing options with collect patient share only, and claims processing defaults for accepts assignment and participating provider
The outstanding-balance scheduling guard, the patient-facing preview, and insurance/claims defaults.
Screen updated since these pictures: the amber Unsaved changes banner and the Validate Policy footer are now one save bar pinned to the bottom (Discard · Validate policy · Save changes); the cancellation field reads Late-cancellation window; the no-show fee adds Forfeit deposit, followed by the new Refunds after a cancellation choice; and the auto-charge controls always show, disabled with their reason when no saved card is required.
This is the floor, not the ceiling: whatever you set here applies everywhere until a service or patient says otherwise. The on-screen note — “Need to override these rules for specific services? Configure visit-type pricing and collection in Service Menu” — is the handoff to §5.3.
5.3Service overrides

Override pricing and rules per service in the Service Menu

The Service Menu lists every service — a provider paired with a visit type — alongside the patient-facing price and collection rule. Any service can override the organization defaults from Collections & Fees; leave a field on Use organization default to inherit it. This is how a free telehealth check-in and a $250 cash physical can live in the same practice.

  1. Open the Service Menu tab. The table lists each service with Provider, Visit Type, Duration, Booking, Patient Sees, Collection, Status, and Actions. Booking reads Public (bookable from your public site), Portal (patients can self-schedule it from the portal), Public + Portal, or Staff only. A banner counts the online services that still need a price — “1 online visit type has no price set” or “12 online visit types have no price set” — and disappears when there are none. Click it (Show them) to list only those services; it then reads “Showing the 12 online visit types with no price set” and a second click (Show all) turns the filter off. The Show only services with no price set checkbox is the same filter, and Search provider or visit type matches every word you type across both (a surname plus follow finds that provider’s follow-up visits). The Status column marks rows that carry service-level overrides. In a DPC practice, membership-covered services don’t need a price, so they don’t count in the banner and a covered service without its own rule reads Covered by membership; a Cash only service without a price still counts and reads Not configured — “Cash only needs a Fixed cash price or Free in a DPC practice; without one this service stays membership-covered.” A staff-only service without a rule reads Not configured in grey. A fixed price you hide from patients reads Contact office for pricing with the sub-line Billed $150.00 · hidden from patients, and a Hybrid practice’s custom cash label reads like $250 cash price.
  2. Edit a service's pricing. Click Edit. The Pricing card (“What this service costs and what patients see.”) offers a Price mode of Use organization default (“No price set for this service. Cash visits are charged the CPT list prices of the codes signed.”), Free (“No charge for this visit.”), Fixed cash price (“Cash-pay patients are charged this price.”), or Office review (“Staff set the price when the visit is signed. Patients see ‘Contact office for pricing’.”). Set the Cash price and an optional Display label (for example FREE, $150, or Contact office) that overrides the auto-generated price text. In a DPC practice, a Fixed cash price on a service that is Covered by membership isn’t charged to anyone, and the editor says so: the helper turns amber — “Not used: this service is covered by membership, so members book it with no visit charge. To charge this price, set Membership coverage to Cash only (members pay too).” — the field reads Cash price (not used while covered) with “Kept for when this service is Cash only.” under it (you can still edit it), and Show the price to patients is hidden.
  3. Decide whether patients see the price. Show the price to patients is “Display only; it never changes what is charged. When off, patients see ‘Contact office for pricing’ in the portal and on your website.” It is hidden for Free and Office review. Turning it off on a fixed price shows “Patients won’t see the price, but visits are still billed at $150.00. If staff should set the price for each visit instead, use Office review.” with a Use Office review button.
  4. Set pre-visit collection for the service. Collection policy starts on Use organization default, which shows what it inherits (“Follows Collections & Fees: Required at booking · $20.00 deposit.”) and hides the deposit, balance, and hours fields. Pick Card on file, Required at booking, Suggested before visit, Required before visit, Collect at check-in, or Invoice after visit to set this service’s own deposit type (No deposit (full price), Full price, Fixed deposit, Percent deposit), balance collection, and hours-before-visit window. An older service that collects nothing but kept leftover deposit settings reads No collection (service override), with a note that Collections & Fees doesn’t apply to it and a Use organization default button.
  5. Choose insurance vs. cash handling. Insurance vs. cash handling lists only what your payment model offers: Use organization default and Cash only in an Insurance practice; those plus Office review in a Pure Cash practice (or one with no model set); all four, including Insurance when available, in a Hybrid practice. In a DPC practice the field is labelled Membership coverage, with Covered by membership and Cash only (members pay too) — “Covered by membership: members book it with no visit charge; others need a membership or a staff override. Cash only: everyone pays this service’s cash price, members too, and no membership is needed to book.” A stored value the model no longer offers shows disabled, (not offered in …), until you pick an offered one.
  6. Override cancellation & no-show (optional). By default the service inherits the organization policy. Tick Override for this service to set a service-specific Late-cancellation window (minutes) and fee and a no-show fee (No no-show fee, Fixed fee, Percent of visit price, or Forfeit collected deposit); leave it unchecked to keep using Collections & Fees.
  7. Override saved card & autobilling (optional). Card on file and Auto-charge mode each default to Use organization default; switch either to require or skip a card, or to Off for this service, Simulate for this service, or Live for this service. Live only runs while the organization is also set to Live in Collections & Fees — a service can narrow that setting, never widen it — and saving it asks you to confirm.
  8. Save, or copy to other providers. Save saves this service. Copy to other providers… opens a review of the other providers’ services with the same visit-type name: each row is a checkbox {provider} · {visit type} with what patients see now (active services start checked, inactive ones unchecked). Save and copy to N providers saves this service, then gives the checked services the same pricing, collection, cancellation, and autobilling settings; Back returns to the editor. The button is disabled when no other provider has a visit type with that name. If one of the services changed while you were editing, nothing is saved and the latest values reload. Closing the editor with an unsaved change — Cancel, ×, Esc, or a click outside — asks “Discard unsaved changes?” · “Your changes in this window haven’t been saved.” with Keep editing and Discard.
Service Menu table listing provider, visit type, duration, booking availability, what the patient sees, collection rule, status, and an edit action per service
The Service Menu — one row per provider + visit type. Each row's Patient Sees and Collection reflect the resolved (org + service) values.
Service editor showing Price mode set to Use organization default, cash price, display label, show price in patient portal, and the pre-visit collection options
Pricing and pre-visit collection for one service. Fields left on Use organization default inherit from Collections & Fees.
Service editor lower half showing the Override for this service toggle for cancellation and no-show, with saved card and auto-charge mode set to Use organization default
Cancellation/no-show and saved-card settings inherit until you tick Override for this service or change a dropdown off Use organization default.
Screen updated since these pictures: the checkbox now reads Show the price to patients (was Show price in patient portal), the first collection option is Use organization default (was No collection), the deposit option reads No deposit (full price), the cancellation field reads Late-cancellation window (minutes), and the footer button is Copy to other providers… (was Apply to same name). In the table view, the banner now ends with Show them and the filter checkbox reads Show only services with no price set (was Show unconfigured only).
Inheritance is explicit: every override starts on Use organization default, so a service only diverges where you deliberately change it. That keeps the Service Menu readable — a glance at the Status column tells you which services carry custom billing.
5.4Patient exceptions

Override billing for one patient from Patient Information

The narrowest layer applies to a single patient and beats both the service and organization rules. It lives on the patient’s chart, not in the Billing Command Center: open the patient’s Patient Information screen from the header strip, then the Custom Billing Rules tab under Financial.

  1. Open the patient and the Custom Billing Rules tab. In a patient chart, click the patient’s name in the header strip. Physicians and admins land on the Patient Information page in its own Info: {patient} workspace tab; staff without chart permissions get the same screen as a dialog. In the sidebar, the Financial group holds Custom Billing Rules, Insurance, and Invoices & Charges — the two billing tabs appear only for admins and for staff whose permissions allow them. The full screen is documented in §7.8. Billing staff can open the same tab without the chart: click the patient’s name anywhere in the Billing Command Center to open the Patient billing dialog (§5.7).
  2. Set exceptions. Bypass card on file means card requirements won’t block this patient from booking; Bypass booking collection moves any booking-required collection to check-in for this patient. Under Insurance claims, Automatically file secondary claims is on by default; uncheck it to bill this patient directly for what the primary leaves instead of filing it to their secondary policy.
  3. Set per-patient cash rates. Expand the Cash charge rates accordion (it starts collapsed and loads its table the first time you open it). It lists every visit type and provider with the read-only Service rate (the inherited service-level default) beside an editable Patient cash rate. Search provider or visit type matches every word you type across both, so a provider’s surname plus Standard finds that provider’s Standard visit (rows show the provider’s formal name, so a nickname won’t match). Leave it on Default to inherit, or type an amount to override; the row’s reset button (Use the service rate for {visit type}) puts it back to the service rate. In a DPC practice, membership-covered services read Covered by membership in the Service rate column, with “Not used in DPC: this visit is covered by membership.”
  4. Save once. The checkboxes and the rates are one draft: nothing saves until you press Save changes in the bar at the bottom, which reads All changes saved or Unsaved changes with Discard and Save changes (and “Billing rules saved.” afterwards). Leaving the tab, or closing the dialog, with unsaved edits asks first.
  5. Reclassify on the Insurance tab (related). The neighboring Insurance tab carries Bypass insurance (treat as cash pay) and a manual Billing type — use these to move a patient to self-pay or set their billing classification. See §7.10.
  6. See what this patient actually owes (related). The Invoices & Charges tab is the money view for one patient: available credit and open-charge counts, every invoice (each insurance invoice expanding into its read-only claim panel), the Financial documents panel where you prepare superbills and Good Faith Estimates and download receipts, and an Issue a charge or credit form with a required reason, above a log of issued charges and credits. It shows the same invoice records as the Billing Command Center’s Invoices view — see §5.11 and §7.16.
The Custom Billing Rules tab of the Patient Information screen with the Exceptions section (bypass card on file, bypass booking collection) above the expanded Cash charge rates accordion listing visit types with a read-only Service rate beside an editable Patient cash rate
The Custom Billing Rules tab with Cash charge rates expanded. Each row’s effective price is the patient cash rate when set, otherwise the service rate, otherwise the organization default.
Screen updated since this picture: the per-row save icons and the Save column are gone — the whole tab saves with one Save changes bar at the bottom.
Effective rate = patient override → service rate → organization default. A blank Patient cash rate (showing Default) means the patient simply inherits the layer above — nothing is overridden until you type an amount.
5.4bInsurance prices

Price insurance claims: CPT List Prices and payer rates

The three layers above decide what a cash patient pays and what is collected when. An insurance claim is priced code by code from two configuration tabs — Negotiated Rates and CPT List Prices — in a fixed order. The same rates feed the patient’s coverage estimate on the Insurance tab (§7.10).

What each code on a claim bills

  • 1 · Contract rate — the payer’s rate for the code in Negotiated Rates.
  • 2 · Learned rate — without a contract rate, what this payer has recently allowed for the code, once it has 3 recent payments (below).
  • 3 · CPT List Price — otherwise your price in CPT List Prices: the price you set, or the list’s default for the code, which Hero derives from Medicare’s rate.
  • No price at all — the visit’s claim is held, never filed with a $0 line, until you set a price.

How to tell on a claim

  • Learned — “Learned rate: priced from what this payer allowed for this code on recent payments (median). Not a contract rate. See Negotiated Rates.”
  • Est. — no contract rate matched, so the amount came from your list price or the Medicare-baseline default. Review before relying on it.
  • Badges show on the claim’s line table and the charge-review rows in the Claims Pipeline.
  1. Choose what insurance claims bill. The top of CPT List Prices is one line — What insurance claims bill: Each insurer’s contract rate (or Your list price, or the contract rate if it’s higher) — with a Change… button, and the price list starts right under it. Change… opens the What insurance claims bill dialog: “Applies to new charges. Claims already sent keep their amounts. Cash prices don’t change.”, then Bill each insurer its contract rate (the default: “Claims use the rate in Negotiated Rates when the insurer has one, otherwise your list price.”) or Bill your list price, or the contract rate if it’s higher (“Insurers pay the lower of what you bill and what they allow, so this protects you when a rate on file is out of date. Patient cost estimates still use your contract rates.”). The second option bills your list price whenever it is higher than the contract or learned rate — except on Medicare and Medicare Advantage claims whose billing provider is non-participating or doesn’t accept assignment, which keep the payer’s rate. Press Save to apply it (the line then shows a Saved chip), or Cancel — which asks before discarding if you picked the other option. The choice applies to new charges; claims already sent keep their amounts, and cash prices don’t change.
  2. Set your list prices. CPT List Prices (“Your practice’s price for each CPT or HCPCS code. Insurance claims use it when no payer contract or learned rate applies (or whenever it’s higher, if you bill your list price above), and cash visits use it when the visit has no cash price.”) lists every claimable code, HCPCS included (G-, J-, and S-codes). Search with Search CPT or HCPCS code or description. Each row shows the Medicare rate beside your List Price, with Default $X under it and a Reset that puts that default back. A code Medicare doesn’t price (for example 99050) reads Not priced, its price box shows Set price, and it has No default price, so Reset is disabled.
  3. Price a code a visit is waiting on. When a signed insurance visit used a code nothing prices, Hero holds that visit’s claim instead of filing a $0 line. You see it three ways: a Visits waiting on a price banner on CPT List Prices (“These codes have no price, so the visits that used them are not billed yet. Set a price and those visits bill automatically.”) with a chip per code, such as 99050 · 1 visit; a Claims Pipeline row reading “No claim yet: 99050 has no price. Set a price for it in CPT List Prices and this visit bills automatically.” with a Set a price for 99050 button; and a Billing inbox alert, 99050 has no price, with the same button for staff who manage billing settings. Type a price and save: the confirmation reads Saved 99050 · Billing resumed for 1 visit, and the held visits bill on their own (any that can’t yet are counted as still waiting, with a pointer to the Billing inbox). The alert clears itself.
  4. Cash visits and unpriced codes. A cash visit with its own price (a Service Menu price, a patient cash rate, or an amount set at signing) signs as usual. A cash visit that falls back to the prices of its signed codes stops at signing when one of those codes has no price: “Cash pay needs a price for every signed code, and 99050 has none. Set a cash-pay amount for this visit, or ask billing to set a price for 99050 in CPT List Prices.” Either fix works.
  5. Keep contract rates in Negotiated Rates. Negotiated Rates holds each payer’s contract and maps each visit type to the codes it bills. Deleting a contract asks “Delete {name}? New charges will use a rate learned from this payer’s payments if there is one, otherwise your CPT List Prices. Existing charges don’t change.”
  6. Review the rates Hero learns. The Learned from payments section shows “What each payer allowed per code on paid primary claims. Once a payer has 3 payments for a code in the last 12 months, new claims to that payer bill this rate. Existing charges never change.” Each row names the payer and code (plus modifiers or Facility rate where they apply), the Learned rate (the median of recent payments below your charge), how many payments were seen, and when it was last paid. Its chip says where it stands: Used for new claims, Collecting payments (1 of 3), Re-checking: new claims bill your list price until 3 recent payments come back, Rates vary too much to use (recent payments more than 5% apart), Contract rate applies, or Removed. Payments where the payer allowed your full charge or more are counted but never used, so they can’t lower the rate.
  7. Turn a learned rate into a contract rate, or stop using it. Use as contract rate… opens a dialog with the payer and code read-only and the Contract rate prefilled; Add to contract saves it. If you have no contracts yet it warns “This will be your first payer contract. Once you keep contracts here, payers without one are treated as out-of-network for surprise-billing (IDR) checks.” Only office-rate codes without modifiers can become contract rates. Remove sends new claims back to your CPT List Price, and new payments won’t bring the rate back until you choose Use again, which starts over from payments posted from then on.
Existing charges never change. A new contract rate, a learned rate, a list-price edit, or the What insurance claims bill choice affects charges created afterwards. The one exception is a held visit, which bills at the price you just set. Correct & Refile to a different payer re-prices an unpaid charge to the new payer’s rate (§5.9).
5.5Preview

Preview the result with the Simulator

The Simulator answers “what will actually happen if I book this?” without touching a real appointment. It runs a real or made-up patient through the entire billing pipeline — booking gate, pre-visit collection, charges, claim, 837P, payer response, and the balance that lands on the patient — against your live rules. Nothing is saved: every write is rolled back, and the result is stamped “SIMULATION — nothing was saved; all writes were rolled back.”

  1. Choose the patient. A Fictitious patient / Real patient toggle sits at the top; Fictitious patient is the default so you can test a scenario you don't have a chart for. A fictitious patient takes a Name (left empty, it runs as Sim Patient), Billing type (Default (insurance) or Cash pay), Coverage (Insured (active), Insured (coverage lapsed), or Uninsured), Plan type, Payer name (try Medicare Part B or Medicaid KY to exercise government-payer rules), and a QMB (balance-billing protected) checkbox. Switch to Real patient and Select patient to run someone from your chart instead.
  2. Describe the visit. Set the Visit type (any provider + visit type; it starts on a provider who has a billing identity, and providers without one are marked — no billing identity), the Scheduled time, the Service codes (for example 99214, 90833x1, J2426), the Diagnoses (ICD-10), and the Telehealth patient location — Not documented (POS 02), Home (POS 10 — non-facility rate), or Other location (POS 02).
  3. Pick a payer response. The Payer response scenario block decides how the imaginary payer answers: Paid in full, Patient responsibility split, Underpaid, Overpaid, Denied, Duplicate (OA-18), or Reversal (CLP-22). Set an Allowed amount (blank means the billed amount), and the scenario adds its own fields — copay, deductible and coinsurance for a responsibility split; a Group code and CARC for a denial; an Overpaid by or Underpaid by amount for the others.
  4. Click Run full lifecycle. The results come back as a stack of expandable stage cards, each colored by outcome and carrying any warnings: Patient & coverage, Booking gate, Pre-visit collection, Visit & signing charges, Claim generation, Readiness, routing & 837P, Payer adjudication, and Balance & aftermath. The run goes through the same booking, check-in, and signing code a real visit does, so the stages say what would really happen — for example “Booking allowed after the patient pays $20.00 at booking.”, “Simulation collected $20.00 at booking and $130.00 at check-in. Receipts are rolled back.”, or, for a cash visit, “Cash-pay visit priced at $150.00 (Service menu rule): $150.00 collected before signing, $0.00 charged at signing. No insurance claim.” Free and membership visits read No visit charge: …, an Office review visit says staff set its price at signing, and a visit that could not be priced shows Signing would stop: …. When booking itself is refused, the stage says so and adds “The rest of this run assumes staff booked the visit.”
  5. Expand a stage to see why. Every card opens onto a Rules in effect table — the rule that fired, the value it resolved to, and where to go and change it — plus that stage's figures. The submission stage shows an 837P preview and the adjudication stage a Synthetic 835, so you can read the actual EDI the claim would have produced.
  6. Check what was suppressed. Below the stages, Side effects that WOULD have fired (suppressed by the simulator) lists the background jobs a real run would have queued — your confirmation that the dry run stayed a dry run.
Billing Simulator with a fictitious patient configured — name, billing type, coverage, plan type, payer and QMB checkbox — above visit type, scheduled time, service codes, diagnoses and telehealth location inputs, a Payer response scenario block, the Run full lifecycle button, and the resulting stage cards from Patient and coverage through Balance and aftermath
A full lifecycle run: the inputs up top, the payer response scenario, and the stage cards underneath — each expandable to the rules that fired and the EDI that would have been sent.
Screen updated since this picture: the Name field now starts empty, and the stage summaries use the wording above (a booking that needs payment reads Booking allowed after the patient pays… in green, not Booking blocked).
Validate changes before they go live: after editing an organization default, a service override, or a patient exception, run the affected patient + service through the simulator to confirm the resolved outcome is what you intended. The Rules in effect table on each stage tells you exactly which layer is driving a charge, and where to edit it.
5.6Troubleshooting

How a charge is decided, and common gotchas

When Hero quotes a patient at booking or check-in, it resolves the three layers from most specific to least: the patient's exception or cash rate first, then the service-menu override, then the organization default. Insurance claim amounts follow a separate order — contract rate, learned rate, then your CPT List Price (§5.4b). Use the Simulator (§5.5) to preview the resolved outcome for any patient and service.

Resolution order (cash price and collection)

  • 1 · Patient — a cash-rate override or exception in the patient’s Custom Billing Rules.
  • 2 · Service — the Service Menu price mode and collection policy.
  • 3 · Organization — the Collections & Fees default.
  • The first layer that sets a value wins; lower layers fill in the rest.

“No service-menu price”

  • Online visit types must have a price before the portal can show one.
  • Set Price mode on the service, or rely on the org copay default for insured patients.
  • A cash visit of a service on Use organization default is charged the CPT List Prices of the codes signed.
  • The Service Menu banner counts how many online visit types are still unpriced.

An insured visit has no claim yet

  • A signed code has no price: the row reads No claim yet: 99050 has no price…
  • Use Set a price for 99050, or price it in CPT List Prices.
  • The visit bills automatically once the code is priced (§5.4b).

Patients see “Contact office for pricing”

  • The service’s Show the price to patients is off, or its price mode is Office review.
  • Hiding a fixed price is display only — the visit still bills that price.
  • To have staff set the price per visit, switch the service to Office review.

Patient charged the wrong amount

  • Check the patient's Cash charge rate and Exceptions first.
  • Then the service's Price mode and Collection policy.
  • Then Collections & Fees — the Simulator helps confirm the result.

Cash patient still asked for copay

  • Set Bypass insurance (treat as cash pay) on the patient's Insurance tab.
  • Or set the service's Insurance vs. cash handling to Cash only (in a DPC practice the field is Membership coverage).

Patient blocked from scheduling

  • The org Outstanding balance & scheduling guard is on.
  • Collect the balance, enroll a payment plan (if the exception is allowed), or relax the guard.
  • This guard also interacts with follow-up outreach in Scheduling > Patient Notifications.

Card-on-file requirement blocks booking

  • Confirm the requirement is intended at the org or service layer.
  • For an exception, tick Bypass card on file in the patient's Custom Billing Rules.

Need help? Email support@heroemr.com.