Our methodology

Most of this site is drafted by an AI model and reviewed by a person. Some of it is pulled directly from primary sources. Those are very different things, and you should know which you are reading — so this page states it per content type, including where we are weakest.

Correction — 4 September 2026

An earlier version of this page described a verification pipeline that did not exist. It credited us with source cross-referencing, daily refreshes, per-datum attribution, and direct regulatory-source ingestion — none of which were built. We have removed those claims and replaced this page with a description of what actually runs. The statements removed, and why each was wrong:

  • “cross-referenced against at least two sources” — No two-source check existed. Nothing in the pipeline compared an event against a second independent source.
  • “Dates are updated daily” — The generator deliberately skips any month updated within the last 7 days, so calendars are not refreshed daily.
  • “sourced directly from FDA.gov” — No FDA.gov ingestion existed. Since 2026-09-05 openFDA is queried to screen pending decisions against approvals already granted, but the decision dates themselves still come from the model and a human’s reading of company disclosures, not from FDA.gov.
  • “Each data point is attributed to its source” — No per-datum attribution existed. Per-entry provenance on catalysts is the first real step toward this.
  • “PDUFA dates, Phase 3 readouts, AdCom meetings” — Five calendars advertised FDA advisory committee coverage in their search descriptions and contained no advisory committee entries at all. The FDA publishes no machine-readable AdCom feed keyed to a drug or sponsor, so the promise was withdrawn rather than quietly met with model recall.
  • “continuously monitored for updates” — No automatic re-verification job existed. Since 2026-09-04 every page is aged against a published review window and flags itself when stale, but nothing refreshes it automatically.

How each type of content is made

4 of our 5 content types involve a primary source — some are built from one, some are checked against one, and the rest are neither. Each is labelled below. Strongest evidence first.

Trial Translator

Built from a primary source

/tools/trial-explainer

Where the facts come from
Live ClinicalTrials.gov API v2, fetched in your browser at the moment you paste an ID.
What the AI does
None. No language model runs. The reading is computed from the registry record: design features are derived from the registered fields, endpoints are quoted verbatim, and every point cites the field it came from.
How much to trust it
Strongest content on the site. Every field shown comes straight from the registry record you asked for, and the tool states plainly what that record cannot answer — the statistical analysis plan, the powering assumptions, whether an interim has happened.

Trial analyses

Built from a primary source

