gdoteof / election

drupal election module
3 stars 1 forks source link

Ballot Item Permutation Examples #6

Closed bradley-holt closed 12 years ago

bradley-holt commented 12 years ago

Please provide examples of all permutations of ballot types. I've filled in the table below with examples of permutations that I could identify. I've also included a description of each permutation component.

Election Referendum
Whole District ward-1/ward-1-city-council city-of-burlington/burlington-school-budget
Partial District ward-1/burlington-mayor ward-1/burlington-school-budget
Complete Results ward-1/ward-1-city-council city-of-burlington/burlington-school-budget
Incomplete Results city-of-burlington/burlington-mayor ward-1/burlington-school-budget
Winning Method Not Displayed ward-1/ward-1-city-council ward-1/burlington-school-budget
Winning Method Displayed city-of-burlington/burlington-mayor city-of-burlington/burlington-school-budget
Whole District
Results for a top-level district such as a municipality—includes a percentage for each option
Partial District
Results for a sub-district such as a ward—does not include a percentage for each option
Complete Results
Results for a district when all of its sub-districts have reported in—includes an indication of the winners (which is different than Winning Method Displayed) assuming it is the top-level district (see Whole District)
Incomplete Results
Results for a district when not all of its sub-districts have reported in yet—winners are not indicated under this scenario
Winning Method Not Displayed
See Winning Method Displayed
Winning Method Displayed
The method of determining the winner only appears when there is a winning threshold or a plurality with more than on winner
gdoteof commented 12 years ago

Sorry; I don't understand what you are looking for here.

I am assuming your examples are referring to cctv's dev server?

I don't see any difference between e/town-meeting-season-2011/town-meeting-day-2011/ward-1/ward-1-city-council and e/town-meeting-season-2011/town-meeting-day-2011/ward-1/burlington-school-budget

I don't see how one is complete and the other is not complete; or how one is a 'whole district' and the other a 'partial district'

bradley-holt commented 12 years ago

Yes, these are specific to the test data on the CCTV dev server. From a UI perspective, there will be different treatment based on the permutations outlined (e.g. whether or not to show percentage for each option, whether or not to indicate the winners, and whether or not to display the winning method). I'll try to address each of your questions:

