Research / 2026-09-10

California's quarterly hospital filings as an early read on the annual cost report

For 195 California hospitals on a calendar fiscal year, four HCAI quarters sum to a median 0.999 of the HCRIS annual revenue line, and the quarters are public roughly a year before the cost report; Tenet's six California hospitals show eight quarters through March 2026.

The lag problem

The Medicare cost report is the only financial statement every US hospital files on the same form. It is slow. CMS posts reports on a rolling basis, nine to eighteen months after year end (drizzle/0108_state_quarterly_hospital_financials.sql, header). The consequence in our own table: at the 2026-05-23 HCRIS load, California had 406 hospitals with an FY2024 report and 199 with an FY2025 report, none of the latter with a December 2025 year end (query C). A calendar-year hospital's 2025 was not visible in HCRIS in late May 2026.

A few states fill the gap with their own quarterly filings. California is the largest and the first one in the Healthparse table.

What California publishes

The Department of Health Care Access and Information (HCAI) publishes a Hospital Quarterly Financial and Utilization Report for about 440 hospitals each quarter: gross and net patient revenue, deductions, capitation, operating revenue and expense, operating and net income, bad debt, charity care, a balance sheet from 2024, beds, patient days, discharges, outpatient and emergency visits, and Medicare and Medi-Cal days, discharges and net revenue. Hospitals file within 45 days of quarter end; HCAI posts about four months after quarter end (docs/data-dictionaries/state_hospital_quarterly_financials.md). The most recent posting we verified is 2026 Q1, period end 2026-03-31, posted 2026-07-31 (drizzle/0108_state_quarterly_hospital_financials.sql).

The table holds 16,629 single-quarter rows from 2016 Q4 through 2026 Q1 across 481 facilities, with a CCN on 88.8% of rows and 415 of 481 facilities (same dictionary). In our load, each of the last eight quarters comes from one HCAI file with 433 to 442 rows (query D).

The tie-out

The dictionary reports that for the 193 California hospitals on a calendar fiscal year, the four 2024 quarters divided by the HCRIS annual total revenues have a median of 0.999, an interquartile range of 0.977 to 1.002, and 165 of 193 within plus or minus 10%.

Re-run on 2026-09-10 (query A): 195 hospitals with exactly four 2024 quarters and an FY2024 HCRIS report ending in December; median 0.999; interquartile range 0.977 to 1.002; 166 of 195 within plus or minus 10%. The two extra hospitals come from the 2026-05 HCRIS load; the ratios did not move.

The line that ties is HCAI net patient revenue. Using HCAI total operating revenue instead gives a median of 1.013 and an interquartile range of 0.995 to 1.073 (query A), because it adds other operating revenue that HCRIS treats separately. Net patient revenue is the comparable line.

Same hospital, same year, same number, two to three quarters earlier.

The operator view

The crosswalk maps California quarterly filers to seven tickers: Tenet (6 hospitals), Universal Health Services (10), HCA (3), Encompass (4), Acadia (2), Select Medical (1) and Medical Properties Trust (1, a landlord row). Query B sums the last eight quarters, 2024 Q2 through 2026 Q1, by ticker. Medi-Cal share is Medi-Cal net revenue over net patient revenue; a days-based share is in the download.

Tenet, six California hospitals:

Quarter end Net patient revenue ($m) Operating income ($m) Operating margin Medi-Cal share of net patient revenue Medi-Cal share of days
2024-06-30 549.0 55.8 10.1% 38.8% 47.0%
2024-09-30 499.1 -23.3 -4.6% 32.5% 47.7%
2024-12-31 559.0 -72.6 -12.9% 39.9% 45.1%
2025-03-31 488.8 -32.9 -6.7% 23.3% 42.7%
2025-06-30 600.6 79.5 13.2% 39.5% 43.7%
2025-09-30 463.4 -50.4 -10.7% 23.8% 43.5%
2025-12-31 556.7 -108.8 -19.3% 33.9% 41.9%
2026-03-31 527.9 -12.4 -2.3% 27.1% 40.4%

Operating income is negative in six of eight quarters; the two positive quarters both end in June. Medi-Cal net revenue share swings between 23% and 40% while the days share drifts from 47% to 40%. The swing is consistent with supplemental Medi-Cal payments booked in particular quarters, but the filing does not label them, so that is a reading, not a finding.

