FDA Advisory Committee Votes
Know which drugs face an expert panel next, and how those panels have voted before. Every FDA advisory committee meeting on a drug or biologic since 2024, one row per vote question, with the yes/no/abstain tally read from the official minutes, the product-favorable side resolved, and announced meetings carried forward as a calendar.
Put the next catalyst on the calendar.
meeting_status = scheduled rows are meetings FDA has announced but not yet held, dated by date and named by drug_name.
Read the vote in the right direction.
favorable_answer names the product-favorable side and vote_outcome_favorable says whether it won, so a yes that is bad news cannot fool a screen.
Build the base rate before you size the bet.
vote_yes, vote_no, vote_abstain and vote_margin across committee_abbrev and meeting_topic_type give you how often panels side with the product.
Which drugs are going in front of an FDA expert panel in the next few months, and how often has that panel sided with the company in the past? Rank them and tell me which ones look risky.
Your agent translates this into the forward meeting calendar, the committee and topic filters, and the historical win rate for the product-favorable side.
The panel that votes before the FDA decides.
An FDA advisory committee (an AdCom) is a panel of outside experts the FDA convenes to vote on questions about a drug or biologic before the agency makes its own decision. Each row here is one of those vote questions at one meeting, covering every drug and biologic meeting since January 2024.
Vote questions are worded in both directions, so a yes is not always good news for the product. One question asks whether the benefit-risk profile is favorable; the next asks whether use should be restricted. The dataset resolves the polarity: favorable_answer names the product-favorable answer, and vote_outcome_favorable says whether that side won (1), lost (0), or the outcome is undetermined (null, which covers ties and questions with no product-favorable side, such as vaccine strain selection).
Each row includes:
- The verbatim question the panel voted on, and where it fell in the meeting's order.
- Yes, no, and abstain counts read from the official minutes, with the signed margin.
- Which answer was the product-favorable one, and whether that side won.
- The drug or biologic, its sponsor, the indication, and the NDA or BLA identifiers as stated.
- Which committee sat, which FDA center owns it, and whether it was a joint meeting.
- Links to the meeting page, the minutes PDF, the transcript, and the pre-meeting questions document.
An advisory committee vote is advice, not the FDA's decision: the agency usually follows its panel, and sometimes does not. The numbers also arrive late. FDA publishes official minutes months after a meeting, so a meeting held last week is a real row that sits with no tally until they post.
A dated binary catalyst with a checkable base rate.
AdCom votes are among the cleanest scheduled binary catalysts in equities. The date is public weeks in advance, the outcome is a countable vote, and a single-product biotech can move violently on the result. Base rates are the part most people guess at: panels do not split evenly, and they split differently by committee and by topic type.
The result is also known long before the FDA acts. How a name trades through that gap, conditioned on the tally and the margin, is the study this dataset was built to feed, against your own price and decision data.
- Build a forward calendar of AdCom meeting dates as scheduled catalysts for biotech positioning
- Compute base rates of product-favorable outcomes by committee, topic type, or vote margin
- Study post-vote drift between the AdCom result and the eventual FDA action
- Screen for repeat visits: assets that came back to a committee, via revisited_flag and the prior/next meeting linkage
- Verify any tally against the linked minutes PDF before sizing a position on it
Read out of the minutes, re-labeled when they post.
Everything comes from FDA.gov. A daily crawl of the advisory committee calendar and the committee archives discovers meetings, announced ones included, and tallies are read from the official minutes PDFs the agency publishes after each meeting.
Rows re-label themselves when the minutes land, and again if FDA revises or adds materials, so poll updated_since to catch changes to meetings you already pulled.
The fields that turn a tally into a signal.
The headline fields below are a subset. Every field, with exact types and semantics, is documented in the API reference.
| Field | Type | What it tells you |
|---|---|---|
| date | string | Meeting start date. All date filters apply to this |
| committee_abbrev | string | Which committee voted (ODAC, VRBPAC, and so on) |
| meeting_status | string | held, scheduled, postponed, or cancelled. Scheduled rows are the forward calendar |
| question_voted | string | The verbatim question the panel voted on |
| vote_yes | integer | Yes votes, read from the official minutes |
| vote_no | integer | No votes, read from the official minutes |
| vote_abstain | integer | Abstentions, read from the official minutes |
| vote_outcome_favorable | integer | 1 = the product-favorable side won, 0 = it lost, null = undetermined (ties, strain votes, no tally yet) |
| drug_name | string | The drug or biologic on the table |
| sponsor_company | string | The sponsor, as stated in FDA materials |
| fda_decision_date | string | The FDA decision date when the materials state it (currently empty by design; AdCom materials predate the decision) |
One call returns a committee's whole vote history.
One key works across the REST API, the hosted MCP server, and this dashboard. Every response is JSON with a { count, data } envelope.
import requests
url = "https://api.alphanume.com/v1/biotech/advisory-committees"
params = {
"committee": "ODAC",
"date_gte": "2024-01-01",
"date_lte": "2025-12-31",
"api_key": "alp_abc123"
}
r = requests.get(url, params=params)
print(r.json())curl "https://api.alphanume.com/v1/biotech/advisory-committees?committee=ODAC&date_gte=2024-01-01&date_lte=2025-12-31&api_key=alp_abc123"{
"count": 1,
"data": [
{
"record_id": "september-26-2024-meeting-oncologic-drugs-advisory-committee-meeting-announcement:1",
"meeting_key": "september-26-2024-meeting-oncologic-drugs-advisory-committee-meeting-announcement",
"date": "2024-09-26",
"meeting_status": "held",
"committee_abbrev": "ODAC",
"committee_name": "Oncologic Drugs Advisory Committee",
"center": "Center for Drug Evaluation and Research",
"meeting_topic_type": "product_specific",
"vote_seq": 1,
"question_voted": "Is the risk-benefit profile of PD-1 inhibitors favorable in first-line HER2-negative, microsatellite-stable gastric/GEJ adenocarcinoma with PD-L1 expression < 1?",
"vote_yes": 2,
"vote_no": 10,
"vote_abstain": 1,
"vote_total_votes": 13,
"vote_margin": -8,
"favorable_answer": "yes",
"vote_outcome_favorable": 0,
"vote_evidence": "minutes_tally",
"drug_name": "PD-1 inhibitors",
"asset_key": "pd1inhibitors",
"indication": "first-line HER2-negative, microsatellite-stable gastric/GEJ adenocarcinoma",
"fda_decision_type": "not_stated",
"fda_decision_date": null,
"materials_url": "https://www.fda.gov/advisory-committees/advisory-committee-calendar/september-26-2024-meeting-oncologic-drugs-advisory-committee-meeting-announcement",
"minutes_url": "https://www.fda.gov/media/184545/download",
"last_updated": "2026-08-24 09:58:12"
}
]
}What this data does not claim.
- Filtering vote_outcome_favorable to true and to false will not add up to the row count, because undetermined outcomes are null rather than either.
- Meetings with no tally are kept as vote_seq = 0 placeholder rows so the coverage denominator stays intact. Pass has_tally=true when you want counted votes only.
- The FDA decision fields are filled only from the meeting materials, which are written before the decision exists, so they are empty today.
- question_voted is capped at 300 characters, so a long question can end mid-sentence. questions_url has the full pre-meeting text.
- meeting_summary is a model-written sentence of context, not an audited field. The tallies and the source links are the parts to build on.
Asked by researchers, answered plainly.
Are upcoming FDA advisory committee meetings included?
Yes. Meetings FDA has announced but not yet held carry meeting_status = scheduled and no tallies. Filter on that value to pull just the forward calendar.
Why do some rows have no vote counts?
Three reasons, and vote_evidence names which: the minutes are not posted yet, the agenda was discussion-only or no vote was taken, or the meeting never happened. Postponed and cancelled meetings stay in the data rather than vanishing, so a screen can see what got called off.
Which FDA committees does the dataset cover?
Every committee that meets on a drug or biologic, across CDER, CBER, and the Office of the Commissioner, so ODAC, VRBPAC, PCAC and the rest all appear. Joint meetings list every panel in all_committees, and filtering by an abbreviation also matches meetings where that committee sat second.
Does the dataset map meetings to stock tickers?
No. sponsor_company and drug_name are recorded as FDA states them, and asset_key is a match key for grouping one asset's appearances, not a security identifier. Joining to tickers is your side of the work.
Free to evaluate. Full history with Pro.
A free key returns a rolling 30-day window of delayed data, enough to test the workflow end to end. Pro unlocks the full point-in-time history, real-time access, and every standard dataset as it launches.