Gross Charges
Gross charges are a hospital's undiscounted list price for a service — the chargemaster rate before any payer negotiation. They serve one purpose in Clear Rates: enabling pct-to-dollar transformations. When a hospital MRF reports a rate as "130% of billed charges," gross charges are the denominator that converts that percentage into a dollar amount.
Two Sources, Six Columns
Gross charges come from two independent sources, each available at three geographic scopes. The pipeline produces six columns per ROID — all six land in tmp_raw_gross_charges and flow into tmp_int_combined_raw.
| Column | Source | Scope |
|---|---|---|
mrf_gross_charge_provider | Hospital MRF (chargemaster) | Provider-level |
mrf_gross_charge_cbsa_median | Hospital MRF | Median across providers in the same CBSA |
mrf_gross_charge_state_median | Hospital MRF | Median across providers in the same state |
komodo_gross_charge_provider | Komodo claims data | Provider-level |
komodo_gross_charge_cbsa_median | Komodo claims data | CBSA-level median, CCR-adjusted |
komodo_gross_charge_state_median | Komodo claims data | State-level median, CCR-adjusted |
During transformations, these are referenced as gc_hosp, gc_hosp_cbsa, gc_hosp_state, gc_komodo, gc_komodo_cbsa, gc_komodo_state. Provider-level is always preferred; CBSA and state are fallbacks.
Pipeline Flow
Drug Dosage Standardization
For drug codes (HCPCS with an ASP entry), raw gross charges may reflect different package sizes or unit counts than the ASP reference quantity. The pipeline standardizes to the ASP quantity:
standardized = (raw_gross_charge / parsed_quantity) × asp_quantity
If the standardized value falls within the ASP-based bounds (gc_lower to gc_upper), the standardized value is used. If the raw charge is outside those bounds (and an ASP limit exists), the gross charge is set to NULL to prevent implausible values from contaminating pct-to-dollar transformations.
Cost Report Charge Relativities (CCR)
Provider chargemasters vary in how their gross charges compare to the regional median. When using CBSA- or state-level gross charges as a proxy for a specific hospital, the pipeline adjusts by a per-provider relativity factor:
adjusted_gross_charge = komodo_gross_charge_cbsa_median × cbsa_ip_ratio_relativity
Relativities are sourced from COST_REPORT_CHARGE_RELATIVITIES and filtered to the range [0.2, 5]. Values outside that range are treated as data quality issues and excluded. Manual overrides can be added in sql/manual/ccr_overrides.sql.
DRG Crosswalk
If a hospital's chargemaster has MS-DRG gross charges but no APR-DRG entry for the same code (or vice versa), the pipeline crosswalks using APR_DRG_XWALK_TABLE. The crosswalked value is an average of all matching source codes:
ms_drg_to_apr_drg AS (
SELECT
r.provider_id,
'APR-DRG' AS billing_code_type,
dc.apr_drg AS billing_code,
AVG(r.gross_charge) AS gross_charge
FROM hospital_rates_with_new_columns_added r
JOIN aprdrg_xwalk dc ON r.billing_code = dc.ms_drg
-- only fill in if the APR-DRG code is NOT already in the chargemaster
LEFT JOIN inventory i ON ... AND dc.apr_drg = i.billing_code
WHERE r.billing_code_type = 'MS-DRG'
AND i.exists_in_inventory IS NULL
GROUP BY 1, 2, 3
)
Input Tables (params.py)
| Variable | Table |
|---|---|
GROSS_CHARGES_NPI | tq_intermediate.cld_utils.claims_benchmarks_gross_charges_npi_2025_09 |
GROSS_CHARGES_CBSA | tq_intermediate.cld_utils.claims_benchmarks_gross_charges_cbsa_2025_09 |
GROSS_CHARGES_STATE | tq_intermediate.cld_utils.claims_benchmarks_gross_charges_state_2025_09 |
ASP_PRICING_TABLE | tq_production.reference_internal.asp_reference_pricing |
APR_DRG_XWALK_TABLE | tq_production.reference_legacy.drg_crosswalk |
COST_REPORT_CHARGE_RELATIVITIES | tq_intermediate.cld_utils.cost_report_charge_relativities_2025_04_03 |