Municipal records rarely arrive in the unit a researcher ultimately wants. A meeting can contain matters, grouped motions, attachments, status assignments, absences, and later reports. Flattening those objects into one table makes analysis convenient, but it can erase the relationship that defines the denominator.

Chicago's October 16, 2025 zoning record provides a compact design test. The official API returned 93 matters and 50 person-status rows for each. Twenty-one matters shared the same status vector. The Clerk's separate divided-roll-call report identifies one grouped floor roll call covering that set.

The observation depends on the question

Counts are supported only to the level shown. Unknown denominators remain unknown.
Candidate unitSupported countValid useInvalid shortcut
Meeting1Describe the selected council sessionTreat as all city land-use activity that day
Matter record93Measure matter exposure within the query frameTreat each matter as an independent motion
Matter-person status4,650Report exact source status assignmentsTreat each row as a distinct act of voting
Confirmed grouped floor roll call1 across 21 mattersCount the documented grouped decisionAssume the other 72 matters equal 72 motions
Independent member choiceNot established for the full frameRemain unknown until motion grouping is resolvedUse the 4,650 rows as the denominator

The source graph comes before the analysis table

The meeting-agenda endpoint supplies the meeting identity and matter links. The exact matter query defines the 93-record frame. A vote route supplies person-status rows for each matter. The divided-roll-call report supplies the grouping evidence.

Those are different source objects. The analytic relationship is many matters to one documented floor roll call for the 21-matter subset. A flat matter-person table should retain a foreign key to the vote group or an explicit unresolved grouping state.

A minimum codebook

Derived fields should identify their rule and source paths.
FieldOriginPurpose
universe_definitionResearcher-declaredExact category, time bounds, source, and retrieval date
meeting_idSourceStable join to the meeting and its documents
matter_idSourcePreserve the policy record as a distinct object
person_idSource plus identity crosswalkResolve the member without relying on name text alone
status_rawSourceRetain Yea, Nay, Absent, and Not Voting without collapsing them
vote_group_idSource or documented derivationLink matters covered by one motion or roll call
grouping_statusDerivedConfirmed, rejected, possible, or unresolved, with citation
cast_voteDocumented mappingSeparate Yea and Nay from noncast statuses
observed_atRetrievalMake later source corrections auditable

One frame supports several different estimands

Across the 4,650 rows, the raw labels total 4,329 Yea, 42 Nay, 186 Absent, and 93 Not Voting. That is a valid description of matter-person status assignments. It is not a count of independent voting choices.

Within the 21-matter grouped set, Anthony Beale and Pat Dowell each appear as Nay on 21 matter records. For a matter-exposure question, each has 21 Nay-labeled exposures. For a confirmed grouped-floor-choice question, the record supports one Nay in the grouped roll call for each member. Both statements use the same sources. They answer different questions.

The 72 remaining matters share a 47 Yea, 0 Nay, 2 Absent, 1 Not Voting vector. This audit does not establish how many distinct floor motions produced those rows. A defensible paper reports that grouping denominator as unresolved unless additional records resolve it.

A reproducible workflow

  1. Publish the exact source query and local-time interpretation before reporting results.
  2. Save native meeting, matter, person, and document identifiers.
  3. Retain raw vote and nonvote labels before mapping categories.
  4. Hash or version the source extract and record retrieval time.
  5. Identify repeated vectors as candidates for review, not proof of grouped action.
  6. Inspect the official agenda, committee minutes, journal, and divided-roll-call report.
  7. Create a vote-group relationship only when a source or documented rule supports it.
  8. Run each analysis at its declared unit and publish unresolved grouping.

The API's OpenAPI description documents the matter, meeting-agenda, and vote routes. The Zoning Committee minutes provide additional grouping context, including application of a previous committee roll call to a later set.

Required sensitivity checks

  • Matter-weighted result: Each matter contributes once, even when several share a motion.
  • Vote-group-weighted result: Each source-confirmed floor decision contributes once.
  • Member-choice result: Each member contributes once per resolved vote group, with absences and nonvotes separate.
  • Unresolved-grouping bound: Report a range when the number of independent decisions is not established.
  • Coverage exclusion: State which bodies, categories, dates, or document types the source frame omits.

If a substantive conclusion changes when the unit changes, the unit is part of the result, not a technical footnote.

What this case supports

  • A source-defined municipal frame can be reproduced from exact public endpoints and documents.
  • Meetings, matters, person-status rows, motions, and member choices require separate tables or explicit relationships.
  • Repeated status vectors are useful review signals but do not independently prove grouped action.
  • Unknown denominators can be published as unknown without discarding the underlying records.

What it does not support

  • The case is not representative of other Chicago meetings, policy areas, jurisdictions, or source systems.
  • No motive, ideology, policy preference, or causal relationship is inferred from a vote label.
  • The query is not a census of every Chicago land-use proceeding.
  • The source may be corrected after retrieval, so the official current record remains controlling.

Sources

  1. Exact eLMS matter query, 93 records when checked August 2, 2026.
  2. Official meeting-agenda endpoint.
  3. Example official matter vote endpoint; the route pattern was requested for every matter.
  4. Attendance and Divided Roll Call report, especially page 9.
  5. October 2025 Zoning Committee minutes.
  6. Journal of Proceedings, Volume I; Volume II.

This is a public-record research-design example. It does not assess any official's motives, ethics, ideology, or overall voting record.