Corrections & changelog
Every material error we have found in our own published numbers, what caused it, and what changed. Newest first. We also log the corrections we rejected — a page that only shows the times we were wrong is marketing, not accountability.
Why this page exists.
We publish statistics that people may act on. The only thing that makes a number trustworthy is a visible history of what happened when it was wrong. Nobody else in this category publishes one. We would rather show you the 10 times we corrected ourselves than have you assume we never needed to.
If you find an error, email
data@pdufa.bio. If you are right we will fix it and credit you here. If you are wrong we will show our working and log that too.
The log
Market-cap tiers were assigned with hindsight2026-07-12 · conference study
Every presentation in the conference study was bucketed by the company's market cap today. That is a look-ahead error: a company that was a $900M mid-cap when it presented in 2018 and has since collapsed to $40M was filed under nano — so the nano bucket was quietly enriched with companies that later fell apart, and its negative run-up was partly just measuring the collapse. We now compute market cap as of the day of each presentation, from SEC-reported shares outstanding × the split-unadjusted close. (Splits matter: the universe contains 208 reverse-splits; multiplying split-adjusted prices by as-reported share counts overstates historical caps by the split factor.) 17% of events changed tier. The finding survived — nano is still the worst cohort — but the number moved from −9.84% to −7.11% and two tiers changed sign.
We deleted a real conference, then put it back2026-07-12 · conference study
We pulled a row labelled “ANE” (n=47) from the conference table and said it was “not a conference at all — a parsing artifact.” That was wrong. “ANE” is a garbled letter-order of ENA — the AACR-NCI-EORTC International Conference on Molecular Targets and Cancer Therapeutics, a real annual October meeting. The meeting was real; its code was mangled, and two of its six stored dates were corrupt (a March and a June date on an October conference), which dragged unrelated presentations into the bucket. We split it: 23 events with October dates restored as ENA, 24 with unverifiable labels marked unknown. “This data looks like garbage” is a hypothesis, not a finding. We deleted first and checked second.
Our crawler was inventing conference presentations that never happened2026-07-12 · conference calendar
A press release saying “Presented data at ESMO 2025” was being read as an upcoming 2026 catalyst. The year detector, unable to read a year from the text, defaulted to the filing year and then projected a future date — so a memory of a past presentation became a forward-calendar event. 74 of 121 projected rows were past-tense history sold as future; one was dated to 2027. None reached the study (it only prices exact dates), but 26 would have gone on the public conference calendar. The crawler now refuses to emit a date after the filing date unless the filing actually says the company will present.
We hedged a number we could have simply printed2026-07-12 · readout study
The cross-catalyst table printed the PDUFA run-up as “≈0%.” On a site that puts an n next to every figure, a tilde is not good enough. The number is +0.57% (n=1,792), so we print +0.57%. It does not change the conclusion. It stops us rounding in our own favour.
The homepage did not fit on a phone2026-07-11 · site
The homepage — our most-crawled page — was never migrated to the shared responsive header. It overflowed horizontally by 220px on a 390px phone, because its two-column grid only collapsed below 820px and CSS grid children default to min-width:auto, so the sidebar refused to shrink. Fixed, and a CI test now fails the build if any page can overflow.
We retired one of our own models for being wrong2026-07-11 · methodology
Our internal Conference Overlay claimed nano- and micro-cap conference presenters ran up +4.88% into the event. Our own 1,425-event study found the nano median was negative. The overlay was built on a thin, biased sample and it did not survive contact with the full dataset. It is retired and refuted, and the tool that served it now returns a refutation notice instead of a score.
A drug was on our calendar that had already been approved2026-07-11 · calendar
CORT (relacorilant) was showing a July 2026 PDUFA date. The FDA had approved it on 25 March 2026 — roughly fifteen weeks early. Our crawler had re-added it to the forward calendar from its original PDUFA date without reconciling against decided events. Removed, and a reconciliation guard added.
We refused to publish our most quotable statistic2026-07-10 · readout study
We could have written “68% of clinical readouts do nothing.” It would have travelled. We did not publish it, because the “flat” bucket it came from spans −14.9% to +5.0% — a 20-point range is not “nothing,” and calling it that would have misled every reader who acted on it. We published the honest cut instead: 56.5% of readouts land within ±5%. Less punchy. True.
We rejected a bug report that would have broken the dataset2026-07-10 · readout study
A reviewer reported that our 1-day return column was scaled wrong and that the 25th percentile was −521%. We checked before acting: the column is already expressed in percent, matches the raw prices for 93.9% of events exactly, and the real 25th percentile is −5.19%. The reviewer had treated a percentage as a fraction. Acting on the report would have corrupted our most valuable dataset. We log rejected corrections too — a corrections page that only shows the times we were wrong is marketing.
A model feature was counting a company's CRLs against a drug2026-07-12 · internal model
prior_crl_count ran as high as 26. No drug has 26 complete response letters — but a large generic manufacturer plausibly has 26 across its whole portfolio. The feature was counting at the company level. Because it is z-scored, those 28 rows inflated the feature's standard deviation by 151%, compressing the CRL signal to roughly a third of its true strength for every event in the model. Capped. The model must be retrained for the fix to take effect, and it has not been yet.
What we will never do.
Publish a per-drug approval probability. Publish a win rate. Publish a number we cannot defend against the raw data. Quietly change a figure without saying so on this page.
About ·
Corrections ·
Methodology
Not affiliated with or endorsed by the FDA or any medical society. pdufa.bio is an independent service.
Informational and educational only — not investment advice. These are historical statistics; they are not a forecast for any company or event, they are not a trading strategy, and they carry no entry, exit or position-sizing guidance. Past price behaviour does not predict future outcomes. © 2026 pdufa.bio