"Complete Results" for ward-1/ward-1-city-council
Since Ward 1 does not have any sub-districts, it must be complete (unless the results for this district itself haven't been reported yet). It can't be waiting for its sub-districts to report in as it doesn't have any sub-districts.
"Incomplete Results"
I couldn't identify any incomplete results (but would like a concrete example of one). An example of incomplete results could be city-of-burlington/burlington-mayor if not all of its sub-districts have reported in yet.
"Whole District" for ward-1/ward-1-city-council
I listed this one as a "Whole District" assuming that it is a top-level district (i.e. doesn't effectively have a parent district). Technically, Ward 1 has a parent district of City of Burlington, but this is just for reporting purposes. In other words, looking at this election from the Ward 1 perspective will give you the entirety of the data that is available for this election since no other wards participate in this election.
"Partial District" for ward-1/burlington-school-budget
Multiple Wards vote on the Burlington School Budget, and these results are aggregated up to the City of Burlington level. Looking at these results at the Ward 1 level do not give you the entirety of the referendum's results.

Note that some of these permutations are redundant and/or mutually exclusive. For example, you can't have "Complete Results" for a "Partial District". Also, this language was my best stab at distinguishing between these permutation components—I'd be happy to hear suggestions for better language to describe each one.

acrawford commented 12 years ago

I filled in the table above, but I believe accessing the data in a manner that lets you "see" the permutations above is related to the discussion on issue 3 about ballot item results. Is the solution to both of these issues using a set of Tags like "leaf" and "node" to delineate what result data can be retrieved at a particular district level? can we also infer from the staus of leaf or node that certain levels of completeness apply?

election season gives you election event election event gives you districts district gives you sub-districts and ballot item results (at that level) if it is a node district gives you ballot-items and ballot item results (at that level) if it is a leaf

ideas?

bradley-holt commented 12 years ago

Thanks for filling this in, @acrawford. I believe you're right about this being related to the discussion on issue #3. I'd defer to @gdoteof on whether or not tags would be sufficient. If we can distinguish between leaf nodes and composite nodes, that will go along way towards distinguishing between "Whole District" and "Partial District" (and also helpful when it comes to "Complete Results" and "Incomplete Results") as I believe these are mostly the same concepts—meaning that most of the time a "Whole District" is a composite node and a "Partial District" is a leaf node.

One potential exception to this would be if you had a leaf node within composite node that was itself within a composite node. The "middle" composite node would likely not be a "Whole District" in that scenario, even though it is a composite node. Although, I don't know if this scenario would ever exist or should even be allowed as I can't think of how it would ever be useful.

Another, much more realistic, exception is for a composite node with no parent node and only one leaf node (e.g. Ward 1 City Councilor at the Ward 1 level). In this scenario, the leaf node should really be treated as a "Whole District" as its results are indistinguishable from the aggregate results at the composite node level. An example of this is Ward 1 City Councilor at the Ward 1 level will give the exact same results as Ward 1 City Councilor at the City of Burlington level so both should be treated as "Whole Districts" even though one is a leaf node.

As for "Complete Results" and "Incomplete Results", this concept is primarily applicable to "Whole Districts". However, "complete" and "incomplete" will likely have to be tracked at the leaf node level in order to make a determination of "completeness" at the composite node level (or, in some cases, the determination can be made immediately at the leaf node level if the leaf node is a "Whole District").

gdoteof commented 12 years ago

Ok.

I see the issue now.

Question to @acrawford : if the results for a district are entered (assuming no subdistricts) are entered; is this district "complete"? Or do we need a seperate flag?

Put another way, is it sufficient to know that results are entered for all sub districts to call a district complete? Or should be use flags to determine this.

acrawford commented 12 years ago

In our particular process, entered results are sufficient to call a district complete in almost all circumstances. When things go normally at the polls this can be counted upon. The issue develops when something at the lowest level district doesn't go "as planned" or there is a recount etc. or for some data-entry timing reason, results for a sub-district are entered incompletely. I think a flag is very desirable as we have a person on election night doing QC on the data entry and a checkbox would facilitate that. What are we looking at for a time to add that field to the ballot item content type? and how would we modify the API to handle that flag?

gdoteof commented 12 years ago

Ok, so we will have a flag.

We won't add the field to the ballot item content type; we will add it to the district on the same UI as where the votes are being entered now.

gdoteof commented 12 years ago

Ok, we have a flag. I put it for each ballot item on the district->edit results UI.

now, how to pull this into the API?

bradley-holt commented 12 years ago

I'm not sure exactly what this should look like in the API yet, other than that I'll like this data at the ballot item results level. I imagine it will probably just be boolean field, maybe complete? The above URIs were so that I could look through each one and request the needed changes for each. I can address the details in a new ticket or tickets. However, not having separate URIs for ballot item results (currently discussed in #3) at the aggregate level makes it hard to verify all of the permutations.

gdoteof commented 12 years ago

@bradley-holt there ARE seperate URIs for ballot item results..

e/town-meeting-season-2011/town-meeting-day-2011/ward-5/burlington-school-budget

bradley-holt commented 12 years ago

@gdoteof but there are no ballot item results aggregated at a parent district level:

e/town-meeting-season-2011/town-meeting-day-2011/city-of-burlington/burlington-school-budget

gdoteof commented 12 years ago

ahhh. now it is clear.

acrawford commented 12 years ago

edited the table at the top to reflect the new URI's available

bradley-holt commented 12 years ago

Great—this is helpful so that I can test each permutation individually.

acrawford commented 12 years ago

I will try and setup this data over the weekend so that everything is reflected properly in the table above.