Skip to main content
Elation Billing charge line items. Each row is one billable service line within a claim, carrying its financial lifecycle (charges, adjustments, payments, balance). Multiple charge lines roll up to a single claim, and the claim points back to an EHR-side bill. The table schema can be found in our HDB dbdocs reference. For reporting on but not limited to:
  • Per-CPT volume and revenue for a date range
  • Outstanding balance per patient, payer, or claim
  • Patient-responsibility vs. payer-responsibility splits via balance_responsibility
  • Charges that have not yet been billed (first_billed is null)
  • NDC-level drug-charge reporting
  • Reconciling claim totals against the sum of their charge lines
The financial columns on charge (total_charges, adjustments, payments, balance) are the running totals stored on the line in Elation Billing - they reflect the latest state, not a transaction log. For the per-ERA adjustment history use era_matched_adjustment.

Charges for a date range

Returns every charge line with service date in a window, with the CPT and modifiers, units, charge totals, and current balance.
select
    ch.id as charge_id
  , ch.claim_id
  , ch.patient_id
  , ch.practice_id
  , ch.from_date
  , ch.through_date
  , ch.cpt
  , ch.mod1
  , ch.mod2
  , ch.units
  , ch.unit_charge
  , ch.total_charges
  , ch.adjustments
  , ch.payments
  , ch.balance
  , ch.balance_responsibility
  , ch.last_billed
  , ch.last_billed_name
from charge ch
where ch.is_deleted = false
  and ch.from_date between '2026-01-01' and '2026-03-31'
order by ch.from_date, ch.claim_id, ch.priority;

Outstanding balances by responsibility

Aggregates remaining balance by who owes it. Useful for separating patient-AR from payer-AR snapshots.
select
    ch.practice_id
  , ch.balance_responsibility
  , count(*) as open_charges
  , count(distinct ch.claim_id) as claims_with_balance
  , count(distinct ch.patient_id) as patients_with_balance
  , sum(ch.balance) as total_outstanding_balance
from charge ch
where ch.is_deleted = false
  and ch.balance > 0
group by ch.practice_id, ch.balance_responsibility
order by ch.practice_id, total_outstanding_balance desc;

Charges that have not yet been billed

Returns lines that exist in Elation Billing but have not been billed out to any payer. Useful as a “ready to submit” worklist for billers.
select
    ch.id as charge_id
  , ch.claim_id
  , ch.patient_id
  , ch.practice_id
  , ch.from_date
  , ch.through_date
  , ch.cpt
  , ch.total_charges
  , ch.line_note
  , ch.created_timestamp
from charge ch
where ch.is_deleted = false
  and ch.first_billed is null
order by ch.from_date;

CPT volume and revenue

Rolls up CPT-level activity over a 90-day window: line counts, unique patients, billed totals, collected totals, and the running balance still on those lines.
select
    ch.cpt
  , count(*) as line_count
  , count(distinct ch.patient_id) as unique_patients
  , sum(ch.units) as total_units
  , sum(ch.total_charges) as total_billed
  , sum(ch.payments) as total_collected
  , sum(ch.adjustments) as total_adjusted
  , sum(ch.balance) as total_outstanding
from charge ch
where ch.is_deleted = false
  and ch.from_date >= dateadd(day, -90, current_date)
group by ch.cpt
order by total_billed desc;

Reconcile a claim with its charge lines

Joins one claim to the sum of its charge lines so you can confirm the claim total matches what’s actually billed line-by-line.
The charge and claim tables both live in your elation_billing schema; the bill table lives in your standard schema. Either set your default schema or qualify the standard-schema tables when running cross-schema queries.
select
    c.id as claim_id
  , c.local_id
  , c.bill_id
  , c.from_date as claim_from_date
  , c.through_date as claim_through_date
  , c.is_billed
  , count(ch.id) as charge_lines
  , sum(ch.total_charges) as sum_charges
  , sum(ch.payments) as sum_payments
  , sum(ch.adjustments) as sum_adjustments
  , sum(ch.balance) as sum_balance
from claim c
  left join charge ch
    on ch.claim_id = c.id
    and ch.is_deleted = false
where c.is_deleted = false
  and c.id = 1234567890  -- Replace with actual claim ID
group by c.id, c.local_id, c.bill_id, c.from_date, c.through_date, c.is_billed;

Drug-charge detail by NDC

Filters to charge lines that carry an NDC (the National Drug Code) and surfaces the structured NDC fields alongside the financial state.
select
    ch.id as charge_id
  , ch.claim_id
  , ch.patient_id
  , ch.from_date
  , ch.cpt
  , ch.ndc
  , ch.ndc_code
  , ch.ndc_dosage
  , ch.ndc_measure
  , ch.units
  , ch.total_charges
  , ch.payments
  , ch.balance
from charge ch
where ch.is_deleted = false
  and ch.ndc_code is not null
  and ch.from_date >= dateadd(day, -180, current_date)
order by ch.from_date desc;
If you have any questions about this topic please reach out to Elation Support Portal with the subject line HDB - <your_question>