Kennedy–Miller VAERS Review Meridian North · six-axis corpus

A claim-navigator for the removal of Miller (2021) "Vaccines and sudden infant death" from Toxicology Reports. Neutral on safety · strong on method · method fully open.
passive surveillance — reports are unverified — a report is not causation — reporting rates are not incidence rates — days-to-onset reflects reporting behaviour, not a hazard window
A navigator, not medical advice.
This surfaces facts and the questions to bring to a clinician — it does not diagnose and it does not decide. If you are asking about a real person with a current symptom or an urgent give / skip / delay decision, contact your doctor. For an infant who is unresponsive, struggling to breathe, or has had a seizure, call emergency services.

The case in one screen

On 2026-05-26 Elsevier removed Neil Z. Miller's 2021 paper, which read a clustering of infant deaths in the days after vaccination (VAERS, 1990–2019) as a vaccine–SIDS signal. On 2026-06-11 Secretary Kennedy demanded a transparent account of that removal. This corpus holds both contested objects — the paper and the manner of its erasure — graded, caveated, and traceable.

CENTRAL METHOD FACT
No denominator
VAERS has no count of vaccinated infants who did not die. A count of deaths-after-shots cannot become a rate, so it cannot be compared to background mortality.
HHS OWN DATA GUIDE
Stimulated reporting
"…more serious and unexpected medical events are probably more likely to be reported…especially when they occur soon after vaccination, even if they may be coincidental."

The two questions, kept separate

Did Miller's inference fail as method? Yes — causal inference from denominator-free passive data with a built-in temporal bias. Should the removal still be scrutinised? Also yes — a two-sentence notice that asserts a flaw without showing the analysis, the reviewers, or their conflicts fails the COPE "state your reasons" standard. The same transparency principle generates both positions; they do not conflict.

HOW — the days-to-onset sample pull

We ran Miller's own metric — share of reports whose onset falls in the first days after vaccination — on the full Meridian North VAERS corpus (1990–2026, n=1,989,028) and put the fatal-infant slice side by side with controls. If the clustering also appears where a death-hazard window is implausible, the cluster is an artifact of reporting, not a fingerprint of harm.

Read the rows together: the clustering is not strongest in the fatal-infant slice the SIDS argument needs — it is stronger in the all-infant population (mostly non-fatal, no death-hazard window) and strong across the entire database. A causal hazard cannot explain why trivial non-fatal reports cluster harder against the shot date than infant deaths do. Reporting behaviour can. The adult-death control is least clustered, with a long multi-month tail — same instrument, same metric, opposite shape, driven by who files and when.

Symmetry: this table also cannot prove vaccines are safe for infants. It proves only that this instrument cannot adjudicate the causal question in either direction. That belongs to a design with a real denominator and matched ascertainment.

