How we read minutes
Every figure on docket.pub links back to the original document. This page describes how that data gets here and where it can go wrong.
Where the data comes from
Each city publishes meeting records on a content management platform — Granicus, CivicClerk, CivicPlus, or a generic CMS. Docket.pub uses a platform-specific adapter to fetch agendas, minutes PDFs, and (where available) meeting videos directly from the city's public site. No data is sourced from third parties.
From PDF to searchable record
- Ingest. An adapter polls the city's portal and downloads new agendas, minutes, and (for Birmingham) video.
- Parse. Agenda items, sponsors, dollar amounts, and topics are extracted from the source documents.
- Vote extraction. Roll-call votes are read from minutes PDFs and, where available, from on-screen captions in meeting video.
- Match. Each vote is linked to the agenda item it acted on. Consent-agenda votes link to every item adopted in the block.
- Summarize. Item-level and meeting-level summaries are generated and tied back to the source text they describe.
What we do when sources disagree
Video captions and official minutes don't always match. When they disagree, both readings are preserved and the conflict is flagged — never silently reconciled.
Some votes are marked provisional until the council formally adopts the minutes from that meeting. Once adopted, those records are promoted and the source link updates accordingly.
What we can't do
Not every vote can be confidently matched to an agenda item. Many minutes refer to motions only by floor description ("approve the resolution") without a resolution number or identifying detail. Where the match isn't clear, the vote is recorded but left unlinked rather than guessed.
Coverage is also uneven across cities. Birmingham has the deepest history; other cities have less data simply because their portals expose less.