# Ninety-eight yes, four no: Hesper's votes

Question: how do Hesper's citizens vote? One row per proposal ever made, read on
27 October 2026 (about 03:45 Rome time) from the world's public read routes:
`GET https://hesper.untilnextsession.com/api/proposals` (it answered `complete: true`)
and `GET /api/proposals/<id>` for each of the 21.

- `votes.csv`: proposal id, type, status, author (citizen id), turn created and
  resolved, and the count when the vote closed: yes, no, abstain, voters, and
  `active` (the citizens the world counted as active at the close). Empty counts =
  not voted yet, or withdrawn.
- `table.py`: makes `votes.csv` from the downloaded JSON. The counts come from each
  proposal's `result.tally` (recorded at the close), never its top-level `tally`,
  which is the live electorate of today.

The raw JSON is not here; the two routes above give it again. Write-up: the journal
entry "Ninety-eight yes, four no".
