Downcoded

Who Grades Your Price File Before CMS Does?

CMS publishes the machine-readable file spec and the program that grades it in the same place, under a public domain dedication: npm install -g @cmsgov/hpt-validator-cli, point it at your own file, get the error list before a compliance reviewer does. Ten people have starred it.


The agency that can issue you a civil monetary penalty for a bad machine-readable file also wrote the program that reads it, published the source, and put the whole thing in the public domain.

Ten people have starred it.

That is the count on CMSgov/hpt-validator-cli this morning, next to 8 forks and 82 commits on main. It is a command-line validator for hospital price transparency files, it supports every template version CMS has issued, and installing it takes one line.

"What would a CMS reviewer say about the file we posted, if we asked before they looked?"

The Repo That Is Also the Rulebook

Start with the sibling repository, CMSgov/hospital-price-transparency, because it is doing something unusual for a federal specification.

It holds the required templates in CSV "tall", CSV "wide", and JSON, and the data dictionary that tells you how to encode standard charge information under 45 CFR part 180.

The rule lives in the Federal Register. The machine-checkable version of it lives in a git repo, with 137 commits of history you can read.

Same place, same license, same team. The CMS price transparency landing page links straight to it.

The Row That Used To Pass

Here's the catch, and it is the reason a file that validated cleanly last year fails now.

The CY 2026 OPPS/ASC final rule (90 FR 53448, published November 25, 2025, effective January 1, 2026) took estimated allowed amounts out of the file and put real ones in. Hospitals now encode the median allowed amount, the 10th and 90th percentile allowed amounts, and the count of allowed amounts behind those three numbers. The attestation has to carry the name of the CEO, president, or the senior official designated to oversee the encoding, and the file has to carry the organization's Type 2 NPI.

CMS held enforcement of those revisions until April 1, 2026. That date has passed.

Now, the four statistical fields are conditional, and the condition is the part that gets missed.

They attach where the payer-specific negotiated charge is encoded as a percentage or an algorithm rather than a flat dollar amount, and a dollar-amount row carries none of them (chart below).

A percentage row without them is a defect, on every line it appears.

Contract-modeling exports are exactly where percentage and algorithm rows come from. So the failure concentrates in the payers you have the most complicated arrangements with.

Running It

The install is npm install -g @cmsgov/hpt-validator-cli, and the call is cms-hpt-validator [options] <filepath> <version>. Node 20.x and NPM 8.5.x are the floor.

A few things about it that matter operationally:

  • It takes v2.1, v2.2, and v3.0, so you can point it at an archived file and see what changed against the version it was written to.
  • Format is auto-detected across CSV and JSON, and it reads gzip (.gz, .csv.gz, .json.gz) without you unpacking a multi-gigabyte file first.
  • -o json returns file metadata, validation status, error and alert counts, and an error array carrying path, field, and message. That is a CI job, not a person squinting at a table.
  • -e caps how many errors print, defaulting to 1,000, which tells you something about the failure modes the authors expected.
  • Errors and alerts are counted separately. One set breaks the file, the other set is the reviewer's eyebrow going up.

And it runs on your machine. There is no upload step, no account, no vendor between your chargemaster export and the verdict.

If you would rather not touch a terminal, the same team hosts browser tools at cmsgov.github.io/hpt-tool: a validator, an MRF file naming wizard, and a TXT file generator. That app runs client-side.

Why This Is Worth Saying Out Loud

Both repositories carry the CC0 1.0 Universal public domain dedication.

That is a waiver, releasing the work into the public domain within the United States, with contributors agreeing to the same terms when they submit.

A vendor could fork the validator into a product tomorrow and CMS would have no claim. That is the point of publishing it that way, and the agency did it anyway.

Meanwhile the spec is moving again.

The CY 2027 OPPS/ASC proposed rule (91 FR 41734, published July 7, 2026) carries a request for information on strengthening the standardization and comparability of hospital price transparency data, including the accuracy and completeness of the free-text fields everybody fills in differently. Comments close August 31.

The people who will write the most useful comments on that RFI are the ones who have watched their own file fail a check and know precisely which field the checker could not make sense of.

Final Thoughts

Ten stars is a fair proxy for how much of the industry knows this exists. The number should be higher, and the reason it isn't is that price transparency compliance got routed to consultants and platform vendors early, so the free path stopped being visible.

None of this substitutes for a compliance review. It does mean that the gap between what you posted and what the rule asks for is a question you can answer yourself, in about the time it takes to read a warning notice.

Thanks for reading.