Hospital Capital Purchases Panel (Worksheet A-7)

Description

The full capital-purchase schedule every Medicare-certified US hospital files with CMS, as a panel: one row per hospital fiscal year, fiscal years 2019 to present, for every hospital on file — not only the ones that tripped the Hospital Capex Signals threshold. That product is the filtered slice of this one.

Worksheet A-7 Part I of the cost report (form CMS-2552-10) is the hospital's own reconciliation of its capital asset balances. It states, in dollars, what the hospital purchased during the fiscal year, split by asset class: land, land improvements, buildings and fixtures, building improvements, fixed equipment, major movable equipment, and health-IT designated assets, plus the total capital asset balance at the start and end of the year. Major movable equipment is the relocatable capital equipment line — imaging, surgical, laboratory and similar.

Each row also carries the same hospital's prior fiscal year movable-equipment and total purchases, the year-over-year multiple, purchases as a share of the opening asset base, and a boolean that recomputes the Capex Signals rule (movable equipment ≥ $1M and either ≥ 2× a positive prior year, or a first purchase after a year with other capital purchases but no movable line) so a buyer can see per row whether that signal fired — or apply a different rule.

Hospital identity (name, address, NPI, control type, hospital type, beds, total revenues, net income, total assets) comes from the same fiscal year's cost report header and summary worksheets, so capex can be sized against the hospital's operating scale without a second join.

  • Source: CMS HCRIS HOSP10 (form 2552-10) Worksheet A-7 Part I, numeric files from downloads.cms.gov; hospital identity and financial summary from the filed cost report (the same rows as HCRIS Hospital Financials).
  • Refresh cadence: quarterly, on the HCRIS release cycle.
  • Row count: 36,080 hospital fiscal years across 6,304 hospitals (2026-09-08 export). By fiscal year 2019–2025: 3,406 · 5,850 · 5,840 · 5,843 · 5,871 · 5,877 · 3,393. FY2019 is partial because the loaded A-7 history starts there; FY2025 is partial because cost reports are still arriving (about 58% of hospitals filed at export time).
  • Vintage: derived at export from the latest Worksheet A-7 line ingest (2026-07-22 at authoring).
  • Two files: the panel keyed on CCN, and the same panel with one operator-crosswalk row per CCN (parent operator, ticker).

Table: hospital_capex_a7_panel

Snowflake: HEALTHPARSE_DATA.HOSPITAL_CAPEX_A7.HOSPITAL_CAPEX_A7_PANEL

Column Type Description Notes
ccn VARCHAR CMS Certification Number of the hospital. Key. Joins to HCRIS Hospital Financials, Facility Quality, Capex Signals and the Operator Crosswalk.
npi VARCHAR Hospital NPI as filed on the cost report. Null where the hospital did not report one.
hospital_name VARCHAR Provider name from the filed cost report.
address / city / state / zip VARCHAR Hospital location from the cost report.
control_type VARCHAR CMS type-of-control code (voluntary non-profit, proprietary, governmental, …). As filed; codes per CMS-2552-10 Worksheet S-2.
hospital_type VARCHAR CMS hospital type code (general short-term, critical access, psychiatric, …). As filed.
total_beds INTEGER Beds reported on the same fiscal year's cost report.
total_revenues / net_income / total_assets DOUBLE Financial summary from the same fiscal year's cost report. Lets capex be sized against operating scale without a second join.
fy_end_year INTEGER The fiscal year (year the reporting FY ends). Key with ccn.
fy_begin / fy_end DATE Fiscal period covered by the report. Hospital fiscal years end in different months (Dec, Jun, Sep are common); use fy_end to place a row in calendar time.
land_purchases DOUBLE A-7 Part I line 1, purchases column: land bought in the FY, dollars. Any A-7 amount can be null (line not filed) or, rarely, negative (a filed reclassification). Take coalesce(x, 0) before aggregating.
land_improvement_purchases DOUBLE Line 2: land improvements.
building_purchases DOUBLE Line 3: buildings and fixtures.
building_improvement_purchases DOUBLE Line 4: building improvements.
fixed_equipment_purchases DOUBLE Line 5: fixed (built-in) equipment.
movable_equipment_purchases DOUBLE Line 6: major movable equipment — imaging, surgical, lab and other relocatable capital equipment. About 15% of hospital-years leave this line blank or zero. Median filed value is about $1.2M.
hit_asset_purchases DOUBLE Line 7: health-IT designated assets. Sparsely filed; null-heavy.
total_purchases DOUBLE Line 8 (subtotal of lines 1–7): all capital purchases in the FY.
total_beginning_balance DOUBLE Line 8, beginning-balance column: total capital assets at FY start.
total_ending_balance DOUBLE Line 8, ending-balance column.
prior_year_movable_equipment_purchases DOUBLE Line 6 purchases from the same hospital's prior-FY report. Null when FY−1 is not on file.
prior_year_total_purchases DOUBLE Line 8 purchases from the prior FY.
movable_equipment_yoy_multiple DOUBLE movable_equipment_purchases / prior_year_movable_equipment_purchases, rounded to 2 places. Null when the prior-year figure is missing or ≤ 0.
purchases_to_beginning_assets DOUBLE total_purchases / total_beginning_balance, rounded to 4 places. Capital spending intensity against the asset base. Null when the opening balance is missing or ≤ 0.
prior_year_basis VARCHAR What the prior fiscal year filed on the movable-equipment line: positive, negative (a reclassification or disposal netted into purchases), no_movable_filed (other capital purchases filed, no movable line — CMS files never contain a zero, so absent means zero or unfiled), schedule_blank (no A-7 filed that year), no_prior_year. Read the YoY multiple only where this is positive.
movable_equipment_jump_1m_2x BOOLEAN The Hospital Capex Signals rule recomputed per row: purchases ≥ $1,000,000 and either ≥ 2× a positive prior year or following a no_movable_filed year (a first equipment purchase). 4,277 true, matching the signals product row for row.
_dataset / _vintage / _exported_at VARCHAR See README.

