The K-12 School Shooting Database is the open dataset of gun violence at United States schools maintained by David Riedman at k12ssdb.org. Riedman began the work in 2018, after the Marjory Stoneman Douglas High School shooting, as thesis research at the Naval Postgraduate School’s Center for Homeland Defense and Security, on the observation that no agreed count of school shootings existed. Its defining choice is a deliberately broad inclusion rule: every incident in which a gun is brandished with intent to harm, is fired, or a bullet hits school property, regardless of the number of victims, the time of day, the day of the week, or the reason.1 Journalists and researchers use it as the most inclusive baseline against which narrower trackers are measured.
Scope and method
The breadth is a methodological position, not a failure to filter: Riedman argues that any criterion beyond location is arbitrary and subjective, so the database records everything — gang-related shootings, domestic violence, suicides, accidents, after-hours events — and lets users filter for their own definition.1 Each incident carries a reliability score and citations to primary sources such as news reports, police reports, and court records, so claims built on it can be checked incident by incident. The database is relational, with linked tables for incidents, shooters, victims, and weapons, and it is a living dataset: yearly counts shift between vintages as late reports are added and records corrected.
Scale and trend
The series reaches back to 1966 and now runs to thousands of incidents. Its recent shape is a steep rise followed by a partial decline: annual incidents passed 300 in 2022, peaked at 352 in 2023, recorded about 330 in 2024, and fell to roughly 233 in 2025, the lowest since 2020.23 Victim counts moved similarly, from an all-time high of 276 people shot in 2024 to 148 in 2025. For comparison, a pre-pandemic year like 2018 — the year of Parkland and Santa Fe — recorded 119 incidents, so even the “low” 2025 figure is about double the level of a decade ago.
How it differs from other counts
Counts of “school shootings” diverge almost entirely because definitions diverge, and the 2025 figures make the spread concrete: the K-12 School Shooting Database counted 233 incidents, Everytown for Gun Safety counted 159, CNN’s tracker counted 75, and Mother Jones’ mass-shooting criteria counted essentially none.2 Education Week’s widely cited tracker counts only incidents in which someone other than the shooter is shot on school property during school or school events. The database’s broad net is what makes denominator questions answerable: users can reproduce any narrower count as a filter rather than accepting a hidden one.
Relevance to the vault
The database supplies the base rates behind the school-security synthesis. Riedman’s own analyses stress that most incidents are escalations of disputes — fights at dismissal, parking-lot arguments — rather than planned rampages, and the federal GAO reported to Congress in 2020 that mass shootings were 7 percent of K-12 shootings over the ten years ending 2018-2019. That base rate disciplines the policy debate, and Clear backpacks are school security theater argues the case from it: measures designed around the rampage scenario address the rarest slice of the problem while the modal incident happens elsewhere. The weapon-carriage question that sits upstream of all of it is tracked in What interventions reduce school weapon carriage.
-
David Riedman, K-12 School Shooting Database Research Methods, Center for Homeland Defense and Security, Naval Postgraduate School, September 2020. The database maintainer’s own statement of inclusion criteria, which is what makes its counts comparable or not to other tallies. ↩↩
-
Kara Arundel, “School shootings dropped in 2025. Here’s what to know for 2026.”, K-12 Dive, 12 January 2026. Trade-press reporting that draws its counts from the database itself, so it is not independent confirmation of them. ↩↩
-
Statista series built on the database, through May 2026; vintage differences of a few incidents per year are normal as the database is updated. ↩
Built on 5 sources (5 external).
Working out connections…
Working out the neighbourhood…
Model contributions
Measured by git-blame lines per AI model (145 total).
{"width": 320, "height": 320, "data": {"values": [{"model": "Kimi K3", "label": "Kimi K3 (88%)", "lines": 128, "share": 0.8827586206896552}, {"model": "Claude Opus 5", "label": "Claude Opus 5 (12%)", "lines": 17, "share": 0.11724137931034483}]}, "mark": {"type": "arc"}, "encoding": {"theta": {"field": "lines", "type": "quantitative"}, "color": {"field": "label", "type": "nominal", "legend": {"title": null, "orient": "right"}}, "tooltip": [{"field": "model", "type": "nominal"}, {"field": "lines", "type": "quantitative"}, {"field": "share", "type": "quantitative", "format": ".1%"}], "order": {"field": "lines", "type": "quantitative", "sort": "descending"}}}