for Pharma
Toggle menu
Answers · Pharma data quality

Is an NBRx decline real, or caused by late, incomplete, or restated data?

Treat an NBRx decline as a data problem until five checks pass, in order: the file arrived once and on time, it is complete against its control count or history, overlapping periods match your last kept delivery, the payer and specialty mix did not jump, and the report used the current alignment version. Only then is it performance.

Chris Bergh Published

Key points

  • A falling prescription number in commercial pharma is often a data event: a late file, a partial file, a vendor restatement, a mapping change, or a realignment can each move NBRx, NRx, or TRx while every load succeeds.
  • A specialty pharmacy file that should carry 40,000 rows and arrives with 26,000 loads with no error, so completeness has to be checked before a decline is briefed.
  • Syndicated prescription data is part actual and part projection, and many syndicated products revise the most recent months on every refresh, so the only way to see a restatement is to diff overlapping periods against the delivery you kept.
  • A sudden shift in payer, specialty, or geography mix usually means an upstream mapping regression rather than real market movement.
  • A territory realignment can drop a rep's numbers 40 percent overnight with the underlying data correct, so a regional decline needs the alignment version checked before anyone calls the rep.

The weekly launch tracking report shows NBRx down. The brand lead wants an explanation by the Thursday meeting. Before anyone asks what happened in the market, ask what happened to the file.

Commercial pharma runs on data you didn’t create, and most of the ways it breaks look like a trend. The post on the commercial data most likely to be wrong lists them: half a file, a restatement, a renamed column, a unit change, a realignment. Every one loads without an error. So work through them in order, cheapest check first, before anyone says the word “performance.”

The same order works for NRx and TRx, the prescription measures behind the weekly forecast and launch tracking reports on the launch page. NBRx isn’t on that list, but the checks don’t change, because they test the feed rather than the metric.

Five checks, in this order

StepQuestionWhat a data cause looks likeCheckLong version
1. DeliveryDid this week’s file arrive once, on time?Missing week, or a week loaded twiceMax load date is this week; one delivery per periodVendor feed tests
2. CompletenessDid all of it arrive?26,000 rows where 40,000 belongRow count against the control record, or volume bounds from the feed’s historyVendor feed tests
3. RestatementDid history move?Prior weeks changed inside a clean fileDiff overlapping periods against the delivery you keptRestatement answer
4. Mapping and unitsDid the mix or the scale shift?Payer or specialty mix jumps; one product moves 10x; a renamed column fills with nullsDistribution shift on the mix; metric trend per product; schema driftTesting post
5. Alignment versionIs the report on the current alignment?One region falls, the nation holdsTerritory totals tie to national; activity and sales share one versionTerritory answer

If all five pass, the decline is performance. Brief it, with the check results attached.

Why the order matters

The first two checks take seconds and kill the most common false alarm. A weekly file should arrive exactly once per week. Feeds go missing and feeds get loaded twice, and neither throws an error. A partial file is worse, because a structural check sees nothing: every row valid, nothing null, schema unchanged.

Restatement comes third because it needs something you may not have kept. Syndicated data is part actual, part projection, and many products revise the most recent months on every refresh while older periods stay fixed. A restated prior week can make the newest week look like a drop. If you didn’t keep a snapshot of each period as received, you can’t run this check, and you should start keeping one this week. A two-stage FITT architecture keeps raw data as it arrived, which makes the snapshot free.

Mapping comes fourth. A sudden change in the mix of payer types, specialties, or geographies usually means a mapping regression upstream, not a market move. An NDC remapped from one market basket to another drops one group’s total and raises another’s by about the same amount. A renamed column is nastier. Last week the vendor sent RX_CNT, this week RxCount, and the metric comes back empty while the load reports success.

Alignment comes last because it only explains a regional decline. A realignment can drop a rep 40 percent overnight while the underlying data stays perfectly correct. If regional totals still tie to the national total, credit moved. Nobody lost scripts.

Make the checks run before the meeting

Run by hand, these checks get skipped on a busy week. That is exactly the week the bad file arrives.

In DataOps TestGen, freshness and volume monitors cover steps 1 and 2 on every table, with bounds learned from history. Aggregate Balance on the stable tail and Distribution Shift on the restated months cover step 3. Distribution Shift on the mix and Metric Trend on each product cover step 4. Aggregate Balance on territory rollups covers step 5. The tests run on every load, so by Thursday the answer is already in the results.

A restatement often looks like growth, and nobody questions a number moving the right way. A decline gets questioned. One commercial launch platform had field reporting live six months before launch day because its checks caught bad loads before anyone downstream saw them, and the launch case study has the numbers. Tested feeds are what let you say “performance” on Thursday and have it stick.

Follow-up questions

Frequently asked questions

How do we tell a real NBRx drop from a late file?

Check the load date before the trend. A weekly syndicated file should land exactly once a week, and a missing or duplicated delivery throws no error. If the max load date for the feed behind the report is not this week, the decline is a gap in the data. A freshness monitor on the feed answers that in seconds.

Can a vendor restatement make NBRx fall?

Yes. Syndicated prescription data is part actual and part projection, and many products revise the most recent months on every refresh. A restated prior week can make the latest week look like a drop, or erase growth you already briefed. Diff the overlapping periods against the delivery you kept. If history moved, the change is in the data.

Why did NBRx fall in one region but not nationally?

Check the alignment first. A territory realignment can drop a rep's numbers 40 percent overnight while the underlying data stays correct, and activity and performance computed on different alignment versions never reconcile. If regional totals still tie to the national total, credit moved between territories. Fix the mapping before anyone discusses the rep's performance.

Does a payer or specialty mix change explain the decline?

Usually it points to the data, not the market. A sudden shift in the mix of payer types, specialties, or geographies usually means a mapping regression upstream. An NDC remapped to a different market basket moves one group's totals down and another's up while nothing errors. A distribution test on the mix catches it on the load where it appears.

When should we tell the brand team the NBRx decline is real?

After the feed passes five checks: delivered once and on time, complete against its control count or history, unchanged in the overlapping periods, stable in its payer and specialty mix, and reported on the current alignment version. Each passing check removes one data explanation. When all five pass, brief the decline as performance and keep the test results with the brief.

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.