Skip to main content

Clear Rates Logic Divergence


i. Special Imputations in Consumer Only

1. Geographic Imputations for Professional Fees

We do NOT use geographic imputations for facility fees. This is true in Clear Rates data as well as the Consumer Pricing Service pipeline.

Geographic imputations are used for professional fees only. While not ideal, we cannot require that subpackages have rates available for all line items. This would be too restrictive and we would have no pricing data. This is more justifiable because (1) professional fees are a smaller portion of the total cost and (2) professional fees are less variable.

2. Non-Base Code Facility Fee Imputations for Cost Share

To calculate the price of an SSP for case rate packages, we only need the price of the base code. However, to calculate patient's cost share, we need line-item level prices to be available for ALL facility line items.

In case of missing data, we impute by computing an "allocation" factor across all available rates for the sub-package:

allocation = avg_price of line_item / SUM(avg_price of sub_package)

Here's an example of allocations for sub-package 116PU (SSP PU000). And allocated price assuming a case rate of $5000.

sub_package_idbilling_codeavg_priceallocationallocated_price
116PUJ24050.79377100
116PU88342299.1220.044220
116PU71045233.2950.034170
116PUJ30102.0023100
116PU316525661.80.8294145
116PUJ71205.242040.0015
116PU88173204.0930.03150
116PUJ22500.63390900
116PUJ27048.985010.0015
116PUJ11001.6690300
116PU88305415.7620.061305
SQL
WITH
avg_prices AS (
SELECT
ssp_id,
sub_package_id,
billing_code_type,
billing_code,
avg(average_units * anesthesia_unit_conversion * negotiated_rate) as avg_price
FROM tq_dev.internal_dev_csong_consumer_pricing_service.pricing_service_rates_2025_06
WHERE fee_type = 'facility'
AND is_package_base_code = 0
AND negotiated_rate IS NOT NULL
AND ssp_id = 'PU000'
AND sub_package_id = '116PU'
GROUP BY 1,2,3,4
),
allocations AS (
SELECT
sub_package_id,
billing_code,
avg_price,
CAST(avg_price / (SUM(avg_price) OVER(PARTITION BY sub_package_id)) AS DECIMAL(10,3)) as allocation
FROM avg_prices
)
SELECT
sub_package_id,
billing_code,
avg_price,
allocation,
CAST(allocation * 5000 AS DECIMAL(10,2)) as allocated_price
FROM allocations

ii. Tighter Outlier Bounds in Consumer

For how Clear Rates handles outliers, see Outlier Bounds in Clear Rates.

Clear Rates allows exceptions to outlier bounds:

  1. Validated rates (rates where payer and hospital posted similar rates) can be up to 100x Medicare
  2. Percent-of-Charge rates with hospital-reported gross charges can be up to 100x Medicare

Consumer Pricing Service does NOT allow these exceptions. All rates must fall within the outlier bounds.


iii. Anesthesia Codes

Note

As of August 2025, Clear Rates does not yet standardize anesthesia codes to a common unit.

But it is on the roadmap!

Anesthesia codes can be reported in different units (e.g. minutes, 15-minute blocks, hours).

Consumer Pricing Service standardizes anesthesia codes to minutes using:

Anesthesia Fee Amount = (Base Units + Time [in units]) x Conversion Factor

We reference this TQ Zendesk article to identify how payers report anesthesia units and convert negotiated rates accordingly:

CASE 
WHEN
payer_id = '643'
AND anesthesia_unit_conversion IS NOT NULL
AND source = 'payer'
THEN unadjusted_negotiated_rate
WHEN
payer_id = '44'
AND anesthesia_unit_conversion IS NOT NULL
AND source = 'payer'
THEN unadjusted_negotiated_rate * 15
WHEN
payer_id IN ('7', '42', '76', '169', '389', '403', '229', '388')
AND anesthesia_unit_conversion IS NOT NULL
AND source = 'payer'
THEN unadjusted_negotiated_rate/(an.base_units + 1)
WHEN
payer_id = '101'
AND anesthesia_unit_conversion IS NOT NULL
AND source = 'payer'
THEN unadjusted_negotiated_rate/an.base_units
ELSE unadjusted_negotiated_rate
END as negotiated_rate

Finally, we get base units from tq_intermediate.cld_utils.ref_anesthesia_base_units, which contains two fields: billing_code and base_units.