Universal Health Services, ten hospitals: net patient revenue rose from $410.5m in 2024 Q2 to $449.5m in 2026 Q1; operating margin from 9.5% to 14.0%; Medi-Cal net revenue share from 23.1% to 19.4%.

HCA, three hospitals: net patient revenue $490.0m in 2024 Q2 and $578.2m in 2026 Q1. The 2024 Q4 row is $762.2m with a 32.8% Medi-Cal revenue share against 1% to 8% in every other quarter. That is what the filing says. It looks like a one-time booking and should be checked against the facility rows before use.

All 56 ticker-quarter rows are in the download.

Lead time

Neither table records the date a filing became public. HCRIS ingested_at is our load time, 2026-05-22 or 2026-05-23 for every California row (query C), not the CMS posting date. The state table's ingested_at is 2026-09-08 for every row. The lead time below is built from period ends and documented posting cadence.

For calendar 2024: the fourth HCAI quarter ended 2024-12-31 and, on the four-month cadence, was public around the end of April 2025. The FY2024 HCRIS report for the same 202 December-year-end California hospitals was in our table at the 2026-05-23 load (query C); the header of migration 0108 puts CMS posting at nine to eighteen months after year end, so between late 2025 and mid 2026.

For calendar 2025: all four HCAI quarters are loaded, 1,570 rows across 397 CCNs (query C), the last posted on the same cadence around the end of April 2026. HCRIS held zero December-2025 year-end reports for California at the May 2026 load.

The dictionary's summary, two to three quarters ahead of the cost report, is the conservative version of this. On the 2025 example the quarterly series was complete before the annual report existed.

What's next

Maryland's HSCRC publishes monthly hospital financials with the CCN in the file. Nevada, Washington, Oregon and Massachusetts publish quarterly. Each is half a day to a day and a half of adapter work and will land in the same table under its state code. Florida, New Jersey, Pennsylvania, Colorado, Illinois, Connecticut, Texas and Arizona publish annual data only or no bulk file (docs/data-dictionaries/state_hospital_quarterly_financials.md, verified 2026-09-08).

CSV download

data/california-quarterly-filings-early-read.csv: one row per ticker and quarter, 2024 Q2 through 2026 Q1, with facility count, net patient revenue, operating income, operating margin, Medi-Cal share of net patient revenue and Medi-Cal share of patient days.

Appendix: queries

Read-only against production Postgres, 2026-09-10, statement_timeout = '60s'. State rows are filtered on state, period_end and ccn, HCRIS rows on state, fy_end_year and ccn; all indexed. Every query ran. What could not be run: a posting-date query. Neither table stores when CMS or HCAI published a row, so the lead-time section rests on documented cadence.

Query A. Tie-out, calendar-year filers, 2024.

WITH q AS (
  SELECT ccn, count(*) AS quarters, sum(net_patient_revenue) AS npr4, sum(total_operating_revenue) AS tor4
  FROM state_hospital_quarterly_financials
  WHERE state='CA' AND report_type='quarter' AND ccn IS NOT NULL
    AND period_end BETWEEN '2024-03-31' AND '2024-12-31'
  GROUP BY ccn HAVING count(*) = 4),
h AS (
  SELECT ccn, total_revenues FROM (
    SELECT ccn, total_revenues, row_number() OVER (PARTITION BY ccn ORDER BY ingested_at DESC) rn
    FROM hcris_hospital_reports WHERE state='CA' AND fy_end_year=2024 AND fy_end_month=12 AND total_revenues > 0) s WHERE rn=1),
r AS (SELECT q.ccn, npr4/h.total_revenues AS r_npr, tor4/h.total_revenues AS r_tor FROM q JOIN h USING (ccn))
SELECT count(*) AS hospitals,
  round((percentile_cont(0.5) WITHIN GROUP (ORDER BY r_npr))::numeric,3) AS med_npr_ratio,
  round((percentile_cont(0.25) WITHIN GROUP (ORDER BY r_npr))::numeric,3) AS p25_npr,
  round((percentile_cont(0.75) WITHIN GROUP (ORDER BY r_npr))::numeric,3) AS p75_npr,
  count(*) FILTER (WHERE r_npr BETWEEN 0.9 AND 1.1) AS npr_within_10pct,
  round((percentile_cont(0.5) WITHIN GROUP (ORDER BY r_tor))::numeric,3) AS med_tor_ratio,
  round((percentile_cont(0.25) WITHIN GROUP (ORDER BY r_tor))::numeric,3) AS p25_tor,
  round((percentile_cont(0.75) WITHIN GROUP (ORDER BY r_tor))::numeric,3) AS p75_tor,
  count(*) FILTER (WHERE r_tor BETWEEN 0.9 AND 1.1) AS tor_within_10pct
