Skip to content

Main content

Seat Transfer Remainder Gap Tool

Compare explicit unassigned-seat remainders without selecting an apportionment method.

Loading tool…

Description

Compare explicit unassigned-seat remainders without selecting an apportionment method.

Election and representation indicators depend on the selected vote, seat, population, or eligibility denominator. A threshold also needs an explicit equality and rounding rule. A single quotient, balance, or share can support a larger counting workflow without implementing the full electoral procedure.

Compare explicit unassigned-seat remainders without selecting an apportionment method.

When to use this tool

Use Seat Transfer Remainder Gap when you need this particular counting term under an explicit vote, seat, threshold, or reporting-base rule.

How to use the tool and how it works

  1. Enter beforeSeats, afterSeats, totalSeats. Keep parallel arrays aligned. Use the units and conventions below.
  2. Run the tool. Correct any format, range, or cross-field input error before interpreting the output.
  3. Read beforeRemainderDecimal, afterRemainderDecimal, remainderChangeDecimal. Use the output convention below.

Require equally sized nonnegative integer beforeSeats and afterSeats arrays and nonnegative integer totalSeats. Use exact integer sums for beforeRemainderDecimal=totalSeats-sum(beforeSeats), afterRemainderDecimal=totalSeats-sum(afterSeats), and remainderChangeDecimal=after-before.1

Input fieldMeaning and unitsAccepted input
beforeSeatsBefore SeatsRequired. Array of safe integer; maximum items 256.
afterSeatsAfter SeatsRequired. Array of safe integer; maximum items 256.
totalSeatsTotal SeatsRequired. Safe integer; minimum 0.
Output fieldInterpretationReturned shape
beforeRemainderDecimalExact signed decimal integer text; total minus prior assigned seats.Required. Text; maximum UTF-16 length 8192.
afterRemainderDecimalExact signed decimal integer text; total minus new assigned seats.Required. Text; maximum UTF-16 length 8192.
remainderChangeDecimalRemainder Change DecimalRequired. Text; maximum UTF-16 length 8192.
json
{
  "input": {
    "beforeSeats": [
      2,
      3
    ],
    "afterSeats": [
      3,
      3
    ],
    "totalSeats": 7
  },
  "output": {
    "beforeRemainderDecimal": "2",
    "afterRemainderDecimal": "1",
    "remainderChangeDecimal": "-1"
  }
}

Limitations and assumptions

  • Results are decimal integer text and may be negative when assigned seats exceed the total. Seat conservation and a valid transfer procedure are not enforced.
  • Inputs must satisfy both the field types and the cross-field conditions above. Invalid input causes an error; a successful false flag or documented placeholder is a different result.
  • Numeric calculations use binary floating point unless exact decimal-integer arithmetic is explicitly stated. No hidden measurement tolerance or decimal rounding is added; nonfinite or out-of-contract results are rejected. Signed zero is exported as zero.

Alternative or Complementary methods

Compare the supplied counting rule with the authoritative procedure for the relevant election or chamber. Complete allocations need additional eligibility, ranking, transfer, tie, and reporting rules beyond one arithmetic term.

References

  1. Calculation and input contract: political-science/seat-transfer-remainder-gap — tool.io

Similar or alternative tools

  • Ballot Transfer Exhaustion One Round

    For nonnegative integer transferable, exhausted within transferable, and nonnegative integer receivedByCandidates, return continuing=sum(receivedByCandidates), accounted=exhausted+continuing, and balanced=(accounted===transferable).

  • Bicameral Seat Share One Chamber

    For positive integer occupiedSeats, partySeats within occupiedSeats, and nonnegative vacantSeats choose denominator=occupiedSeats plus vacantSeats only if includeVacancies; return share=partySeats/denominator.