Skip to main content
Version: 3.0

Revenue Code (RC) Imputations

Use revenue code rates from payer and hospital MRFs to impute MS-DRG and HCPCS codes. RC = Revenue Code — the 4-digit codes hospitals use to report services at departmental level.

Why Revenue Codes​

Some hospitals report rates at revenue code family level (e.g., "Operating Room" RC 036x) without breaking down by individual HCPCS procedure codes. A hospital might post a single OR rate covering hundreds of distinct surgical procedures. RC imputations reverse-engineer HCPCS and MS-DRG rates from these family-level prices, expanding coverage significantly.


Three RC Imputation Types​

RC Global — Inpatient MS-DRG Imputation​

Detects a global inpatient percentage or per diem rate shared across many revenue codes and uses it to impute MS-DRG dollar rates.

Data Sources​

Both payer MRF and hospital MRF revenue code data feed this imputation:

SourceTableFilter
Payer MRFcore_rates (billing_code_type = 'RC')Inpatient codes only: 00xx, 01xx, 020x, 021x
Hospital MRFhospital_rates via plan bridgeAll RC codes with negotiated_percentage IS NOT NULL or contract_methodology = 'per diem'

Hospital percentage normalization:

ROUND(
CASE
WHEN negotiated_percentage < 1 THEN negotiated_percentage * 100 -- decimal (0.50 → 50)
WHEN negotiated_percentage > 1000 THEN negotiated_percentage / 100 -- basis points
ELSE negotiated_percentage -- already a percent
END, 0 -- rounded to nearest whole number
) AS rate

is_global Flag​

A (provider, payer, network, negotiated_type, rate) group is flagged is_global = True when it covers both:

  • At least one Room & Board code: 0110, 0111, 0113, 0117, 0119, 0120, 0121, 0123, 0127, 0129, 0140, 0149
  • At least one ICU code: 0200, 0201, 0202, 0203, 0204, 0206, 0207, 0208, 0209

The logic: a single rate applying to both room & board and ICU reflects a global inpatient contract structure that can impute any MS-DRG.

Winning Rate Selection​

Among all rate groups for a (provider, payer, network):

ROW_NUMBER() OVER (
PARTITION BY payer_id, network_name, provider_id
ORDER BY n_codes DESC, rate DESC -- most codes wins; ties go to higher rate
)

Only the rn = 1 row with is_global = True feeds into the MS-DRG imputation. The rn = 1 per diem row feeds into the rc_global_per_diem_mult_glos variant.

Source table: tmp_int_imputations_rc_global_{sub_version}

Imputation Variants​

The selected global percentage or per diem is applied to different gross charge sources to produce a dollar rate:

Rate TypeFormula
rc_global_gc_hosp_base_perc_to_dolrate% × provider MRF gross charge
rc_global_gc_hosp_cbsa_base_perc_to_dolrate% × CBSA median gross charge × adjustment
rc_global_gc_hosp_state_base_perc_to_dolrate% × state median gross charge × adjustment
rc_global_gc_komodo_base_perc_to_dolrate% × Komodo provider gross charge
rc_global_gc_komodo_cbsa_base_perc_to_dolrate% × Komodo CBSA median × adjustment
rc_global_gc_komodo_state_base_perc_to_dolrate% × Komodo state median × adjustment
rc_global_per_diem_mult_glosper_diem_rate × Medicare geometric length of stay

Provider-level variants (_hosp_base_, _komodo_base_) are preferred. CBSA and state medians serve as fallbacks when provider-level gross charges are unavailable.

Tracing this imputation

To understand a rc_global_gc_* rate in prod_combined_all, check rc_global_inpatient_base_rate (the raw percentage before dividing by 100), canonical_gross_charge, and canonical_gross_charge_type (which gross charge source was used). The full rate group — including all RC codes that drove the is_global flag — is in tmp_int_imputations_rc_global_{sub_version}.


RC Carveout — RC Family → MS-DRG Mapping​

Where RC Global assigns a single global rate across all MS-DRGs, RC Carveout assigns family-specific rates to MS-DRGs that are primarily associated with a particular RC family (e.g., Room & Board, Obstetrics, ICU). It uses a Jaccard similarity score to match a rate group's revenue codes against each family's expected code set.

How It Works​

  1. Take the RC Global rate groups from tmp_int_imputations_rc_global_{sub_version} (all rows, not just is_global = True)
  2. Compute Jaccard similarity between each group's billing_code_array and each RC family's canonical code set (rc_group_family reference table):
jaccard_index = |intersection| / |union|
  1. Rank groups per RC family: for each (provider, payer, network, rc_family), rank by jaccard_index DESC
  2. Filter to quality matches: only rank = 1 AND jaccard_index > 0.25
  3. Map to MS-DRG via rc_msdrg_affiliations: each RC family maps to a set of affiliated MS-DRGs

Source table: tmp_int_imputations_rc_carveouts_{sub_version}

Practical Effect​

A hospital might post separate rates for Room & Board codes vs. ICU codes. RC Carveout detects the best-matching rate for each family and applies it only to the MS-DRGs affiliated with that family, rather than using one global rate for all DRGs.

Supported families include: RB (Room & Board), ICU, OB (Obstetrics), and others defined in tq_intermediate.cld_utils.rc_group_family.

The resulting imputation types in prod_combined_all are:

  • rc_family_gc_hosp_perc_to_dol / rc_family_gc_komodo_perc_to_dol (and CBSA/state variants)
  • rc_family_per_diem_mult_glos

RC HCPCS — Revenue Code → HCPCS Mapping​

Maps RC rates from both payer and hospital MRFs to individual HCPCS codes using the rc_to_hcpcs_cross_validated_75 crosswalk, which captures the empirical relationship between revenue codes and procedure codes observed across MRF data.

Data Sources​

Same dual-source approach as RC Global:

SourceFilter
Payer MRF (core_rates)billing_code_type = 'RC', joined to RC → HCPCS crosswalk
Hospital MRF (hospital_rates)case rate (dollar) or percentage entries, joined to crosswalk via plan bridge

Hospital percentage normalization uses the same <1 / >1000 / else rounding logic as RC Global.

Crosswalk: rc_to_hcpcs_cross_validated_75​

Each row in the crosswalk maps one revenue_code to one hcpcs code within an rc_family grouping. A revenue code can map to many HCPCS codes; the crosswalk is cross-validated to include only relationships observed in at least 75% of hospitals that report both codes.

Rate Selection​

For each (provider, payer, network, rc_family, hcpcs), the highest rate wins:

ROW_NUMBER() OVER (
PARTITION BY payer_id, network_id, provider_id,
CASE WHEN negotiated_type = 'percentage' THEN 'percentage'
ELSE 'case rate' END,
rc_family, hcpcs
ORDER BY rate DESC
)
WHERE rn = 1 AND negotiated_type = 'percentage'

Source table: tmp_int_imputations_rc_hcpcs_{sub_version}

The resulting imputation types in prod_combined_all are:

  • rc_hcpcs_gc_hosp_perc_to_dol / rc_hcpcs_gc_komodo_perc_to_dol (and CBSA/state variants)

RC imputations are preprocessing inputs

RC imputations are not the final imputation output. They feed into imputations_derived.sql alongside long rates, providing additional rate observations for the tier aggregations. A rate derived from an RC crosswalk competes against rates from other sources under the standard tier selection logic.