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.