for Pharma
Toggle menu
Answers · Pharma data quality

How do you validate Open Payments (Sunshine Act) data before you submit it to CMS?

Test the file against the reporting rule, not against its own history. Before the March 31 deadline, check every physician record for NPI, license state, and specialty, every covered product for an NDC or device identifier, every payment date, and the de minimis logic against that year's CMS thresholds. DataKitchen found 75 pre-1900 payment dates in the 2024 public file.

Chris Bergh Published

Key points

  • CMS requires reporting entities to submit Open Payments data by March 31 each year, and reporting counts as complete only when the attestation to timeliness, accuracy, and completeness is received.
  • The CMS Open Payments program year 2024 general payments file has 15,498,687 rows, and a direct query DataKitchen ran in September 2026, separate from its 16 rule tests, found 75 payment dates before the year 1900. The dates parse, so a schema check passes them.
  • Across the 2024 national Open Payments file, DataKitchen's rule tests found 13,890 physician and practitioner records lacked an NPI, license state, or specialty, and 7,729 of them were nurse practitioners and physician assistants, who became covered recipients in 2021.
  • CMS sets the Open Payments de minimis thresholds per program year: $13.07 and $130.66 for 2024, $13.46 and $134.54 for 2025, $13.82 and $138.13 for 2026, and $14.31 and $143.01 for 2027. Read them from a reference table, never hard-code them.
  • In DataKitchen's September 2026 Open Payments analysis, when 353 generated tests moved from the Massachusetts file to the national file, 33 failed or warned because their thresholds came from the sample. The 16 tests written from the rules did not break.

Seventy-five payments in the 2024 Open Payments file are dated before the year 1900. Three are dated November 30 in the year 2. The file went through CMS validation, got published, and sat on a public website. The dates parse. Nobody tested whether a payment date can be two thousand years old.

That’s from our test of the full 2024 general payments file, 15,498,687 rows. Every finding below traces to a rule somebody wrote down. Most came from 16 SQL tests written from those rules; the 75 dates came from a direct query, because none of the 16 tests checks dates. The fix is to write those rules as tests and run them before your file goes to CMS, not after a reporter downloads it in July.

The calendar you’re testing against

WindowDatesSource
Data collectionJanuary 1 to December 31 of the program yearCMS data collection
Submit and attestBy March 31 the following yearCMS submission and attestation
Recipient review and disputeApril 1 to May 15CMS dispute and correction
Your correction windowMay 16 to May 30Same page. Unresolved disputes publish as disputed.

CMS says reporting “is considered complete when the official attestation is received.” The attestation covers accuracy. So February is when your tests earn their keep.

The pre-submission checklist

Each row is a SQL query that returns the rows breaking the rule. The national counts are what the same tests found in the 2024 public file, across every manufacturer, except the payment-date row: DataKitchen wrote no date test, and the 75 came from a direct query against the full national table.

CheckRule behind it2024 national file
Physician and practitioner records carry NPI, license state, and specialtyReporting rule, 42 CFR 403.90413,890 missing
Covered products carry an NDC or device identifier (only where the covered indicator says covered)42 CFR 403.904949,435 missing
Payment date falls inside the program yearCommon sense, written down75 before 1900 (direct query, not one of the 16 tests)
Form of payment is a current CMS valueCMS form-of-payment categories131 on retired Stock forms
Third-party indicator agrees with the third-party name fieldField consistency1
Teaching hospital records carry a CCN and no physician fields42 CFR 403.9040
Travel records state a city, state, or country42 CFR 403.9040
Sub-threshold payments apply that year’s de minimis amountsCMS thresholds114,082 (legal, voluntary)
No entertainment paymentsPhRMA and AdvaMed codes6,562
Meals over $500 per personOIG speaker-program alert3,450

The $500 meal line is a screening threshold DataKitchen chose, not a regulatory number. The OIG alert cites a $500 average in one case; the industry codes say “modest.”

