Standardizing Cardinal Ballot Notation

  • Have you ever noticed that ordinal ballots have a nice, compact, universally understood notation for ballot sets, but notation for cardinal ballots seems to be aLl OvEr ThE pLaCe?
    Well I say NO MORE!
    Today, I set out to create a standard ballot notation for cardinal ballots aimed specifically for human readability that is flexible enough to allow full candidate names and robust enough to be used with fonts that are not fixed-width. I CALL IT...well, I don't have a name for it. Maybe I could turn my name into an acronym? Simple And Specific Score Notation (SASS Notation). Eh, that feels super narcissistic. I'm not really a fan of people naming things after themselves. Then again, it actually stands for something...
    ANYWAY, here it is:

    12: Allie/5, Billy/5, Candace/4, Dennis/3, Edith/3, Frank/2, Georgie/1, Harold/0
    7: Allie/4, Billy/0, Candace/2, Dennis/3, Edith/1, Frank/0, Georgie/5, Harold/3
    5: Allie/0, Billy/3, Candace/2, Dennis/3, Edith/4, Frank/5, Georgie/3, Harold/4

    It's pretty flexible. Ballot clusters don't need to be in descending order. If your method treats blanks as 0s, then you can leave those candidates out. If your method has a "No opinion" option, just replace the number with an "n" or something. The order of the candidates within each ballot cluster don't matter either.

    I wasn't sold on the slash at first. Slashes are often escape characters, so that could be a pain for programmers (I know it's basically almost always backslashes, but still). Approval thresholds are usually denoted with a vertical line, which could look weird near a slash, but I would probably put that between its own set of commas with an extra space for clarity.

    12: Allie/5, Billy/5, Candace/4, Dennis/3, Edith/3, | , Frank/2, Georgie/1, Harold/0

    However, when I go through the other options, I don't really find anything better. It's important that the most-used symbols, of which there are 2, are available without having to hold Shift.
    ` ] [ \ / ; ' , . - =
    They should be available on the first set of symbols on smartphones. I use the default keyboard on an iPhone 8, so I don't imagine most Androids are any more limited than my setup.
    / ; ' , . -
    They need not to be used in names.
    / ; , .
    They need to look visually distinct from any characters used in names and the colon we use at the beginning (which requires shift, but it's only used once per line). (The characters that are visually similar to characters used in names happen to already be removed by the smartphone requirement.)
    / , .
    There's enough typing already, so we want each character to stand on its own, i.e. not require a paired character (again, this happens to be solved by the smartphone requirement).
    / , .
    They need to look visually distinct from one another, which leaves us with 2 options.
    / ,
    / .
    The pair with the comma obviously makes the most sense, especially since someone might use a title in a name.

    A more compact version of this notation that I suspect might be used in discussion between passionate voting enthusiasts would look like this:


    In that case, typing the data is pretty efficient on a desktop keyboard — no number pad needed. Turn on Caps Lock and cycle: left hand, right ring finger, left hand, right index finger.

    Given all of that, here's how I really imagine it being used the most often:

    12: A/5, B/5, C/4, D/3, E/3, F/2, G/1, H/0
    7: A/4, B/0, C/2, D/3, E/1, F/0, G/5, H/3
    5: A/0, B/3, C/2, D/3, E/0, F/5, G/3, H/4

    With NYC's IRV race about to blow up in their face with a month between the election and results, us cardinal folks need to create a welcoming space for new interest in voting science. When people just start getting into reading ballot sets and even making their own, they need to be readable and accessible. A standard that doesn't require fixed-width font or tab spacing could be a powerful ally.

    And no, I'm not going to leave you hanging out to dry with no tools for creating these ballot sets. I recently created a real-time STAR Voting calculator in Google Sheets that automatically formats your cardinal ballot data into this pretty format!

    If you leave a cell empty that is both part of a ballot cluster and under a candidate's column, it will be marked 0 in the formatted notation. If you delete a candidate's name without deleting the scores under their column, well, you should be expecting weird anomalies anyway. There's no code. It's all just Sheets formulas.

    So what do you think? Could you get down with some consensus on ballot notation? Should we call it SASS Notation? Should we call it something else? Should we vote on the name? How many more questions do you think I'm going to ask you???

    P.S. I have more acronyms!
    Spic And Span Score Notation
    Slash And Space Score Notation
    Slash And Stop Score Notation (this would work with periods instead of commas)
    Standardized Amateur Sophisticated Score Notation
    Standard Abbreviated Slash Score Notation
    Standard Alias Slash Score Notation (This one is really descriptive!)
    Shortened Alias Slash Score Notation
    Actually, we can just combine a bunch of words that start with S and A.

    Give me your ideas! They don't have to fit the acronym!

  • @Sass Oh oh oh!

    Space Alias Slash Score Notation

    Now that’s descriptive!

  • Keep in mind that the characters displayed by a mobile keyboard vary by the input field. On Android, if I type into the URL field of a browser, the forward slash is in the first set, but if I type in a field like the one used on the forum, it is not. iOS behaves similarly although I am not exactly sure of which characters are available in the first set in a post field on this forum for iOS.

    It might be difficult to find good separators in the first set.

  • Kind of similar to what I was doing in Codepen, for instance here:

    Mine looked like this (when there is only one of a particular vote combination, there is no number and colon on the left needed):

    134: a[5] b[4] c[2] d[1] e[0] f[0]
    64: a[5] b[4] c[3] d[1] e[0] f[0]
    94: a[3] b[5] c[4] d[1] e[0] f[0]
    70: a[2] b[2] c[5] d[2] e[0] f[0]
    63: a[0] b[0] c[0] d[3] e[4] f[5]
    55: a[0] b[0] c[1] d[3] e[5] f[4]
    55: a[0] b[1] c[2] d[3] e[5] f[3]
    48: a[0] b[0] c[1] d[3] e[5] f[5]
    30: a[1] b[0] c[0] d[3] e[3] f[5]
    30: a[0] b[1] c[2] d[5] e[5] f[4]

    You can see I have a parser and all that.

    This one worked with the format of data from an actual election in Maine, which is an ugly and bulky csv format:

    I was doing this when I was hoping that Codepen embedding would be added to this forum, not sure if that is in the works. But I think if it was, having a standard format would gain a lot of traction here.

Log in to reply