About Public Meeting Insights
A public library of Phoenix City Council meetings: each meeting's video beside a searchable transcript, organised by agenda item, with the City's recorded votes. An independent project by GOOD|GOAT. Not affiliated with or endorsed by the City of Phoenix.
How it's made
- The audio of each meeting's published video is transcribed by machine (WhisperX, using the Whisper large-v3 speech model), which also detects when the speaker changes.
- Voices are matched to people: officials and City staff from the City's own records, and other speakers where their name is in the public record for that meeting.
- The City's agenda records (items, minutes notes, votes and roll calls) are read from its agenda system and lined up with the transcript. Agenda items are found from what's said aloud ("We'll begin with item 62"). Where that's less certain, the item is marked Inferred.
- Every meeting is checked before it's published: each video link is measured against the video's own captions, every roll-call reply is compared with the City's vote record, and a person spot-checked meetings against the video.
- Known fixes become the text: for example, a councilmember's "Yes." in a roll call is credited to them when the City's vote record agrees, rather than to the clerk who called the roll.
The code that does this is open source, and so is a tutorial for advocates who want to do the same for their own city.
What a machine transcript is, and isn't
It isn't the official record. The City's minutes are. A machine transcript can mishear words, especially names and places, and can credit a line to the wrong speaker. Check a line against the video before you quote it; every line plays from its own moment.
Between 18% and 78% of each meeting's speaking time is attributed to a named person. The rest is labelled Unidentified voice. Two unidentified voices are never assumed to be the same person. Speech in Spanish is transcribed as said and marked, and English lines that may be an automatic translation of Spanish speech are marked too.
Names
People are named as the public record names them. Officials and City staff are named from the City's records,
with their title as of each meeting. A member of the public who spoke is named where the City's minutes list them,
their name was said aloud, or a moderator identified them; otherwise they're a public commenter with an id such
as pc-000-003 (the third speaker in the general comment period, item 000).
Officials have pages with the meetings they spoke in and their recorded votes, with counts but no scores or rankings. Members of the public never get a page, and the site doesn't rank, count or profile them.
Lobbyists and staff of other public bodies are marked as outside representatives. Who they represent on an item is shown where the record says.
Corrections
Every line keeps its address for good, so a link or citation always finds it. Its words and speaker can be corrected: when a fix is known, it simply becomes the line. Next, the public becomes the editors: you'll be able to suggest corrections on the page itself, and others will confirm them.
Independence
An independent project by GOOD|GOAT. Not affiliated with or endorsed by the City of Phoenix. The site uses the City's colours so it's recognisable, and never its seal, logo or any official mark.
Privacy
This site sets no cookies of its own and has no accounts.
Video. A meeting's video doesn't load until you press play. Until then nothing on the page contacts YouTube. Once you press play, the video is served by YouTube's privacy-enhanced player (youtube-nocookie.com), and YouTube's terms apply: YouTube Terms of Service, Google Privacy Policy. This site uses YouTube API Services to play and follow the video.
Search runs in your browser. What you type isn't sent to us.
Counting visits. Page views are counted by Cloudflare Web Analytics, which sets no cookies.
Licences and credits
- Transcripts and data: CC BY 4.0. Credit: GOOD|GOAT, Public Meeting Insights (https://goodgoat.net).
- The site's code: MIT. The video belongs to its publisher.
- Typefaces: Public Sans, Source Serif 4 and IBM Plex Mono, under the SIL Open Font License; icons from Lucide (ISC). Licence texts: Public Sans, Source Serif 4, IBM Plex, Lucide.