Track an official's position over time
track_positionThe voting record of one elected official. Their actual recorded roll-call votes (yes/no/abstain, per decision, with the decision title) plus expressed stances, in chronological order, with cited quotes, jump-to timestamps, and detected position reversals (flips).
This is the ONLY tool that returns how someone voted. topic and the since/until date window are all optional — omit them all for a complete record.
WHEN: any question about how a named official voted — 'How has Councilmember X voted over the last couple months?' (pass since/until, no topic), 'How has X voted on housing?' (pass topic), 'Has the mayor changed position on short-term rentals?'. WHEN NOT: For what they said rather than how they voted, use search_by_official. For a topic across everyone (not one person) use whats_changed or search_meetings; to find the official_id first, use list_officials.
Do NOT try to reconstruct a voting record from transcript segments — transcripts capture discussion, not the tally, so that reliably under-reports. Votes live here.
PAID plan required (attributes positions to a named official).
EXAMPLES: { "official_id": "", "since": "2026-06-01" } — recent voting record, all topics { "official_id": "", "topic": "housing" } { "official_id": "" } — the complete record
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City slug to scope to (e.g. 'lehi-ut'). Defaults to the official's city. | |
| limit | No | Max trajectory entries. Default 100. | |
| since | No | Only include meetings on or after this date (YYYY-MM-DD). Use with `until` for 'the last couple of months'. | |
| topic | No | Optional topic / issue to narrow to (e.g. 'housing', 'short-term rentals'). Omit to get the official's complete voting and stance record — that is the right call for 'how has X voted recently', which no topic reliably captures. | |
| until | No | Only include meetings on or before this date (YYYY-MM-DD). | |
| official_id | Yes | UUID of the official. Get it from list_officials or a search_meetings hit's official_id. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | Echo of the topic filter, or null when the full record was requested. | |
| summary | Yes | Roll-up of the trajectory, including detected position reversals. | |
| official | Yes | ||
| trajectory | Yes | Chronological (oldest first) positions this official took — narrowed to `topic` and the date window when given. When truncated by `limit`, the OLDEST entries are dropped, so the most recent record is always present. |