/trial/*

Where the facts come from
The ClinicalTrials.gov record for that specific NCT ID, fetched before anything is written.
What the AI does
Writes the plain-English explanation of the fetched record, plus competitive and historical context from its own knowledge.
How much to trust it
Trial design, endpoints, enrollment and status are registry-derived. Context and the investor scorecard are AI-drafted and unverified.

Company profiles

Built from a primary source

/company/* (12 maintained, 25 archived), /companies, /screener

Where the facts come from
A ClinicalTrials.gov sponsor query supplies the trial list. Financials, cash runway, and the bull and bear cases are written by the model, not pulled from filings.
What the AI does
Writes pipeline descriptions, the investment thesis, and the financial snapshot.
How much to trust it
Treat the trial list as sourced and everything else as AI-drafted. We do not ingest SEC filings, so cash and burn figures are unverified and can be stale — which is why cash runway is now calculated from those figures and shown with its workings, or not shown at all, rather than asserted as a number.

Catalyst calendar

Checked against a primary source

/catalysts, /catalyst/*, /catalyst-watchlist, /pdufa-calendar

Where the facts come from
Events are seeded from our own company profiles and otherwise supplied by the language model from its training knowledge. Every trial-readout entry is then matched against ClinicalTrials.gov before publication, and every pending FDA decision is screened against Drugs@FDA so an approval already granted cannot publish as still pending. The decision dates themselves appear in no structured public feed, so since 2026-09-05 a pending FDA decision is not published at all unless a company filing stating the date has been found.
What the AI does
Supplies the events themselves — company, drug, date, and significance — as well as the prose. It does not supply the trial record an entry is matched to.
How much to trust it
A readout entry that matched a registry record shows "registry-confirmed" with its NCT ID; one that did not shows "unverified" and should be treated as a lead to check. FDA decision dates no longer appear at all without the filing that states them — 18 were withheld on 2026-09-05, which is why these calendars are shorter than the ones that list every rumoured date. The resolvers that would restore them run on a schedule against ClinicalTrials.gov and SEC EDGAR; every entry they return arrives with its source attached.

Educational guides

No primary source queried

/learn/*, /blog/*

Where the facts come from
None. Guides are explanatory writing about how biotech investing works, not reporting on specific events.
What the AI does
Writes the guide.
How much to trust it
Concepts and definitions, AI-drafted and human-reviewed. Any specific figure in a guide should be checked.

What we check before publishing

Four checks run on every batch of generated content. Each one is a real step in the pipeline, not a description of intent.

Schema validation blocks the run

Every generated file is validated against a strict schema. If anything produced in a run fails, the run fails and no pull request opens.

Consistency guards on generated fields

Automated rules catch known model failure modes before publication — most importantly, a PDUFA or approval event is rejected unless the asset is actually at a filed or approved stage, because models invent FDA decision dates for phase 1–2 programs.

A person reviews everything before it publishes

Generated content never publishes automatically. It opens a pull request labelled automated-content with a review checklist, and a human merges it or does not.

Trial readouts are matched to the registry

Before a calendar publishes, every trial-readout entry is searched against ClinicalTrials.gov. A match is only accepted when the drug, sponsor, phase, indication and timing line up and no rival study is close behind — otherwise the entry publishes as unverified rather than being guessed at.

The checks run in CI, not only on someone’s laptop

Every guard on this page is executed on each push and pull request, alongside the type checker, the linter, the build, the crawlability invariants, and a ratchet that fails if the number of content files breaking their schema goes up. Before September 2026 none of them ran automatically, which made them advisory — a guard nobody runs is a comment. Separately, a scheduled job refreshes the site from ClinicalTrials.gov, SEC EDGAR and openFDA; it checks it can reach those hosts before it starts, so a run that changed nothing means nothing needed changing rather than that nothing was checked. No step that reads a primary source is allowed to continue past a failure, and a test enforces that.

Cash, burn and runway come only from SEC filings

Company profiles used to carry financial figures written as prose by a language model ("Healthy balance sheet backed by…", a runway picked from a menu of round numbers). Those fields have been removed and the schema now rejects them. Each company page opens with cash and investments, quarterly operating burn, runway and shares outstanding read from the company’s XBRL filings, each with its date and a link to the filings. Where no filing has been parsed, or a parsed figure failed a consistency check, the page shows no number and says why.

An FDA decision date publishes only with the filing that states it

A trial readout can be checked against ClinicalTrials.gov. An FDA action date cannot be checked against anything except the 8-K or press release in which the sponsor announced it, because the FDA publishes no feed of pending decisions. The search for that filing is scoped to the sponsor and to the two years before the date, and a filing naming a decision that already happened is treated as a different submission rather than as evidence the date moved. Every decision date we could not trace to that filing has been taken off the calendars — not deleted, but held in the open in src/data/pdufa-leads.json, and returned the moment the filing is found. The resolver treats a filing that states a different date as news in its own right, because a PDUFA date that moved is exactly what a reader needs to know.

The PDUFA calendar is built from filings, not from a list of dates

The PDUFA calendar no longer starts from dates someone expects and then looks for evidence. It starts from the evidence: SEC full-text search for 8-Ks that state a PDUFA or target action date. The date is read from the filing text with the sentence that states it, and that sentence is quoted on the decision’s page with a link to the filing. A date earlier than its filing describes a decision already made and is ignored; a filing that names no drug near the date is held for a person rather than guessed; a later filing with a new date replaces the old one and keeps it on record. After the date, the outcome is taken from Drugs@FDA or the sponsor’s own 8-K, and until one is found the decision says so.

An approval already granted cannot publish as pending

Every pending FDA decision on the calendar is checked against Drugs@FDA and the approved label before it publishes, and an entry that presents a first approval the FDA has already granted is dropped. The check is deliberately narrow: a label expansion, a new indication, a move to an earlier line of therapy and a confirmatory study are all normal entries for an approved drug, and the obvious version of this rule flagged ten of them. If openFDA is unreachable, nothing is screened and the run says so rather than reporting a clean pass.

A page cannot advertise coverage it does not carry

Each calendar’s search description is checked against the entries in the file. Five of the six promised FDA advisory committee meetings and carried none, and four claimed to be updated daily; both claims are gone and a test now compares the promise against the contents. Advisory committee dates have no machine-readable source, so any that ship must carry a disclosure URL a person read.

A probability claim shows its prior, or shows none

Where we state a probability of success, it starts from a published phase-transition rate with the source linked, and the factors that push against it are named with their direction. We do not multiply invented weights into a single percentage. The anchor is the BIO, Informa and QLS study of 12,728 phase transitions over 2011–2020: 52.0% of Phase I programmes advance, 28.9% of Phase II, 57.8% of Phase III. Those figures were read off the report itself on 19 September 2026, and the file records the size and SHA-256 of the exact PDF so you can re-download it and check that we read the same document. Any rate we have not opened the source for still shows as a gap rather than a recalled number.

Sponsor track records come from the registry

Where we hold one, a company page shows the sponsor’s full Phase 2 and 3 registry record — how many studies completed, how many stopped early, how many are running — with each stopped study linked. It is reported as counts with the denominator visible, never as a sponsor grade: trials stop for many reasons and the registry often does not say which.

Runway is derived, never asserted

Cash runway is calculated from the disclosed cash position and quarterly burn and displayed with that arithmetic beside it. Where either input is prose rather than a figure, no runway number is shown. Where a stored figure disagrees with its own inputs, the discrepancy is shown. Commercial-stage companies get no runway at all: a company funding itself from product revenue is not counting down to a raise.

We say which profiles we maintain

A company profile is maintained only when we can say something specific and current about it — an upcoming tracked catalyst or a derivable cash runway. Holding the sponsor’s registry record used to count too, until a scheduled job began building one for nearly every sponsor: a claim about a build artifact is not a claim that anyone keeps the page current. Everything else is archived: the page stays live and readable, labelled as no longer reviewed, and excluded from our published profile count. The tiering comes from criteria in code, not a hand-picked list, and can be recomputed.

Every page shows how old it is

Each content type has a review window set by what it depends on — 45 days for a catalyst calendar because guided dates move, 120 for a company profile because companies report quarterly, a year for an educational guide. Under every company and trial title, one line gives the date of the data (the filing period, for company figures) and when the text was last updated, with its age in days once it is past its window. Content with no recorded review date says so rather than looking fresh.

We publish our own accuracy record

Every dated catalyst call we publish is listed at /accuracy with its outcome — hit, slipped, wrong, or not yet checked. An outcome is recorded only against a source you can open; we do not score our own calls from memory. Calls that have come due without being checked are published as a visible backlog rather than quietly ageing out of view.

Advisory committee meetings come from their Federal Register notice

FDA must announce every advisory committee meeting in the Federal Register. The meetings listed on the PDUFA calendar are read from those notices through the Federal Register API: the meeting days from the notice’s dates section (not the comment deadline beside them), the committee from its title, and the drugs and application numbers from its agenda. Each links to its notice, and a meeting about a drug the decision tracker follows is shown on that decision’s page. A committee recommends; the FDA decides.

Cash is compared against the catalyst date

Where a runway is derivable, we compare it against the catalyst date and say whether the cash reaches the readout. Runway is counted from the date the cash was reported, not from today, and a coarse catalyst window is read from its earliest point so a wide window cannot manufacture a warning. It states the arithmetic between two dates and does not predict what a company will do about it.

Per-entry provenance on every catalyst

Each catalyst is graded company-confirmed, registry-confirmed, or unverified, and links out to the record you would use to check it.

How to read a catalyst's provenance badge

Every entry on the catalyst calendar carries one of three grades. They tell you what stands behind the entry, and they are not decoration — most entries today are unverified, and the badge says so.

Company-confirmed

A company disclosure — an 8-K, press release, or investor page — states this event and its timing. The badge links to it. This is the strongest grade, and the only meaningful one for a PDUFA date, which appears in no structured public feed.

Registry-confirmed

The event resolves to a real ClinicalTrials.gov record, linked by its NCT ID, so you can check the trial, its size, its endpoints, and its status. Registry completion dates are sponsor estimates and move often.

Unverified

Compiled by our AI pipeline and not yet matched to a primary source. Most entries are here today. Treat these as a lead worth checking, never as a fact — the links beside the badge are where to check.

What we do not do

  • We do not ingest SEC filings. Cash positions, burn rates, and runway figures on company profiles are AI-drafted and can be stale or wrong.
  • We do not ingest FDA sources. PDUFA dates, advisory committee calendars, and approval decisions are not pulled from FDA.gov, so they cannot be automatically verified.
  • We do not re-verify published content on a schedule. Pages age against a published review window and flag themselves when stale, but nothing refreshes them automatically.
  • We do not carry any market data — no prices, market caps, enterprise values, or short interest — so nothing here is valuation analysis.
  • We do not publish price targets, ratings, or recommendations, and nothing on this site is personalized investment advice.

Limitations

PDUFA dates can be extended or changed by the FDA without public notice. Clinical trial timelines are estimates that shift frequently, and a registry completion date is a sponsor's projection, not a commitment. Language models produce fluent, confident text whether or not the underlying recollection is correct, which is precisely why the provenance grades above exist.

ClinicalInvestor is an educational research tool, not a substitute for professional financial advice. Verify anything you would act on at its primary source. See our editorial policy and disclosures.

Frequently asked questions

Is ClinicalInvestor content written by AI?
Mostly, yes. Trial analyses, company profiles, catalyst calendars, and guides are drafted by a language model and reviewed by a person before they publish. The Trial Translator is the exception: it runs no model at all, and shows you the ClinicalTrials.gov record directly.
Where do catalyst dates come from?
The events are supplied by the language model from its training knowledge, seeded by our own company profiles. Every trial-readout entry is then searched against ClinicalTrials.gov before publication: if it matches a real study confidently, it publishes with that NCT ID and reads "registry-confirmed"; if not, it publishes as "unverified". FDA decision dates cannot be matched this way — they appear in no structured public feed — so they stay unverified until a person attaches the company disclosure that states them.
How reliable are the catalyst dates?
Treat an unverified entry as a lead to check, not a fact. Known failure modes we have caught include tickers that changed at a rebrand, drugs listed as pending approval that were already approved, and readouts listed as upcoming that had already reported. Confirm any date at the company’s own filings before acting on it.
What is being done about that?
Trial-readout matching is now live, and you can see its result on every entry. Still outstanding: ingesting SEC filings so company financials stop being AI-drafted, ingesting FDA sources for decision dates, and re-verifying published pages on a schedule. Until those land, this page tells you plainly which content is sourced and which is not.

Corrections

Found an error? Tell us at corrections@clinicalinvestor.com and we will fix it and say so. If you find a catalyst date that is wrong, that is the most useful thing you can send us.

See it for yourself

The Trial Translator shows you a registry record with no model in the loop. The catalyst calendar shows you our weakest content, labelled as such.