A person-level voting dataset can be numerically correct and still produce the wrong denominator. Chicago's October 16, 2025 City Council record is a useful example. The official API returns 93 zoning reclassification matters with 50 person-status rows for each matter. Twenty-one matters carry the same two Nays. The Clerk's separate divided-roll-call report shows that those 21 matters were covered by one grouped floor roll call.
The pattern is real. Counting it as 21 independent council roll calls would not be.
The result in one table
The 93 matters produce 4,650 matter-person rows because each matter endpoint returns one status for each of 50 council members. Only two status vectors appear.
| API status vector | Matter records | Matter-person rows | What the source supports |
|---|---|---|---|
| 47 Yea, 0 Nay, 2 Absent, 1 Not Voting | 72 | 3,600 | The API assigns this vector to 72 matters. This review does not establish how many distinct floor motions produced it. |
| 45 Yea, 2 Nay, 2 Absent, 1 Not Voting | 21 | 1,050 | The Clerk's divided-roll-call report identifies one grouped floor roll call covering these zoning reclassifications. |
| Total | 93 | 4,650 | A complete count for the defined API frame, not a count of independent floor votes. |
Across all 4,650 rows, the exact source labels total 4,329 Yea, 42 Nay, 186 Absent, and 93 Not Voting. These totals describe the repeated matter-level status assignments. They should not be presented as 4,650 distinct acts of voting.
What the repeated pattern actually says
All 21 divided matter endpoints identify Alderpersons Anthony Beale and Pat Dowell as Nay, Derrick Curtis as Not Voting, and Jeanette Taylor and Gilbert Villegas as Absent. The other 45 members are recorded as Yea. No other person is assigned a Nay within those 21 matter records.
The official Attendance and Divided Roll Call report, on page 9, lists one record called Broadway Land Use Zoning Reclassifications
. It describes multiple reclassifications in the 46th, 47th, and 48th wards and reports the same 45 Yea, 2 Nay, 2 Absent, 1 Not Voting result. The corresponding Zoning Committee minutes show how the matters were handled in groups at committee, including application of a previous committee roll call to a second set of matters.
The API therefore exposes 21 distinct matter records with the same person-level status vector, while the floor report identifies one grouped roll call covering those matters. This is not an error in the API. It is a relationship that downstream analysis must preserve.
What the pattern does not say
Repeated Nays can identify a useful follow-up question, but they do not explain why a member voted that way. The records reviewed here do not establish motive, ideology, opposition to zoning generally, ward custom, personal interest, or a causal relationship between any sponsor and any vote.
The source filingSponsor field assigns the 21 matters to Angela Clay for 7 records, Matthew Martin for 3, and Leni Manaa-Hoppenworth for 11. That filing field helps organize the matters. It is not evidence of a political relationship or an explanation for the two Nays.
Why the denominator matters
Suppose an analyst built a score from matter-person rows alone. The two Nays would appear 21 times for each alderperson. A frequency table might then describe 42 dissenting votes. That is a valid count of Nay-labeled matter-person rows within this frame. It is not a valid count of 42 independent choices or 21 independent roll calls.
Different questions require different units:
- Matter exposure: On how many distinct matter records was a member assigned a given status?
- Floor decisions: How many distinct motions or grouped roll calls occurred?
- Policy positions: What substantive proposal did each matter contain, and was it included in a grouped action?
- Member behavior: Across a defined and source-verified universe, how often did a member take each position?
The first question can be answered from the API rows in this case. The second requires the divided-roll-call report. The third requires reading the matters and operative documents. The fourth requires all three, plus identity, attendance, and coverage controls.
A reproducible selection and review method
- Query the exact source category
ZONING RECLASSIFICATIONS. - Use a half-open time interval from
2025-10-16T05:00:00Zthrough, but not including,2025-10-17T05:00:00Z. Those UTC bounds represent midnight to midnight in Chicago on a date when the city observed Central Daylight Time. - Confirm that each returned
matterIdappears on the official City Council meeting agenda for meeting1BDD5AEB-3B9D-F011-B4CB-001DD80F1323. - Request the official vote endpoint for every matter and preserve the exact Yea, Nay, Absent, and Not Voting labels.
- Group identical status vectors, then compare them with the Clerk's agenda, committee minutes, journal, and divided-roll-call report before assigning a floor-vote denominator.
The exact matter query returned 93 records when checked on August 2, 2026. The official meeting-agenda endpoint identifies the body, meeting time, attachments, attendance, and agenda items. The API's OpenAPI description documents the available matter, meeting-agenda, and vote routes.
The 21 matter records in the grouped pattern
Publishing the identifiers makes the repeated-vector result auditable without turning the identifiers into a claim about 21 independent floor roll calls.
| Record number | Matter ID |
|---|---|
| O2025-0017504 | C1253F4F-9F35-F011-8C4D-001DD80501AC |
| O2025-0017507 | 2C262C28-AC35-F011-8C4D-001DD80500AD |
| O2025-0017508 | 5C1F6A9B-AC35-F011-8C4D-001DD80500AD |
| O2025-0017509 | DA19ADF2-AD35-F011-8C4D-001DD80500AD |
| O2025-0017510 | F0021459-AE35-F011-8C4D-001DD80500AD |
| O2025-0017511 | FC9E5BBF-AE35-F011-8C4D-001DD80500AD |
| O2025-0017512 | D3969931-AF35-F011-8C4D-001DD80500AD |
| O2025-0017513 | 991E461C-B035-F011-8C4D-001DD80500AD |
| O2025-0017514 | EB929A6A-B035-F011-8C4D-001DD80500AD |
| SO2025-0016310 | D3A2AC1E-FA0F-F011-BAE2-001DD80DF05F |
| SO2025-0016312 | 52A5B709-FB0F-F011-BAE2-001DD80DF05F |
| SO2025-0016313 | C4761DC3-FB0F-F011-BAE2-001DD80DF05F |
| SO2025-0016687 | E9DECE7C-331A-F011-9989-001DD830951E |
| SO2025-0016689 | 643BA00C-341A-F011-9989-001DD830951E |
| SO2025-0016691 | 83B1D672-341A-F011-9989-001DD830951E |
| SO2025-0016693 | 5C735221-351A-F011-9989-001DD830951E |
| SO2025-0016696 | 9BDC2BCA-351A-F011-9989-001DD830951E |
| SO2025-0016708 | ED7CC7AA-3A1A-F011-9989-001DD830951E |
| SO2025-0016709 | 0EFDB734-3B1A-F011-9989-001DD830951E |
| SO2025-0016710 | 1857EF83-3B1A-F011-9989-001DD830951E |
| SO2025-0016711 | CA880E15-3C1A-F011-9989-001DD830951E |
Limits and coverage
- The 93-record frame is defined by one eLMS category and one final-action date. It does not include all Chicago land-use activity, Zoning Board of Appeals proceedings, Chicago Plan Commission proceedings, or records placed in other categories.
- The API source may be corrected or republished after the check date. The linked official record remains controlling.
- The 4,650 rows are matter-person status assignments, not 4,650 distinct policy decisions.
- Only Yea and Nay are treated as cast votes. Absent and Not Voting remain separate noncast statuses.
- The 72 zero-Nay vectors do not establish the number of independent floor motions. This analysis makes no such count.
- The repeated Nays establish a source-record pattern within the defined frame. They do not establish motive or a broader voting tendency.
Sources
- Exact Chicago eLMS matter query, 93 records when checked August 2, 2026.
- Chicago eLMS City Council meeting-agenda endpoint, October 16, 2025.
- Example official matter vote endpoint for O2025-0017512. The same route pattern was requested for every matter in the frame.
- Clerk report page for City Council attendance and divided roll calls.
- Official Attendance and Divided Roll Call report, especially page 9.
- Official October 2025 Zoning Committee minutes, especially pages 2 and 3.
- Official October 16, 2025 City Council agenda.
- Journal of Proceedings, Volume I; Volume II.
This analysis is based on public records. It is not an assessment of any official's motives, ethics, or overall record. Verify the current official record and the denominator appropriate to your research question before publishing a score or comparison.