Table: hospital_capex_a7_by_operator

Snowflake: HEALTHPARSE_DATA.HOSPITAL_CAPEX_A7.HOSPITAL_CAPEX_A7_BY_OPERATOR

Every column of hospital_capex_a7_panel, plus one row from the Provider-to-Operator Crosswalk per CCN. Where a CCN has more than one crosswalk row (106 do), the ticker-bearing row is kept, then the largest ownership share. The join therefore never fans out: this table has exactly the same row count as the panel.

Column Type Description Notes
operator_key VARCHAR Stable key of the parent operator. Null for hospitals the crosswalk does not map (most independents).
operator_legal_name VARCHAR Parent operator's legal name.
entity_class VARCHAR Operator class (public company, non-profit system, private equity, government, …).
ticker / exchange VARCHAR Stock ticker and exchange where the parent is listed. 4,727 hospital-years across 14 tickers at export. Public operators are a minority of US hospitals.
match_method VARCHAR How the CCN was linked to the operator: cms_ownership_name rests on a CMS-published ownership filing; hcris_provider_name rests on the facility's brand name and is our inference. Filter on it if you only want the CMS-evidenced link.
match_confidence VARCHAR Crosswalk confidence band.
ownership_pct DOUBLE Ownership share reported to CMS for the kept owner row. Null for name-based matches.

Example queries (Snowflake)

-- 1. National capital purchases by asset class and fiscal year (the
--    denominator the Capex Signals product cannot give you).
SELECT "fy_end_year",
       count(*)                                            AS hospitals,
       sum(coalesce("movable_equipment_purchases", 0))     AS movable_equipment,
       sum(coalesce("building_purchases", 0)
         + coalesce("building_improvement_purchases", 0))  AS buildings,
       sum(coalesce("total_purchases", 0))                 AS total_capex
FROM HEALTHPARSE_DATA.HOSPITAL_CAPEX_A7.HOSPITAL_CAPEX_A7_PANEL
GROUP BY 1 ORDER BY 1;

-- 2. Roll facility capex up to a public operator and compare with the
--    10-K capex line.
SELECT "ticker", "fy_end_year",
       count(*)                                        AS facilities,
       sum(coalesce("total_purchases", 0))             AS a7_total_purchases,
       sum(coalesce("movable_equipment_purchases", 0)) AS a7_movable_equipment
FROM HEALTHPARSE_DATA.HOSPITAL_CAPEX_A7.HOSPITAL_CAPEX_A7_BY_OPERATOR
WHERE "ticker" IN ('HCA', 'THC', 'UHS', 'CYH')
GROUP BY 1, 2 ORDER BY 1, 2;

-- 3. Your own signal rule: hospitals whose movable-equipment purchases
--    were at least $10M and tripled, most recent fiscal year first.
SELECT "fy_end", "hospital_name", "state", "total_beds",
       "movable_equipment_purchases", "prior_year_movable_equipment_purchases",
       "movable_equipment_yoy_multiple"
FROM HEALTHPARSE_DATA.HOSPITAL_CAPEX_A7.HOSPITAL_CAPEX_A7_PANEL
WHERE "movable_equipment_purchases" >= 10000000
  AND "movable_equipment_yoy_multiple" >= 3
ORDER BY "fy_end" DESC, "movable_equipment_purchases" DESC;

-- 4. Capital intensity: purchases as a share of the opening asset base,
--    for hospitals with a meaningful balance sheet.
SELECT "hospital_name", "state", "fy_end_year",
       "total_beginning_balance", "total_purchases", "purchases_to_beginning_assets"
FROM HEALTHPARSE_DATA.HOSPITAL_CAPEX_A7.HOSPITAL_CAPEX_A7_PANEL
WHERE "total_beginning_balance" >= 100000000 AND "fy_end_year" = 2024
ORDER BY "purchases_to_beginning_assets" DESC
LIMIT 50;

Known limits

  • The schedule says what was spent by asset class, not what was bought or from whom. No vendor, product or model information exists in the cost report and none is inferred.
  • Timeliness. Cost reports are filed after the fiscal year ends and CMS posts them on a rolling basis, typically several quarters later. The most recent fiscal year is always partial.
  • No point-in-time history of filings. Each hospital fiscal year appears once, with the latest filed figures. When a hospital amends a report the row is updated in place; the date a report first appeared in HCRIS is not recorded.
  • Non-hospital capex is out of scope. Ambulatory surgery centers, physician practices and other facilities that do not file a hospital cost report are not here, so an operator roll-up will not equal a company's consolidated capex where it owns such facilities.