Two of those counts need context before anyone repeats them. The device identifier gap is a backlog, since the field only recently became mandatory. And sub-threshold rows are legal. Treat both as warnings.

Count rows with a dispute status separately. A disputed record may already be under correction.

Validate the identifiers, not just their presence

A present NPI can still be wrong. An NPI’s tenth digit is a Luhn check digit, so two transposed digits break the arithmetic while a ten-digit pattern test passes it. The same applies to the NDC, which comes in three segment configurations that pad to different 11-digit values. If your HCP master feeds the submission, test the master for duplicates and broken identifiers first.

The NP and PA gap is the one to fix upstream. 7,729 of the 13,890 records missing a required field belonged to nurse practitioners and physician assistants, covered recipients since 2021. Most HCP master data was built around physicians and still doesn’t hold them cleanly.

Why generated tests aren’t enough here

DataOps TestGen profiled the 220,865 Massachusetts rows in 3 minutes 24 seconds and generated 353 tests. 349 passed. Generated tests learn what your data looks like. To them a year-2 date is just the minimum, and Entertainment is just a valid category.

Then the tests moved to the national table and 33 generated tests broke, because their baselines came from Massachusetts. The 16 rule tests held, because their thresholds came from the law. That’s the argument for writing the rules down: your best rules live in somebody’s head, here the transparency lead’s, and they belong in a test with a severity and a run history.

The same shape shows up in the commercial feeds most likely to be wrong: many submitters, one template, nobody checking rows against the rules.

Open Payments is a CMS program, not an FDA records rule, so Part 11 doesn’t govern it. Here’s where Part 11 does apply in commercial data.

A year-2 date is cheaper to find in February than in a news story.

Follow-up questions

Frequently asked questions

When is Open Payments data due to CMS?

By March 31 each year, for payments made in the prior calendar year. CMS treats reporting as complete only when it receives the attestation to the timeliness, accuracy, and completeness of the data. Covered recipients then review and dispute records from April 1 to May 15, reporting entities get May 16 to May 30 to correct, and unresolved disputes are published as disputed.

What are the Open Payments de minimis thresholds?

CMS adjusts them every program year. A single payment under $13.07 was reportable in 2024 only if the recipient's annual total from that manufacturer passed $130.66. For 2025 the numbers are $13.46 and $134.54, for 2026 $13.82 and $138.13, and CMS has posted $14.31 and $143.01 for 2027. Keep them in a reference table your test reads, so a new year is a row, not a code change.

Which Open Payments errors does CMS validation miss?

Values that are well formed but impossible. The program year 2024 general payments file, as CMS published it, contains 75 payment dates before the year 1900, including three dated November 30 in the year 2. Those dates parse, so the file passed. DataKitchen counted all 75 with a direct query against the national table, not with one of its 16 rule tests, so add a payment-date-in-program-year test of your own.

Why do NP and PA records fail the required-field check?

Because master data was built for physicians. Nurse practitioners and physician assistants became covered recipients in 2021. In the 2024 national Open Payments file, 7,729 of the 13,890 practitioner records missing an NPI, license state, or specialty belonged to NPs and PAs. Test the HCP master for those three fields before the transparency team assembles the file.

Can generated data quality tests validate an Open Payments file?

Partly. Generated tests learn what the data looks like, so they catch internal inconsistency such as ZZ license codes. They can't tell you a year-2 date is impossible or that an entertainment payment breaks the PhRMA Code. In DataKitchen's test, 349 of 353 generated tests passed the Massachusetts file. Sixteen SQL tests written from the rules found 92 entertainment payments and 91 meals over $500 a person that the generated tests passed.

Are sub-threshold payments in the file an error?

No. Manufacturers may report below the de minimis amount voluntarily, so the 114,082 sub-threshold payments in the 2024 national file are legal. They do show that around 100 companies are not applying threshold logic in their pipelines. Flag them as a warning that your threshold logic did what you meant, not as a failure.

Talk to the team that tests this data every week.

Half an hour on your stack, your launch window, and what the first sprint would look like.