|
| 1 | +# Senatorial — state upper-chamber contacts |
| 2 | + |
| 3 | +Contact lists for the **upper chamber** (State Senate) of the U.S. states. |
| 4 | + |
| 5 | +## Layout |
| 6 | + |
| 7 | +``` |
| 8 | +senatorial/ |
| 9 | + state/ |
| 10 | + <state.name>.filtered.emails.txt # flat file per state (majority) |
| 11 | + <state.name>/<state.name>.filtered.emails.txt # older subfolder variant |
| 12 | +``` |
| 13 | + |
| 14 | +State names are **lowercase**, with spaces written as dots — e.g. |
| 15 | +`new.york`, `north.carolina`. A few of the original files use a subfolder |
| 16 | +(`state/<name>/<name>.filtered.emails.txt`); newer states use the flat form |
| 17 | +`state/<name>.filtered.emails.txt`. |
| 18 | + |
| 19 | +## Unified format |
| 20 | + |
| 21 | +Each newly-added state file is a single-column CSV: |
| 22 | + |
| 23 | +``` |
| 24 | +email |
| 25 | + |
| 26 | + |
| 27 | +... |
| 28 | +``` |
| 29 | + |
| 30 | +- Line 1 is the header `email`. |
| 31 | +- Each subsequent line is one senator's email address. |
| 32 | +- Addresses are sorted and de-duplicated. |
| 33 | + |
| 34 | +> Note: several original files predate this convention (some have no header, |
| 35 | +> some a `Email` header, and one is spelled `lousiana`). Those originals were |
| 36 | +> **left unchanged**. States added in bulk use the unified header format above. |
| 37 | +
|
| 38 | +## Unicameral jurisdictions (excluded) |
| 39 | + |
| 40 | +- **Nebraska** — a single nonpartisan unicameral legislature (no separate |
| 41 | + senate). Its members appear under `../general.assembly/`. |
| 42 | +- **District of Columbia** — a single Council (not a state). |
| 43 | + |
| 44 | +## Source & attribution |
| 45 | + |
| 46 | +Bulk-added lists were sourced from the public **Open States / Plural** |
| 47 | +`openstates/people` dataset. Only currently-serving members whose **current |
| 48 | +role is the upper chamber** (`type: upper`) were included, via each person's |
| 49 | +official `email` field. |
| 50 | + |
| 51 | +- Dataset: https://github.com/openstates/people |
| 52 | +- Project: https://openstates.org / https://open.pluralpolicy.com/data/ |
| 53 | + |
| 54 | +Data is a point-in-time snapshot; rosters change with elections and vacancies, |
| 55 | +so refresh periodically. Small shortfalls versus a chamber's full seat count |
| 56 | +reflect current vacancies or members without a listed email. |
0 commit comments