Methodology
Every date on the calendar belongs to one of two tiers, and the two are never rendered the same way. The tier is the first thing to read on any row.
The two tiers
| Tier | Where the date comes from | What we do with it |
|---|---|---|
| Company-confirmed | An 8-K or press release from the issuer | Shown only with the source URL and the quoted sentence it came from. Never derived, never adjusted. |
| Our estimate | The trial's registered primary-completion date on ClinicalTrials.gov | Shown as filed by the sponsor, with no modelling on top. A readout follows primary completion by an unknown lag, so this is a window, not a date. |
Right now the calendar carries 200 estimated windows and 0 company-confirmed dates. Nothing is confirmed yet: ingestion of 8-K and press-release catalyst dates is not live, so the confirmed tier is empty rather than sparse. Until it ships, treat everything here as a sponsor-registered completion date and nothing more.
How a trial gets a ticker
ClinicalTrials.gov records a sponsor name, not a ticker. Names are matched against a small, hand-curated table of exact sponsor spellings. An exact match is used; anything less is treated as a candidate for human review and is never displayed. A trial whose sponsor does not match is excluded from the universe entirely — a wrong ticker on a trial event is worse than a missing one, so the failure mode is silence. The tracked universe currently resolves to 39 companies.
The trial budget is shared, and that shapes what you see. The poller tracks a fixed ceiling on trials in total, sized so a full sweep finishes inside the 15-minute cadence — not that many per company. New slots are filled by primary completion within the next 12 months first, then phase 2/3 trials (a small/mid-cap proxy — we don't have market-cap data) over the largest sponsors' back-catalog, across every sponsor at once, so prolific sponsors still take a large share: today 6 companies hold 144 of the 437 tracked. A company page showing two trials is therefore telling you how many of its trials fit the budget, not how many trials it is running. Raising the ceiling is a cadence trade, and it is the first thing to change if per-company completeness matters more than poll frequency.
What the change detector fires on
The tracked universe is re-polled every 15 minutes and each record is compared field-by-field against the last one stored. Four changes are material enough to publish; everything else is noise and is discarded.
| Trigger | Why it is material |
|---|---|
| Overall status changed | Recruiting -> Active, not recruiting -> Completed, or a stop. The single most informative field on a trial record. |
| Primary completion slipped more than 182 days | A deliberately coarse threshold. Sponsors routinely nudge dates by a few weeks; half a year is a schedule change, not housekeeping. |
| Enrollment target dropped | A cut target can precede a protocol amendment or an interim look. |
| A why-stopped reason appeared | The sponsor stated a reason for halting. Always material. |
These thresholds are deliberately coarse, so an empty change feed is the normal state of a working detector, not a broken one. Across a universe this size, a handful of qualifying changes per month is the expected rate.
What this site does not do
- No predicted approval dates, and no predicted readout dates.
- No machine learning anywhere in the pipeline.
- No inferred sponsor-to-ticker mappings — unmatched means excluded.
- No date is ever shown without its tier, and no confirmed date without its source.
Frequently asked
Does BiotechReadouts predict PDUFA dates?
No. A PDUFA date exists only once the FDA sets it and the company discloses it, so it is either quoted from a filing or it is absent. Nothing on this site is a predicted approval date.
Is a readout window the same as a readout date?
No. The estimated tier is the sponsor's own registered primary-completion date. Topline data follows it by a lag that varies by trial design and is not published, so treat it as the earliest plausible point, not an appointment.
Why is a trial I follow missing?
Its sponsor is not in the curated sponsor-to-ticker seed, so it is excluded rather than guessed at. A wrong ticker on a trial event is worse than a missing one.
Is any of this machine-learned?
No. Every rule on this page is a fixed threshold or a direct field copy, and the change triggers are four explicit comparisons.