Virginia K-12 AI Policy Tracker

Methodology and limitations

Observed November 13, 2026. License: CC BY 4.0. Information only, not legal advice.

Data: Schoolhouse (schoolhouse.space). License: CC BY 4.0. Observed: November 13, 2026. Information only, not legal advice. Not affiliated with or endorsed by the Virginia Department of Education (VDOE), the Virginia Board of Education or the Virginia School Boards Association (VSBA).

What the tracker counts

One row per Virginia public school division. VDOE says Virginia has 131 school divisions. We took division names from VDOE's School Quality Profiles list (133 entries) and removed the Department of Juvenile Justice and the Virginia School for the Deaf and the Blind, which leaves 131.

Status definitions

StatusMeaning
adoptedA board-adopted policy, or a division regulation issued under board policy, contains rules that name AI. See policy_form for how much.
tabledThe board voted to postpone a proposed AI policy.
in_draft_or_on_agendaA draft is in front of the board or a committee, or a news report says the board will take it up.
no_policy_foundA public source says the division has no formal AI policy. Used only when a source says so directly.
unknownWe could not verify a status in a public source. Unknown does not mean "no policy."

policy_form separates depth:

  • standalone_ai_policy: a policy whose subject is AI.
  • ai_regulation: a division regulation on AI.
  • ai_section_in_general_policy: AI rules inside a broader policy (for example acceptable use or digital literacy).
  • ai_mention_in_general_policy: a single line naming AI inside a broader policy.

date_type: action (the date the board acted), reported (the publication date of the source; the action date was not confirmed), expected (a scheduled or reported future date).

Grade-band fields (student_use_elementary, _middle, _high) are filled only when the source states rules by grade or school level. student_use_general holds rules that apply to all students. Fields marked "Draft:", "Proposal" or "Guidance:" describe drafts, proposals or division guidance, not adopted board policy.

division_guidance_found = yes means the division has published AI guidance for staff, students or families. Guidance is not policy and does not change status.

How we searched

  1. News searches on Virginia school board AI policy actions in 2025-2026 (local TV, newspapers, civic meeting summaries).
  2. BoardDocs and division policy pages for the divisions those searches surfaced.
  3. Division AI guidance pages.
  4. State sources: the Code of Virginia (LIS), VDOE's Sept. 24, 2026 bulletin, the statewide AI education guidelines, VSBA's task force page, and two published research reviews (VCU MERC, June 2026; George Mason AI-LIFT, July 31, 2026).

Breadth came first. We did not visit all 131 divisions' policy manuals in this first pass, so most rows are unknown.

Validation gate

Every record passes three checks before it is published. A record that fails is quarantined (quarantine.json) and its row is published as unknown.

  1. Schema check. Required fields exist, types are correct, no unexpected fields.
  2. Domain-rule check. Status, policy form and date type use the allowed values; the division is in the VDOE list; dates are ISO format; no action or reported date is after the observation date; every source key resolves to a URL; a non-unknown status has a source.
  3. Evidence-in-source check. Every non-unknown field must carry at least one quote, and the quote must appear word for word (after normalizing whitespace and quote marks) in the cached text of a source cited by that row. Cached copies live in evidence/txt/. Two pages that blocked direct download were captured as excerpts from a separate fetch; those files say so at the top.

First run: 7 of 32 researched records failed (missing or non-contiguous quotes for dates and guidance fields). Each was fixed by adding an exact quote from the same source or by downgrading date_type to reported. Final run: 32 of 32 pass, 0 quarantined. quarantine.json also lists 9 claims we saw during research and rejected (for example, a Nebraska "Norfolk Public Schools" story and a Maryland "Frederick County" story, and a third-party site that attached Richmond's policy number to Henrico).

Limitations

  • Coverage is thin. 19 of 131 divisions have a verified status. The other 112 are unknown.
  • Search bias. Larger divisions and divisions with active local news are easier to find. Counts are not a statewide rate and should not be read as one.
  • Mentions are not policies. Three "adopted" rows only mention AI in one line of a general acceptable-use policy.
  • Dates. Some rows carry the article date, not the meeting date (date_type = reported). Some adopted rows have no confirmed date.
  • Staleness. Rows with needs_recheck = yes are drafts, tabled items, expected dates, or sources older than six months.
  • VDOE guidance status. The VDOE website returned errors to our tools on Nov. 13, 2026, so we could not confirm whether VDOE has posted the guidance that Va. Code § 22.1-20.2:1(B) requires.
  • Secondary sources. Some rows rely on news or meeting-summary sites (including AI-generated meeting summaries). Primary board documents are preferred and are cited where we found them.
  • No people. The dataset names divisions and public bodies only. It contains no student data.

Corrections

Divisions can send corrections with a link to a public board document through the Schoolhouse contact form. Corrections go through the same validation gate.

Files

  • va-ai-policy-tracker.csv: data with a three-line license header (lines start with #).
  • va-ai-policy-tracker.data.csv: the same data with no header lines, for tools that cannot skip comments.
  • va-ai-policy-tracker.json: metadata, state context and division rows.
  • quarantine.json: gate failures and rejected claims.
  • validation-report.md: per-record gate results.
  • build.py, records_verified.py, state_context.py, rejected_claims.py: the build and the records.

Back to the tracker · Download Markdown