# An Upper Bound on the District-Level Disproportionality
9 September 2025
There are a handful of ways to measure disproportionality---the extent to which the distribution of seats differs from the distribution of votes---but by far the most common in political science is the Gallagher index:
$
D = \sqrt{\frac{1}{2}\sum_i^{N_{V0}}\left(v_i - s_i \right)^2}
$
Where $N_{V0}$ is the number of vote-winning parties, $v_i$ the vote share of party $i$, and $s_i$ the seat share of party $i$. In principle, the Gallagher index can vary between 0 (perfect *proportionality*) and 1 (perfect *disproportionality*). However, if we assume that an election is conducted freely and fairly, then the upper bound is lower than 1.
Imagine some election held in some electoral district of an arbitrary district magnitude. We reach the quantity's upper bound where some result is as disproportional as possible. Assuming that the election is conducted fairly, and no party wins a seat with fewer votes than any other, then disproportionality is maximised where all parties receive an equal share of the vote but only one party wins any seats. In this case, all $v_i = \frac{1}{N_{V0}}$, $s_1 = 1$, and all other $s_i = 0$.
Disproportionality varies according to $N_{V0}$. Lower values of $N_{V0}$ produce lower upper bounds on $D$, the lowest being $D = 0.5$ where $N_{V0} = 2$. The following `R` code plots out what happens to the upper bound as we let $N_{V0}$ grow: it converges on a value around 0.71.
```
# Load tidyverse packages
library(tidyverse)
# Plot maximal disproportionality as number of parties grows
tibble(
n = 2:100,
d =
map_dbl(
.x = n,
.f = \(x){
v <- rep(1/x, x)
s <- c(1, rep(0, x-1))
sqrt(0.5 * sum( (v - s)^2 ))
}
)
) |>
ggplot() +
aes(
x = n,
y = d
) +
geom_line()
```
Solving for this value is relatively straightforward. Consider the case where $N_{V0}\to\infty$. Here, all $v_i \to 0$. This means that, except where $i = 1$, we get $v_i - s_i = 0 - 0 = 0$. As such, we can simply omit them from the equation above, leaving only $v_1$ and $s_1$:
$
D = \sqrt{\frac{1}{2} \left(v_1 - s_1 \right)^2}
$
Further, we know the values that the vote and seat shares for the largest party must take in this case, since it is maximally-disproportional: $v_1 = 0$ and $s_1 = 1$. Simplifying gives:
$
D = \sqrt{\frac{1}{2} \left(0 - 1 \right)^2}
$
$
D = \sqrt{\frac{1}{2} \times 1}
$
$
D = \sqrt{\frac{1}{2}}
$
$
D = \frac{\sqrt{2}}{2} \approx 0.7071068
$
So, logically, no free and fair district-level election can have a disproportionality that exceeds $\frac{\sqrt{2}}{2}$. Knowing this has already proved useful in my research: examining the Constituency-Level Elections Archive data, I found 31 districts where seats had been inadvertently assigned to the wrong party because $D > \frac{\sqrt{2}}{2}$. So, at the very least, this provides a useful data quality check.
#Psephology #Elections