Data & downloads
4,162 meetings transcribed, Nov 1, 2025 to Oct 28, 2026, at 1,114 school boards · edition 2026-11-02
Three files, one row per meeting, board or month
- meetings.csv · every meeting read (4,162 rows), with a yes / no flag and the cue second for each of the 9 issues
- districts.csv · 1,778 rows by NCES LEAID: the 1,775 boards with a page here, and 3 more the issue check read that have no board page yet (county offices of education); with enrollment and how many of their meetings we read
- monthly.csv · meetings read and discussed, by issue and month
One file per issue, with a checked summary line where one sits near the discussion: Reading and test scores · Budget cuts and layoffs · AI in schools · Safety, weapons and police · Chronic absenteeism · Vouchers and school choice · Phones in school · Enrollment · School closures.
Not in these files: board members’ names, talk time, attendance, and anything a member of the public said. Boards we hold off the site are never in them.
How each issue was counted, and how sure we are
| Issue (column) | Discussed of read | Rule and run | Blind check (lower bound) | Catch rate (90% range) |
|---|---|---|---|---|
Reading and test scores reading | 1,064 of 4,162 | Whole transcript, both readers yes · issuefull-1030 | 52 of 52 right (0.951) | about 6 in 10 (54%–73%) |
Budget cuts and layoffs cuts | 745 of 4,162 | Whole transcript, both readers yes · issuefull-1030 | 86 of 87 right (0.950) | about 7 in 10 (59%–82%) |
AI in schools ai | 372 of 4,162 | Whole transcript, both readers yes · issuefull-1030 | 52 of 52 right (0.951) | about 8 in 10 (63%–93%) |
Safety, weapons and police safety | 476 of 4,162 | Whole transcript, both readers yes · issuefull-1030 | 52 of 52 right (0.951) | about 5 in 10 (42%–64%) |
Chronic absenteeism absent | 451 of 4,162 | Whole transcript, both readers yes · issuefull-1030 | 86 of 87 right (0.950) | about 7 in 10 (46%–83%) |
Vouchers and school choice vouchers | 136 of 4,162 | Keyword remarks, both packet readers confirm · sb-issue-strict-1029d | 116 of 118 right (0.950) | about 5 in 10 (44%–59%) |
Phones in school phones | 352 of 4,162 | Whole transcript, both readers yes · issuefull-1030 | 52 of 52 right (0.951) | about 9 in 10 (62%–96%) |
Enrollment enroll | 570 of 4,162 | Whole transcript, both readers yes · issuefull-1030 | 52 of 52 right (0.951) | about 7 in 10 (53%–82%) |
School closures closures | 98 of 4,162 | Keyword remarks, both packet readers confirm · sb-issue-strict-1029d | 52 of 52 right (0.951) | about 4 in 10 (34%–47%) |
Readers: claude-sonnet-5-5 and gemini-4-argon, each reading blind. Checker: claude-opus-5-5, reading fresh counted meetings blind; the lower bound is the one-sided 95% Wilson bound (z = 1.645). The catch rate says how many of every 10 meetings that discuss the issue the rule counts, so every count is a floor. How we count.
From the readers’ answers to the published count
| Issue | Both readers yes | Held: no checked cue | Counted in the run | Not in the site’s base | Published | One yes | Neither | No answer | Agreement on yes calls | Agreement overall |
|---|---|---|---|---|---|---|---|---|---|---|
| Reading and test scores | 1,106 | −24 | 1,082 | −18 | 1,064 | 316 | 2,848 | 2 | 87% | 92% |
| Budget cuts and layoffs | 771 | −12 | 759 | −14 | 745 | 264 | 3,235 | 2 | 85% | 93% |
| AI in schools | 375 | −0 | 375 | −3 | 372 | 134 | 3,761 | 2 | 84% | 96% |
| Safety, weapons and police | 485 | −6 | 479 | −3 | 476 | 474 | 3,311 | 2 | 67% | 88% |
| Chronic absenteeism | 470 | −9 | 461 | −10 | 451 | 189 | 3,611 | 2 | 83% | 95% |
| Vouchers and school choice | Keyword rule: counted when both packet readers confirmed the remarks, so there is no whole-transcript yes/no to compare. | |||||||||
| Phones in school | 357 | −4 | 353 | −1 | 352 | 87 | 3,826 | 2 | 89% | 97% |
| Enrollment | 618 | −34 | 584 | −14 | 570 | 285 | 3,367 | 2 | 81% | 93% |
| School closures | Keyword rule: counted when both packet readers confirmed the remarks, so there is no whole-transcript yes/no to compare. | |||||||||
Every row adds up. In the issue run (4,272 meetings read), both readers said yes, one did, or neither did; a few meetings got no answer from a reader. A meeting both readers called yes counts only when the second where the discussion starts checks out against the transcript (otherwise it is held), and only while it is in the site’s base: one meeting per board per day (a second video that day joins the first), a checked date in the issue year that the board’s page also shows as confirmed, a public video link, and not dropped by the meeting audit. Agreement on yes calls is 2 × both ÷ (2 × both + one); agreement overall also counts the meetings neither reader flagged, which is why it runs higher.
What each column means
meetings.csv
| Column | Type | Definition | Source |
|---|---|---|---|
meeting_id | text | Our id for the meeting: one row per board per day. A second video that day (a part 2, or a session filmed apart) joins the first, and the id is the first video's transcript. Stable across editions. | Hamlet |
leaid | text (7 digits) | The district's NCES Local Education Agency id. Join key to the Common Core of Data, Census and finance files. | NCES CCD |
state | text | Two-letter state code. | NCES CCD |
district | text | The district's name as it appears on our board page, else its federal name. | NCES CCD / district site |
date | date | Meeting date, checked against a second source (video listing, the date spoken at the meeting, or the clerk's calendar). | Video listing, transcript, clerk |
video_host, video_id, video_url | text | Where the district posted the video, and its id and address. Public; no password. | District video channel |
<issue> | yes / no | yes when the meeting discussed the issue by that issue's rule (see the issue table below). The issue files use the same yes / no. | Issue check run |
<issue>_cue_second | integer | Seconds into the video where the discussion starts; checked against the transcript. Empty when 0. | Issue check run |
data_date | date | The edition date: the day this file was built. | Hamlet |
districts.csv
| Column | Type | Definition | Source |
|---|---|---|---|
leaid, state, district | text | As in meetings.csv. | NCES CCD |
enrollment, enrollment_band, enrollment_year | integer, text, text | Students enrolled and its size band. | NCES CCD 2023-24 |
meetings_on_record | integer | Board meetings on our record for the district (one per board per day). | District videos |
meetings_past_12_months | integer | Of those, meetings on checked dates in the 12 months to the edition date. | District videos |
meetings_read | integer | Meetings the issue check read: the district's share of the denominator. | Issue check run |
monthly.csv
| Column | Type | Definition | Source |
|---|---|---|---|
issue, month | text | Issue key and calendar month (YYYY-MM) of the meeting. | Issue check run |
discussed, read | integer | Meetings that discussed the issue, and meetings read, that month. Months differ in how many meetings we read (it follows when we gathered the video: August and September hold about a third of the year) and they follow the school calendar, so month-to-month change is not a trend. The file's first line says so, starting with #. | Issue check run |
One issue’s file (issues/<issue>/csv)
| Column | Type | Definition | Source |
|---|---|---|---|
discussed | yes / no | Whether the meeting discussed the issue by its rule. | Issue check run |
cue_second, video_link | integer, URL | The second the discussion starts, and the district's video opened there (YouTube and Granicus; other hosts open at the start). | Issue check run |
summary_line | text | The line of our checked meeting summary nearest the cue, within ten minutes, as the meeting page prints it. Empty when none is near. Never a public comment, a routine line (roll call, pledge, adjournment) or a line naming a board member. | Checked summaries |
rule, run_id | text | The counting rule and the run that applied it. | Issue check run |
Cite the edition date
Hamlet School Boards, edition 2026-11-02, https://schools.myhamlet.com/school-boards/data, data as of Nov 2, 2026.
@misc{hamlet_school_boards_20261102,
author = {Hamlet},
title = {Hamlet School Boards: meetings of US school boards that post video, and the issues they discussed},
year = {2026},
edition = {2026-11-02},
url = {https://schools.myhamlet.com/school-boards/data},
note = {Data as of 2026-11-02. Numbers rebuild daily; cite the edition date.}
}The numbers rebuild daily as new meetings arrive, so a count can move from one day to the next. Cite the edition date, and keep the files you used.