← Lot & AE analysis hubBox plots

Per-lot adverse-event rate distributions Violin plots across 552 known-dose COVID lots — crude vs age-adjusted, reports per million doses

Each row shows how an adverse event’s reporting rate varies from lot to lot. The crude violin (blue) shows the raw per-lot rate distribution; the age-adjusted violin (orange) standardizes for each lot’s recipient-age mix. The width of each violin at a given rate level reflects how many lots cluster near that rate — wider sections mean more lots are concentrated at that value. The black line marks the median (which may sit at the left edge for rare events where most lots report zero). A small "NN% zero" annotation indicates what fraction of lots reported zero events for that term. Age adjustment narrows and tightens much of the spread, indicating that a substantial share of the lot-to-lot variation is associated with the age of the recipients. A residual spread remains that this adjustment does not account for.
Crude per-lot rate Age-adjusted width = lot density, black line = median, "NN% zero" = zero-rate lots included

Totals

0.0010.010.11101001000reports per million doses (log scale)Total AE reportsSeriousHospitalizationsDeaths

By adverse-event category

0.0010.010.11101001000reports per million doses (log scale)Chest pain / CardiacNeurologicalFatigue / MalaiseMusculoskeletalInjection siteGastrointestinalRespiratoryFever / ChillsSleep41% zero41% zeroMental HealthDermatologicalMenstrual / ReproductiveAnaphylaxis / AllergyThromboembolicTinnitus / HearingVisionCognitive48% zero48% zero

Individual adverse events (MedDRA terms)

The most-reported individual terms plus the clinically serious ones. For rarer events many lots report zero, so medians sit near the floor and the violins are narrow — expected for low per-lot counts. Zeros are included as a spike at the left edge so the median line sits inside the violin shape.

0.0010.010.11101001000reports per million doses (log scale)ArthralgiaDizzinessChillsAstheniaFatigueHeadacheErythemaChest painExtra dose administeredChest discomfortAbdominal painRashCoughAnxietyDyspnoeaBack painInjection site erythemaCondition aggravatedPruritusAbdominal pain upperAcute respiratory failureHypoaesthesiaAgeusiaAbdominal discomfortInjection site painPain in extremityBlood pressure increasedDiarrhoeaBody temperatureDeathBell's palsyAnaphylactic reactionCerebrovascular accidentDeep vein thrombosis42% zero42% zeroMyocarditis87% zero87% zeroPericarditis90% zero90% zeroGuillain-Barre syndrome82% zero82% zeroPulmonary embolism74% zero74% zeroThrombocytopenia94% zero94% zeroSeizure50% zero50% zeroMyocardial infarction83% zero83% zeroCardiac arrest61% zero61% zero
Adverse eventCrude median /milCrude IQRAge-adj medianAge-adj IQRIQR shrink
Arthralgia21.089.08–56.4430.3519.41–38.882.4×
Dizziness20.335.80–48.6825.0613.82–34.482.1×
Chills17.546.17–58.4224.9214.65–40.632.0×
Asthenia14.937.32–40.1420.9914.47–26.262.8×
Fatigue7.652.93–28.5912.276.64–20.051.9×
Headache6.622.07–20.669.985.07–15.901.7×
Erythema5.782.11–14.767.234.44–12.551.6×
Chest pain5.751.75–9.955.833.52–8.201.8×
Extra dose administered5.442.90–9.997.552.19–14.470.6×
Chest discomfort5.371.46–10.636.073.29–8.571.7×
Abdominal pain5.111.84–10.716.123.95–8.352.0×
Rash4.841.47–11.666.113.15–8.212.0×
Cough4.611.65–9.745.643.39–7.741.9×
Anxiety4.571.26–12.395.812.70–8.302.0×
Dyspnoea4.461.29–10.235.452.68–7.541.8×
Back pain4.401.57–10.695.913.15–7.861.9×
Injection site erythema4.191.49–12.185.082.52–14.070.9×
Condition aggravated4.161.57–7.674.512.63–6.331.6×
Pruritus4.011.02–9.904.932.44–7.351.8×
Abdominal pain upper3.941.09–9.424.962.20–7.011.7×
Acute respiratory failure3.911.48–7.384.602.08–8.261.0×
Hypoaesthesia3.660.78–8.524.221.82–6.441.7×
Ageusia3.000.83–8.664.041.71–6.081.8×
Abdominal discomfort2.951.05–8.914.411.96–6.401.8×
Injection site pain2.821.01–7.263.862.14–5.951.6×
Pain in extremity2.800.73–9.104.371.52–6.731.6×
Blood pressure increased2.370.68–6.302.951.13–4.861.5×
Diarrhoea2.340.67–7.663.411.26–5.941.5×
Body temperature2.260.26–8.743.780.75–6.821.4×
Death1.880.33–5.812.890.82–5.271.2×
Bell's palsy1.390.00–4.591.880.00–3.191.4×
Anaphylactic reaction0.910.00–2.471.150.00–2.131.2×
Cerebrovascular accident0.750.00–2.420.990.00–1.961.2×
Deep vein thrombosis0.560.00–1.520.490.00–1.301.2×
Myocarditis0.000.00–0.000.000.00–0.00
Pericarditis0.000.00–0.000.000.00–0.00
Guillain-Barre syndrome0.000.00–0.000.000.00–0.00
Pulmonary embolism0.000.00–0.300.000.00–0.241.2×
Thrombocytopenia0.000.00–0.000.000.00–0.00
Seizure0.000.00–1.020.000.00–0.991.0×
Myocardial infarction0.000.00–0.000.000.00–0.00
Cardiac arrest0.000.00–0.780.000.00–0.571.4×
Read carefully. Per-lot rates use the 552 lots with known dose denominators only (imputed per-lot doses are unreliable). Passive VAERS reporting rates — not incidence, not causal. Age adjustment is indirect standardization on the age mix of reporters only; it cannot adjust for comorbidity, care setting, or era-specific reporting intensity, so a residual spread remains. A wide crude violin reflects a range of factors — differing recipient populations among them (see the rollout page) — and is not by itself an indication that a lot is unsafe or that it is safe.

Data: VAERS 2006–2024 lot cases × openVAERS doses. Reproducible: compute_ae_violins.py + build_ae_violin_page.py. Violin shapes via Gaussian KDE on log-transformed rates (zeros included at XMIN). Passive surveillance; hypothesis-generating only.

Part of the Open Source Medicine Foundation Network

Open Source Medicine Foundation

Home of the OSMF network — open-source pharmacovigilance tools and evidence-based medicine resources.

Research Tracker

Track peer-reviewed literature on vaccine safety, pharmacovigilance, and post-market surveillance.

SpikeProtein.site

Comprehensive resource on spike protein biology, biodistribution, and clinical implications.

VitalScan4PACVS

Decentralized trial for PACVS (post-acute COVID-19 vaccination syndrome).

PACVS Research Summit

Annual summit convening researchers and clinicians studying post-acute COVID-19 vaccination syndrome.