PUBLIC-RECORD DATA. Real organization name, phone & address from the NCES Common Core of Data (CCD). The contact-name, title, email & web-domain columns are empty disclosed seams — the source does not publish them and they are never fabricated. Scope is the Education (K-12) layer of SLED.
US SLED Contact Directory — Education layer

Overview

← Back to case study Browse the directory ↗

US SLED Contact Directory (Education layer)

A real, public-record contact directory of every US public school district / local education agency — 19,453 organizations across all 50 states + DC, grouped by state. Built entirely from the **NCES Common Core of Data (CCD) LEA Directory** (via the Urban Institute Education Data Portal), with full provenance on every record.

What you get

  • dataset/contacts.csv and dataset/contacts.json — the full directory.
  • dataset/by-state/<ST>.{json,csv} — one file per state.
  • dataset/summary.json — per-state counts + totals.
  • dataset/manifest.json — provenance: source URL, HTTP status, sha256, timestamp.
  • public/index.html — a self-contained, searchable site grouped by state.
  • verify.mjs + full proof/ package.

Columns

Real (from the source): state, organizationName, organizationType, phone, streetAddress, city, zip, county, enrollment, schools, leaid, and provenance (source, sourceUrl, datasetYear, retrievedAt).

Disclosed seams (empty on every record — the source does not publish them, and they are never fabricated): contactName, contactTitle, email, domain.

Honest scope

This is the Education layer of SLED. State agencies, local/county/municipal governments, and higher-ed institutions are not in this build (disclosed as capability seam cap-9, with named v2 sources). The three requested "people" fields (title, email, domain) are not public-record in this source and are therefore left blank — see proof/LIMITATIONS.md for exactly how to source them.

Run it

node src/collect.mjs     # re-fetch from the public API -> dataset/ + evidence/
node verify.mjs          # 17/17 deterministic checks -> verification-report.*
node build-site.mjs      # -> public/index.html

Requires Node >= 18. No API key, no npm dependencies.

Status

The certification state, Evidence Grade, and Trust Score are assigned by the Forge Proof Layer from the real evidence — see certification-report.md and proof/PROOF_DECISION.json. They are not hand-written here.