Read-the-chart caveats (so the figure isn't itself misused)
Bin width is uneven. Days 0–7 are one-day bins; 8–14, 15–30, 31–90, 91+ are wider. So a single cohort's bar heights are not a per-day hazard curve — the wide late bins accumulate many days. The valid read here is the comparison across cohorts within the same bins, which is width-invariant: every series shares identical bins, so the fact that non-fatal infant reports cluster harder at day 0–2 than infant deaths cannot be a bin-width effect.
Day-0 heaping. Day-0 mixes genuinely same-day onset with date-coarsening (same-day minor reactions, and any record where onset was entered as the vaccination date). Note the shape difference this produces: all-infant reports peak hardest at day 0 (the same-day-reaction signature), while infant deaths peak at day 1, not day 0 — consistent with "found unresponsive the next morning," which is also when background SIDS peaks regardless of vaccination.
What would turn this into a finding: observed-vs-expected against background infant mortality by exact day of age, a denominated comparator (unvaccinated / differently-scheduled), and replication in active-surveillance linked data (VSD/BEST). None are visible in spontaneous-report timing alone. Hypothesis-generation, not causation.

v2 — Observed vs Expected: the age confound

In plain language: these babies died at the ages when SIDS naturally peaks — which is also when the shots are scheduled. Timing alone cannot separate "the vaccine caused it" from "a SIDS-aged death that followed the visit the calendar put there." That is a statement about what this data can't show, not a claim that vaccines are safe or unsafe.

The day-to-onset chart shows when deaths are reported relative to the shot. This panel asks the deeper question three independent reviews all pointed to: at what age do these infants die? Because if the deaths fall at the ages where SIDS already peaks, then "deaths cluster after vaccination" may be nothing more than "vaccines are scheduled at the age when infants are most likely to die of SIDS anyway."

The confound, in one sentence. The US primary vaccine series is given at 2, 4, and 6 months. Background SIDS peaks at 2–4 months, with ~90–95% of cases before 6 months (NICHD/CDC). In this corpus, 85.8% of infant deaths occur before 6 months and 74.5% fall in the 2–5 month window — the deaths are SIDS-aged, sitting exactly on top of the schedule. The vaccination calendar and the natural SIDS curve are confounded by design: you cannot separate them with timing data alone, because they point at the same months.

Read it honestly, both ways. That the deaths are SIDS-aged does not prove vaccines are innocent — a real effect could hide inside the same window. And the fact that this corpus is even more peaked at 2–3 months than background SIDS is not a 2× "excess": VAERS has no denominator, and the 2-month visit is the single densest, most-reported vaccination event, so reporting concentrates there. Same lesson as v1: timing and age both coincide with the schedule, so neither can adjudicate cause.

What an "expected" actually requires

A true observed-vs-expected needs the one thing VAERS structurally lacks — a vaccinated denominator by exact day of age — so deaths-after-vaccination can be compared to background mortality at that age. The design that gets there without a population denominator is the self-controlled case series (each infant is their own control; risk windows vs control windows within the same child). That is where this question is answerable. It is not answerable in spontaneous-report timing, in either direction.

Bin-width-corrected onset (per-day rate)

Addressing the uneven-bin critique: dividing each bucket by its width gives a per-day rate. Infant deaths peak at day 1 (28.7%/day), not day 0 — consistent with "found the next morning." All-reports peak at day 0 (47.2%/day) — the same-day minor-reaction reporting signature. The cross-cohort comparison from v1 is unchanged, because every cohort shares the same bins. Full table in data/onset_perday_normalized_v2.csv.

kmv-011 — the denominator, gathered: US vs Nordic SUID

This is the comparison VAERS couldn't make. A denominated, like-for-like SUID rate — deaths per 100,000 live births — from one source of record (WHO Mortality Database) so the US and five Nordics are coded the same way. SUID = ICD-10 R95 (SIDS) + R99 (unknown) + W75 (ASSB), the composite that cancels the SIDS-vs-undetermined diagnostic shift.

The gap, and what it is not. The US composite runs flat at ~86–101 per 100k across the full span (1999–2023); the Nordics run ~15–55. The US is roughly 2–5× higher, and it does not decline. But the US and Nordics run similar vaccine schedules, so a 2–5× gap cannot be schedule-driven — it tracks sleep-environment practice, death-investigation/certification systems, and the classification differences this composite only partly tames. Even with a real denominator, an ecological cross-national rate cannot isolate vaccination. Same lesson as the VAERS tab, one level up: a denominator answers "what's the rate," never "what caused it." The design that can is the within-country self-controlled case series.

Completion + an honesty the gather flagged itself. The US line is now complete 1999–2023: deaths come from WHO MDB; the live-births denominator is WHO through 2005 and an NCHS-natality join from 2006 (the gather refused to fake it, flagged it as recorded-absence, and we filled it from the source of record — a two-source join, labelled in the CSV). The US is also a clean in-data example of the diagnostic shift: SIDS (R95) fell from ~2,600 to ~1,400 while "unknown" (R99) and ASSB (W75) rose — yet the composite stays flat, which is exactly why we compare the composite and not the SIDS label. Denmark shows the same shift more violently (R95 6 → R99 78 around 2008–2010), spiking its composite — visible only because we kept the per-cause split. We show the artifact rather than smooth it.

kmv-012 — "but are the batches the same?" (the lot question)
Asked of any cross-national or cross-lot comparison, and the honest answer is no, at two levels. Across countries: the products and schedules differ — the US starts hepatitis B at birth and reaches ~30 doses by age one; the Nordics largely run a 3-5-11-month schedule with fewer antigens, and Europe uses hexavalent combinations the US doesn't. The same physical batches aren't distributed across these markets, and lot numbering isn't harmonized — a US "lot" is not a Danish "lot." Within one country: VAERS reports the number of reports per lot but not the doses administered per lot; lot sizes run from thousands to millions, so a lot with more reports is almost always just the bigger, longer-circulating lot. FDA itself says lots are too variable in size to set any report-count trigger. A "hot lot" ranked by raw VAERS counts is the same numerator-without-a-denominator error, one grain finer — genuine bad batches are caught by manufacturing QC and targeted recall, not by counting reports. So batch-level comparison is invalid in both directions, which is one more reason the cross-national gap above cannot be pinned on any specific product or batch.

source: WHO Mortality Database (gathered 2026-06-16, kind-gatherer discipline) · data/suid_crossnational_ok_rows.csv · rate is not cause · lot caveat: reports-per-lot ≠ doses-per-lot

kmv-013 — the outcome space & time-to-effect: how not to be fooled, in either direction

This is a navigator, not medical advice.
It surfaces facts and the questions to take to a clinician. It does not diagnose, and it does not decide for you — and it cannot assess your situation. Please take any real medical question to your doctor — especially a current symptom or an urgent give / skip / delay decision. For an infant who is unresponsive, struggling to breathe, or has had a seizure, call emergency services now. The corpus helps you prepare the conversation; it cannot replace it.

SIDS is one outcome. Honest vaccine safety is about the whole outcome space — and that space, together with the clock each event runs on, is exactly where both alarm and false reassurance get manufactured. Two methodological pitfalls live here — easy to fall into honestly, and easy to exploit on purpose. The page names them so a reader can see them in action, used by either side.

Pitfall 1 — the size of the list

Every adverse event is catalogued in a standard dictionary, MedDRA — roughly 26,000 "preferred terms" across 27 organ-system classes — and every VAERS report is coded into it. A manufacturer's package insert (Section 6) lists events in two very different bins, and conflating them is the whole error:

6.1 Clinical-trial experience  controlled
Events seen more in the vaccine arm than in placebo. It has a denominator and a comparison group. A short list, and it means something.
6.2 Post-marketing experience  spontaneous
The long, alarming list — voluntary reports, carried for transparency, under the required legal disclaimer that "it is not always possible to reliably estimate their frequency or establish a causal relationship." This is the VAERS no-denominator problem, printed on the label. Listing ≠ caused.

Why the length is the trap. Test vaccine-versus-control across ~26,000 outcomes and, by chance alone, about 5% — well over a thousand — will cross "significant" at p<0.05 even if nothing is wrong. So cherry-picking the single scariest event (what a SIDS-only or "hot-lot" analysis does) is guaranteed to find a signal; a defender can just as easily pick a reassuring one. The honest method tests the whole space against a denominated control with multiplicity correction (false-discovery-rate) and reports only what survives. The project's own method note did exactly this on court-released trial data: 22 organ-system comparisons, corrected — and none of the 22 apparent differences held up (every one, including an eye-catching 2.25× cell, dissolved into "could be chance" once you account for testing 22 things). "None held up" here is the reassuring direction: zero false alarms survived the honest filter — not a claim of perfect safety, just nothing standing out beyond chance in this trial.

In plain language. Imagine firing a shotgun at a barn, then painting the target around the tightest clump of pellet holes. With enough pellets, some always clump together by luck — so "look, a bullseye!" proves nothing. Checking 26,000 possible reactions is the same: by chance alone, more than a thousand will look "significant" even if the shot does nothing at all. Pick the scariest one afterward and you've simply drawn the target around random noise. (The mirror-image move paints the target on an empty patch to claim "perfectly safe.") The honest fix is to judge all 26,000 together, raise the bar to account for how many you checked, and keep only what still stands — and when researchers did exactly that on real trial data, every alarming-looking result vanished.

Pitfall 2 — the clock (time-to-effect)

There is no single "risk window," because each event runs on its own biological clock. Whichever window you pick decides what you can find — so it has to be pre-specified from a known mechanism, and the observed latency must match it. An event at day 30 cannot be anaphylaxis; the mechanism forbids it. A death at day 2 is at least consistent with a cytokine mechanism — consistency, not proof.

Latency classPlausible windowMechanismEstablished example
Immediateminutes–hoursIgE / mast-cellAnaphylaxis
Acute~1–7 daysinflammation / cytokinesFebrile seizure; mRNA myocarditis (~2–4 d)
Sub-acute~3–7 daysmechanical / immuneRotavirus intussusception
Weeks~1–6 weeksautoimmune / neuroGuillain-Barré after influenza vaccine
Delayed / "dormant"weeks–monthsautoimmuneNarcolepsy after Pandemrix (H1N1)

The two pitfalls multiply. ~26,000 outcomes × several plausible windows each is the "garden of forking paths": free to choose both what outcome and when you look, an analyst can produce essentially any result they want. The single honest standard — the one that ties this whole kit together — is: pre-specify the outcome, the comparator, the denominator, and the mechanism-justified window, then test against a real control with multiplicity correction. Everything outside that is forking paths.

And it cuts both ways. Just as window-hunting manufactures false alarms, a window that is too short hides a real delayed effect: narcolepsy after Pandemrix took months to surface, and a 7-day analysis would have certified it "safe." Absence of an acute signal is not absence of a delayed one — that is a blind spot, and we name it rather than read silence as safety.

What this corpus can show now — and the honest gap

The VAERS data already in hand carries the vaccination dates, onset dates, ages, and MedDRA terms needed to display the breadth of reported events by organ system and the days-to-onset distribution for each — labelled reports-not-causation, never a rate. What it cannot supply is the denominator per event (background incidence by age) and per-window dose counts; those require linked active-surveillance data (VSD / BEST) and remain the standing named gaps. So this tab is the map of the outcome space and the rules for reading it — not a verdict on any single event, which this data cannot give.

method: pre-specified outcome + comparator + denominator + mechanism-window, FDR-corrected · reports are not causation · only a clinician concludes for a person

The finding — why the public data won't let you answer the question

Walk back through this kit and the same shape repeats at every level: each public dataset hands you one half of what a fair comparison needs — and never the matching half.

DatasetWhat it gives youWhat it's missing
VAERSa numerator — reports of eventsthe denominator — how many were vaccinated. Counts, never a rate.
Cross-national mortality (WHO)a denominator — live birthsa clean numerator — classification and death-investigation differ, and schedules differ country to country. A rate, but apples to oranges.
Lot / batch recordsreports per batchdoses per batch. A numerator with no denominator, again.

Put the pieces on the table and they refuse to fit. The numerator and the denominator sit in different buildings; the batch counts and the batch sizes sit in different buildings; the schedules don't line up. Anyone can hold up a single piece and make it say whatever they like — and no one can honestly assemble the whole.

We make no claim that anyone arranged this. Whether by design, by inertia, by privacy law, or by institutional habit, the effect is the same: the openly available data is structurally un-joinable, so the public cannot audit the question for itself. That is the finding — and it is almost embarrassingly plain. The problem isn't a missing study. It's a missing join.

The fix isn't hypothetical — most of it was already built

The hardest half — completing the numerator — was solved in 2011. An AHRQ-funded project, ESP:VAERS (Harvard Pilgrim Health Care / Lazarus), built software that automatically detects vaccine adverse events from electronic health records and files them to VAERS — no thirty-minute form, no dependence on who happens to have the time. It worked: it flagged a possible reaction in about 2.6% of vaccinations and confirmed that fewer than 1% of events reach the system today. The planned head-to-head evaluation never ran — by the project's own final report, "restructuring at CDC and consequent delays in decision-making" meant it could not move forward — and the system was set aside. So the most important piece of the fix has existed, proven, for over a decade. It is sitting on the shelf, in the open record, waiting to be picked back up.

That is the encouraging part: the answer isn't out of reach because it's impossible — much of it is already done, and the rest is buildable. So we'll build it.

We can build it — a brick at a time, in the open.
Build the thing the pieces refuse to form on their own:
  • a denominator that is public and linkable — doses by age, by time, by lot;
  • a numerator that is complete and low-friction — one-click reporting from the medical record, so the count stops depending on who has thirty spare minutes;
  • comparisons that respect the schedule — within-person, self-controlled designs, not apples-to-oranges across borders;
  • the whole thing open, hash-verified, and privacy-preserving — so anyone can re-run it, and no one has to surrender their identity to take part.

We don't need permission to start. Each piece we can build openly — one denominator joined, one chart properly denominated, one self-controlled design done right — is a brick. We'll lay them in public, hash-verified, a little at a time, and pick the 2011 work back up where it was left. The day an institution wants to help — or to take it over entirely — the foundation is already poured.

That ask is non-partisan: a better instrument serves whoever turns out to be right. Until it exists, the honest posture is the one this kit holds throughout — show every number with the half it is missing named out loud, refuse the verdict the data cannot support, and point to the design that finally could.

A closing note, in good humour: this conclusion is where an enormous amount of machine analysis came to rest. The machine's honest verdict is that the data will not let the machine — or you — reach a verdict. The remedy was never more computation; it is connecting the data, in the open. The instrument is what's missing, not the answer.

What if we resurrected the 2011 fix — modern style

ESP:VAERS proved the core in 2011: a computer can read the medical record, spot a likely vaccine reaction, and file the report automatically. It was shelved before its evaluation. Here is what that same idea becomes with the tools of 2026 — and how it can be rebuilt in the open, a brick at a time, by anyone, starting now.

The modern design

1 · Complete the numerator
Auto-detect events from the health record through today's standard APIs (FHIR) — one-click, even zero-click reporting. This is the 2011 core, now far easier, and it ends the "who has thirty minutes" problem that keeps reporting under 1%.
2 · Add the sensor layer, carefully
Wearables and monitors can enrich the signal — but only behind the two gates below, and always labelled reports-not-rates. More data is not less bias; it is bias at machine speed unless the discipline rides with it.
3 · Code honestly, by machine
Model-assisted MedDRA coding under the extraction-gate rules: constrained output, every field grounded in a source span, unverified-by-default. The machine proposes; the gate disposes.
4 · Join the denominator
Link doses by age, time, and lot from immunization registries — so a count finally becomes a rate. This is the half VAERS structurally lacks.
5 · Bake in the honest method
Self-controlled case series with pre-specified, mechanism-justified windows and multiplicity correction — so the analysis cannot be cherry-picked, in either direction.
6 · The two gates
Truth-of-path (hash-chain provenance — anyone can re-run it) and identity protection (privacy-preserving and sovereign — no one surrenders their self to contribute). Open and replayable end to end.

The build — a brick at a time

We don't need permission, and we don't need it all at once. Each brick is small, open, and hash-verified; together they rebuild the instrument.

BrickWhat it isStatus
Denominator joinUS vs Nordic SUID per live birth (kmv-011)laid ✓
Timing frameworkdays-to-onset + latency rules (HOW · outcome-space)laid ✓
Event-space mapa MedDRA-by-organ-system pull from the corpusnext
Honest-test demoa self-controlled case series on open dataqueued
Dose denominatordoses by age / time from IIS & NISqueued
Auto-report prototypethe 2011 EHR→report core, modern (FHIR)the goal

Until someone with the mandate and the keys wants to help — or to take it over entirely — we lay the bricks in public. The foundation, and the 2011 blueprint, are already on the record.

a navigator, not medical advice · open · hash-verified · privacy-preserving · the instrument is buildable

What Miller actually argued — and why the rebuttal still doesn't hold

Contested ≠ dismissed. This kit does not caricature the paper. Miller anticipated the reporting-bias objection and built a specific defense. We represent it fairly, reproduce his numbers, and then show why the inference still cannot bear causal weight — in either direction.

His actual position (not the strawman)

Miller's claim was hedged, not absolute: "While the findings in this paper are not proof of an association between infant vaccines and infant deaths, they are highly suggestive of a causal relationship." He proposed a susceptibility-subset model (only predisposed infants at risk) and three mechanisms (inflammatory cytokines in the infant medulla; aluminium adjuvant crossing the blood–brain barrier; multi-vaccine synergistic toxicity). Headline numbers (All-Mortality, N=2605): 58% of deaths within 3 days, 78.3% within 7 days; the day-after-vaccination count (760) exceeded the day-of count (440).

His central defense — the "incubation period" argument

Miller argued a pure reporting artifact should peak on the day of vaccination (maximum temporal salience) and decline. Instead his data show fewer deaths on the day of vaccination (16.9%) than the day after (29.2%) — which he read as a biological incubation period, with cytokines peaking 2–4 days out. He concluded: "reporting bias is unlikely to be entirely responsible for the clustering." On the missing denominator he was explicit — VAERS has none, <1% of events are reported — but argued it wouldn't be decisive, since susceptibility is individual and >90% US coverage leaves almost no unvaccinated baseline.

We reproduce his numbers — that's not the disagreement

Our independent pull (VAERS 1990–2026, infant <1yr deaths) lands within ~3 points of Miller: 55.3% within 3 days (he: 58%), 77.0% within 7 days (he: 78.3%), day-after peak 2.0× the day-of count (he: 1.7×). We do not dispute the arithmetic or the day-after peak. We dispute what it means.

Why the inference still fails — three honest rejoinders

1 · The day-after peak is predicted by circadian discovery
SIDS is a sleep death, overwhelmingly discovered in the morning. Vaccinations happen in daytime clinic hours. An infant vaccinated midday who dies in the following night's sleep is found the next morning — the day after the shot — with no biology required. Miller's rebuttal only excludes the narrow case where bias peaks on the calendar day-of; it does not exclude a "soon-after" reporting window or the morning-discovery pattern, both of which produce his day-2 peak.
2 · The age confound survives it entirely
Incubation is an hours-to-days claim. The age data is a months-scale fact: 85.8% of these deaths are SIDS-aged (<6 months) and the 2/4/6-month schedule sits on the SIDS peak. Granting a day-2 peak says nothing about why the deaths concentrate at the exact ages SIDS already owns. (See the v2 tab.)
3 · His denominator stance is unfalsifiable
Miller wrote that even if observed deaths equalled expected, "this would not be evidence that specific deaths occurring post-vaccination are not causally related." A hypothesis that a null result cannot disconfirm is not a testable safety signal. His "expected" is also just the reported deaths spread uniformly over 60 days — an internal strawman, not a population baseline.

The honest verdict is unchanged. VAERS can generate this hypothesis; only a denominated cohort or a self-controlled case series can test it. Miller's strongest argument, fully granted, narrows the reporting-bias explanation but does not reach the age confound or supply the denominator — so the causal claim remains unsupported, and so would any confident claim of safety. Removal of the paper still owes the same transparency it failed to give.

Query the corpus

What the coloured flags mean — they rate each source's evidence and method status, not how dangerous a vaccine is. "WARN" marks a problem with a claim's method, not a warning about a shot. Every card below also says, in plain language, the specific reason for its flag.
WARN active method conflict   CAUTION plausible, but limited / unresolved   WATCH hypothesis-generating — monitor   LOW low-controversy / authoritative   LORE traditional / anecdotal — recorded, not elevated

Mechanism crossroads

Co-occurrence of mechanism nodes across the indexed records. The dense node is exactly the methodological fault line.

Reshape a question

Turn a lay question into a clinician query, a research string, and a guard-railed LLM prompt.

Not in corpus?

Two paths when a query has no hit: a deeper index sweep, or a portable guard-railed prompt you can carry to any LLM.

Path A — deeper sweep
Expand to the full VAERS 1990–2026 strand corpus and the cross-system disproportionality diagnostics (labeled reporting-behaviour, never risk). Name the gap explicitly; absence of a field is a blind spot, not a negative finding.
Path B — guard-railed LLM prompt

SHA-256 verifier

Milspec replayability: paste a file's text (or load it) and confirm its hash against the corpus MANIFEST. Computation runs locally in your browser via SubtleCrypto.

…or paste text:

Expected hashes are published in MANIFEST_SHA256.txt shipped alongside this webform.