opencivicdata / python-opencivicdata

python utilities for Open Civic Data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

how should we handle multi-member Posts?

jamesturk opened this issue · comments

this came up before: opencivicdata/pupa#167

The issue being that for data quality purposes it is quite useful to know how many members can simultaneously hold a post.

Ballotpedia has a good summary of their use in US States: https://ballotpedia.org/State_legislative_chambers_that_use_multi-member_districts

Two proposals had come up before: either specifying two or more 'Posts' or specifying a 'maximum' attribute. My current thinking is that multiple posts would be hard to distinguish between and the maximum property would work best here.

Are there objections to going forward w/ this? Have others tackled this in a way they're happy with in the last couple of years since it was first discussed?

We should also maybe keep whatever we decide in mind as we look at elections modeling, as there isn't just one winner in some of these.

I think maximum is good, though maybe name it maximum_memberships to avoid ambiguity. I've been able to get by creating multiple posts, but I have a very simple use case of just tracking members (I'm not adding votes, bills, etc. to the mix).

For example, in Wood Buffalo, Ward 1 has 6 seats and Ward 2 has two seats. I create the posts here, with labels like like Ward 1 (seat 4): https://github.com/opencivicdata/scrapers-ca/blob/04beda5532823b71209521e982240ccb33bdee99/ca_ab_wood_buffalo/__init__.py

In the scraper, for wards 1 and 2, seat_numbers is a dictionary that increments the seat numbers as it scrapes, which are used to format the district: https://github.com/opencivicdata/scrapers-ca/blob/04beda5532823b71209521e982240ccb33bdee99/ca_ab_wood_buffalo/people.py