Skip to main content
Version: 3.0

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.

ColumnSourceScope
mrf_gross_charge_providerHospital MRF (chargemaster)Provider-level
mrf_gross_charge_cbsa_medianHospital MRFMedian across providers in the same CBSA
mrf_gross_charge_state_medianHospital MRFMedian across providers in the same state
komodo_gross_charge_providerKomodo claims dataProvider-level
komodo_gross_charge_cbsa_medianKomodo claims dataCBSA-level median, CCR-adjusted
komodo_gross_charge_state_medianKomodo claims dataState-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

1
Hospital MRF gross charges
Read commercial gross charges from hospital_rates. Apply drug dosage standardization against ASP limits. Crosswalk MS-DRG ↔ APR-DRG for codes missing from the chargemaster. Deduplicate to one row per (provider, bill_type, billing_code_type, billing_code) — highest charge wins. Aggregate to CBSA and state medians (min 5 distinct providers).
2
Komodo gross charges
Read NPI-level (GROSS_CHARGES_NPI), CBSA-level (GROSS_CHARGES_CBSA), and state-level (GROSS_CHARGES_STATE) from Komodo. Apply CCR adjustments to CBSA and state medians using cost report charge relativities. Drug codes are dosage-standardized using ASP quantity/unit lookups.
3
Join to ROS
LEFT JOIN all six gross charge sources onto tmp_rate_object_space. Only ROIDs with at least one non-NULL gross charge value are written to tmp_raw_gross_charges.
tmp_raw_gross_charges

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 → APR-DRG crosswalk (simplified)
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)

VariableTable
GROSS_CHARGES_NPItq_intermediate.cld_utils.claims_benchmarks_gross_charges_npi_2025_09
GROSS_CHARGES_CBSAtq_intermediate.cld_utils.claims_benchmarks_gross_charges_cbsa_2025_09
GROSS_CHARGES_STATEtq_intermediate.cld_utils.claims_benchmarks_gross_charges_state_2025_09
ASP_PRICING_TABLEtq_production.reference_internal.asp_reference_pricing
APR_DRG_XWALK_TABLEtq_production.reference_legacy.drg_crosswalk
COST_REPORT_CHARGE_RELATIVITIEStq_intermediate.cld_utils.cost_report_charge_relativities_2025_04_03