Weekly Padgett

No. 0171 min read

Reading HCRIS in Perl: where the hell did that number come from?

Perl, hospital cost reports, and $500,000 in tax-savings opportunities. Before you admire the total, folks, show me where the damned numbers came from.

A person turns a metal reel at a desk beside a paper roll machine and stacked documents.
File photoDramatization. No perl was harmed.

At CyberRazor I used Perl[1]Ref. 1Perl perl.org to analyze Healthcare Cost Report Information System[2]Ref. 2Healthcare Cost Report Information System cms.gov data for tax firms, and the work identified $500,000 in tax-savings opportunities. I like that number just fine without fucking with the word after it to make myself sound better. These were opportunities rather than refunds received.

The Centers for Medicare & Medicaid Services[3]Ref. 3Centers for Medicare & Medicaid Services cms.gov maintains HCRIS. It contains cost report data submitted by Medicare-certified institutional providers, including hospitals. Hospital reports cover costs and utilization along with financial operations. These are administrative reports; they aren't a patient-level medical record feed.

CMS distributes report information and individual reported values in separate files. In the familiar organization, report records identify the submission, numeric records hold numbers, and alphanumeric records hold text. To locate a reported value, you need identifiers including the report record number and worksheet, line, and column codes. All that for one cell.

Lose the worksheet code in a transformation and you can still have a perfectly valid decimal number. Print it or add it to something, it'll look fine. But now you can't defend what the damned thing means because you've lost part of the fact along with its address.

I'd keep the source files and parse against the documented layout, attach report metadata, then select cells whose definitions I understood. Rejected or unresolved records need to stay visible too. I want to be able to reproduce the analysis from the original inputs, including when something looks wrong and I have to go back through it.

The tax firms needed opportunities they could evaluate. Engineering can make candidates visible, but a tax professional still has to judge eligibility and treatment and examine the supporting evidence. A big total isn't much help if the route back to the reports ends at a spreadsheet cell somebody pasted from somewhere.

References

  1. Perl perl.org ↩
  2. Healthcare Cost Report Information System cms.gov ↩
  3. Centers for Medicare & Medicaid Services cms.gov ↩
perlhcrisdata-processinghealthcarereconciliation

More on this beat