FROM r;

Result: 195, 0.999, 0.977, 1.002, 166, 1.013, 0.995, 1.073, 143.

Query B. Operator view, last eight quarters (the download).

WITH x AS (
  SELECT ccn, ticker FROM (
    SELECT ccn, ticker, row_number() OVER (PARTITION BY ccn ORDER BY (ticker IS NOT NULL) DESC, ownership_pct DESC NULLS LAST, operator_key) AS rn
    FROM provider_operator_crosswalk) t WHERE rn = 1 AND ticker IS NOT NULL),
mx AS (SELECT max(period_end) AS maxq FROM state_hospital_quarterly_financials WHERE state='CA' AND report_type='quarter'),
q AS (
  SELECT s.*, x.ticker FROM state_hospital_quarterly_financials s JOIN x USING (ccn), mx
  WHERE s.state='CA' AND s.report_type='quarter' AND s.ccn IS NOT NULL
    AND s.period_end > mx.maxq - interval '24 months')
SELECT ticker, quarter_end_date, count(*) AS facilities,
  round(sum(net_patient_revenue)/1e6,1) AS npr_musd,
  round(sum(operating_income)/1e6,1) AS operating_income_musd,
  round(sum(operating_income)/nullif(sum(total_operating_revenue),0),4) AS operating_margin,
  round(sum(medicaid_net_revenue)/nullif(sum(net_patient_revenue),0),4) AS medicaid_net_revenue_share,
  round(sum(medicaid_patient_days)::numeric/nullif(sum(patient_days),0),4) AS medicaid_days_share
FROM q GROUP BY 1,2 ORDER BY 1,2;

Query C. Load timestamps and coverage.

SELECT 'hcris_ca' AS src, fy_end_year::text AS period, count(DISTINCT ccn) AS n,
  count(DISTINCT ccn) FILTER (WHERE fy_end_month = 12) AS dec_year_end_ccns,
  min(ingested_at)::date AS min_ingested, max(ingested_at)::date AS max_ingested,
  min(fy_end)::date AS min_fy_end, max(fy_end)::date AS max_fy_end
FROM hcris_hospital_reports WHERE state='CA' AND fy_end_year IN (2023,2024,2025) GROUP BY 1,2
UNION ALL
SELECT 'state_ca', 'all', count(DISTINCT state_facility_id), count(DISTINCT ccn), min(ingested_at)::date, max(ingested_at)::date, min(period_end), max(period_end)
FROM state_hospital_quarterly_financials WHERE state='CA' AND report_type='quarter'
UNION ALL
SELECT 'state_ca_2025', 'CY2025 four quarters', count(*), count(DISTINCT ccn), min(ingested_at)::date, max(ingested_at)::date, min(period_end), max(period_end)
FROM state_hospital_quarterly_financials WHERE state='CA' AND report_type='quarter' AND ccn IS NOT NULL AND period_end BETWEEN '2025-03-31' AND '2025-12-31'
ORDER BY 1,2;

Result: HCRIS CA FY2023 410 CCNs (205 December year end), FY2024 406 (202), FY2025 199 (0, latest fiscal year end 2025-09-30), all ingested 2026-05-22 to 2026-05-23. State CA: 481 facilities, 413 with a CCN, periods 2016-12-31 to 2026-03-31, ingested 2026-09-08. CY2025: 1,570 rows, 397 CCNs.

Query D. One HCAI file per quarter.

SELECT quarter_end_date, count(*) AS rows, count(DISTINCT source_file) AS files, min(source_file) AS example_file
FROM state_hospital_quarterly_financials WHERE state='CA' AND report_type='quarter' AND period_end > '2024-03-31'
GROUP BY 1 ORDER BY 1;

Result: 2024 Q2 through 2026 Q1, one file each (2024_q2.xlsx to 2026_q1.xlsx), 433 to 442 rows per quarter.