Condorcet Election Format
The Condorcet Election Format is a free and standardized open election descriptor standard. Its purpose is to define an election with parameters, candidates, and votes. They were originally proposed by Julien Boudry as part of the Condorcet PHP project.
The objective of this format is to be easily written and read by a human, with the rigor and precision necessary for ingestion by a program. It is also concise because it allows (optionally) identical votes to be cast in a single line, as well as a parameter ordering how to interpret incomplete votes.
It does not include the election results, because its goal is to be ingested by a program that will proceed to the calculation of the results; this format is thus intended to parameterize the election and its votes, defining precise inputs not suffering from interpretation to the program.
The Condorcet format was designed to replace other formats that are: difficult to understand by a human being, poorly documented (or changing over time), incomplete, or not very precise. Like the DavidHill format or the Debian Election format.
This is not an individual ballot format, but a format for summarizing all the data, before calculating the results. Although the vote expression format is perfectly suited for integration with a ballot format. This format is intended to be extensible, non-standard properties can be defined, and they will be ignored by programs that do not support them. Since the format allows for tagging each vote, extensible use of this metadata is possible (example: voter name, electronic signature...).
Currently, only Condorcet PHP program supports this format in ingestion but also in export.
Full specifications
Full specifications are available on Github.
Limitations
- The current V1 only allows expressing votes in the form of ranking (ties are possible), which is perfect for Preferential voting methods. This is by extension compatible with methods such as choose-one ballot voting (by only looking at a voter's 1st choice candidate if the voter has several first choices), but is incompatible with very different voting methods such as majority approval voting or score voting.
It would however be structurally possible to handle these formats but requires additional specifications.
- The current V1 allows specifying weights on some votes (some votes are then worth more than others), but these weights are for the moment necessarily integer numbers and not decimals.
- As this format is designed to describe an election but not its results. It is also not designed to represent a multiple-round election. It is however possible to use a different file per round, which normally makes sense. Or you can replay the same file, deleting the candidates eliminated in the previous rounds.
- There is no standard format for electronic signatures on votes. However, it is possible to use the tag system to include one.