# 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.
