La banca la gana la lista: una calculadora D'Hondt para las municipales (y otras elecciones)
Se vota a la lista, no a la persona. Hice una calculadora para ver el reparto de las candidaturas reales del 4 de octubre y lo que pasó en 2023
"¿Cómo puede ser que fulano entró con menos votos que mengano, que quedó afuera?" La pregunta se repite en cada elección y va a volver el 4 de octubre. Yo termino contestándola con las manos, haciendo divisiones en el aire, y no funciona nunca.
La respuesta está en un solo artículo del Código Electoral, el 258, que reparte bancas entre listas y no entre personas. Normalmente leerlo no alcanza. D'Hondt se entiende cuando lo ves moverse: cargás votos, cambiás un número, y el reparto se acomoda de una forma que muchas veces no es la que uno esperaba.
Así que armé una calculadora. Reparte las bancas y muestra quiénes quedan electos. Las Juntas Municipales de Asunción, Encarnación y Ciudad del Este vienen cargadas con las candidaturas oficiales del TSJE: las nóminas completas, los números de lista, las siglas y los colores de la boleta. Los votos van en cero. Los pone quien la usa.
Está en bancas.melizeche.com. Es software libre bajo licencia AGPL-3.0 y el código está en GitHub.

Las bancas las gana la lista
Esta es la parte que a mucha gente le cuesta entender. El voto preferente decide el orden dentro de la lista. No decide cuántas bancas gana la lista.

Para mostrarlo armé un ejemplo con Star Wars: tres listas, diez bancas. En el Imperio sólo dos nombres juntaron votos, Vader con 96.000 y Palpatine con 63.000. Los otros ocho son stormtroopers innominados con un voto cada uno, salvo TD-9091, que tiene dos. La lista suma 159.009 votos y eso le alcanza para cinco bancas. Vader y Palpatine ocupan dos. Las otras tres se las llevan stormtroopers. TD-9091, que iba último de la nómina, sube siete lugares y entra con sus dos votos. TK-421 y TK-422 entran con uno; como empatan entre ellos, el orden lo define la nómina del partido, que es lo que manda el Artículo 258.
Es un ejemplo absurdo a propósito. Lo interesante es que no hace falta inventar nada.
Encuentro Nacional, 2023
En las Generales de 2023, Encuentro Nacional sacó 148.505 votos y ganó dos bancas de senador. De esos 148.505, Kattya González sacó 100.155 votos preferentes. Ella sola juntó el 67 % de todo lo que sacó la lista.
La segunda banca fue para Patrick Kemper, con 7.315 votos. Casi catorce veces menos que Kattya. Iba tercero en la nómina y el voto preferente lo subió al segundo lugar, así que entró.

Ahora la parte que a varios descoloca: hubo 27 candidatos de otras listas que sacaron más votos preferentes que Kemper y no entraron. El que más sacó tuvo 21.964, tres veces más, y se quedó afuera igual. No porque haya sacado pocos votos, sino porque la lista donde estaba ya había llenado sus bancas.
Y al revés también funciona. Si le sacamos a la lista los 100.155 votos que fue a buscar Kattya (suponiendo que esos votos no hubiesen ido a ninguna otra parte), Encuentro Nacional queda con 48.350 y no saca ninguna banca. Ni la de ella ni la de Kemper. La banca de Kemper no la ganó Kemper: la ganó la lista. Lo que sí decidieron sus 7.315 votos fue que la ocupe él. Con la lista bloqueada, esa banca era de Fernando Camacho, que iba segundo y sacó 4.021.
Nada de esto es un reproche a nadie. Así está escrito el sistema que usamos y es lo que la calculadora deja ver moviendo números.
Hay algo más de esa elección que vale la pena mirar. La banca 45, la última que se repartió, se definió por poco más de mil. Entró Yo Creo con sus 56.386 votos, que como era su primera banca se dividen por uno. Quedó afuera la sexta banca de Cruzada Nacional: sus 331.945 votos divididos por seis dan 55.324. Otra vez, ningún voto preferente del sexto candidato de esa lista lo habría salvado. Lo que faltó no le faltó a él.
Lo que decide tu voto
Eso tiene una consecuencia concreta en las elecciones. Tu voto hace dos cosas a la vez, y no se pueden separar: nombra a un candidato y suma al total de su lista. Así que si te gusta uno y el resto de su lista no, ese voto también los favorece a ellos. Lo que hacés es intentar influir en cuál entra primero, no en cuántos entran.

Se ve en el ejemplo de Star Wars. Los Separatistas tienen 60.000 votos y una sola banca, la de Dooku. Sumales un voto, uno solo, a Lott Dod, que va último con 200 y que no entra ni cerca: con 60.001 la lista pasa a tener dos bancas y la segunda es de General Grievous. La que se cae es la de Mon Mothma, en otra lista. Quien votó a Lott Dod no eligió a Grievous ni sacó a Mon Mothma, pero sí hizo las dos cosas. El ejemplo está justo en el límite, con los dos puntajes exactamente iguales. En la vida real no siempre es tan justo, aunque puede andar cerca: en Asunción 2021 la última banca se definió por el 1,6%, y en los Senadores de 2023 por el 1,9%.
Al sistema que usamos muchos le llaman "lista abierta" y, digamos que no es así. Elegís una sola lista y podés cambiar el orden adentro, pero no podés armar tu propia mezcla con candidatos de listas distintas. Eso último acá no existe. Se llama panachage y se usa en Suiza y Luxemburgo: el votante reparte sus votos entre listas, marcando la papeleta a mano.
Qué hace la calculadora
Todo lo de arriba se puede abrir y mirar, sin creerme a mí.
Son dos páginas con los mismos datos y se pasa de una a la otra sin perder nada. En una cargás el total de votos de cada lista (más simple) y ves cuántas bancas saca cada partido. En la otra cargás los votos de cada candidato, uno por uno, y el total de la lista sale automáticamente en tiempo real.
Las dos muestran el reparto banca por banca y la tabla que lo explica: los votos de cada lista divididos por 1, 2, 3, y cada banca va al puntaje más alto. La página por candidato agrega lo que pasa adentro de cada lista, que es donde entra el voto preferente de las listas desbloqueadas (Ley 6318/2019): la nómina reordenada por votos, con la posición en la que quedó cada candidato, la que le había puesto el partido, y cuántos lugares subió o bajó. Al final, los electos.
Si no querés cargar números a mano, hay un botón de "Votos al azar". Sortea un resultado para que haya algo que repartir y no predice nada.
Si querés el paso a paso, hay una guía corta que explica el método banca por banca, con un ejemplo de tres listas y cinco bancas hecho a mano.
Cómo sé que calcula bien
Una calculadora electoral que devuelve números prolijos no sirve de nada si los números están mal. Así que además de las candidaturas vienen cargadas dos elecciones que ya pasaron, con sus resultados oficiales, para poder comparar lo que calcula contra lo que efectivamente ocurrió.
La de Senadores 2023 es la de arriba: 18 listas, 45 bancas, 2,9 millones de votos. Lo que da es ANR 23, Alianza 12, Cruzada Nacional 5, Encuentro Nacional 2, y una banca para Patria Querida, Frente Guasu y Yo Creo: la composición que se proclamó. Y también los 45 nombres, cada uno en el puesto en que ganó su banca, iguales a la lista oficial de electos.
La otra es la Junta Municipal de Asunción de 2021: 23 listas, 24 bancas, 552 candidatos. Da ANR 15, PLRA 5, Patria Querida 3 y Encuentro Ciudadano 1, que es la Junta que asumió. Otra vez con los nombres: los 24 que calcula son los 24 concejales que asumieron, en el orden en que el voto preferente los dejó.
Las dos están fijadas en los tests del repositorio, con los nombres incluidos. Si un cambio en el cálculo rompe alguna, se nota antes de publicar.
Probala
Está en bancas.melizeche.com. Podés cargar los votos que se te ocurran para tu ciudad y ver qué Junta sale. O abrir cualquiera de las dos elecciones viejas y hacer lo que hice recién: mover unos miles de votos de una lista a otra, o vaciar a un candidato que arrastra, y ver qué se cae.
Hay un caso que la herramienta no resuelve. Cuando dos listas empatan en el puntaje de la última banca y también empatan en votos, el Código Electoral determina por sorteo. Ahí la página lo avisa y se queda callada, porque eso no lo decide un programa.
Vienen cargadas tres ciudades, pero no está atada a ellas: sirve para cualquier elección proporcional por listas. Si querés la tuya y no está, en el repo están las herramientas para generar los datos (los pull requests son bienvenidos). Si no, abrí un issue y lo puede tomar cualquiera.
Una aclaración, porque me la van a hacer igual: que escriba un software electoral no me vuelve partidario de meter computadoras en el acto de votar. Sigo pensando lo mismo que dije en este debate de 2019 con el director de informática del TSJE y en esta nota: la boleta se marca a mano, y la tecnología va en el conteo y la transmisión, no entre el votante y su voto. Esta calculadora es justamente eso, aritmética sobre números que ya son públicos.
Y hay bastante que el TSJE podría hacer para ofrecer más garantías y disipar dudas. Por nombrar tres: abrir el código a cualquier ciudadano y no sólo a los partidos, que se pueda verificar que el código auditado es el que corre el día de la elección y no otra versión, y hacer auditorías postelectorales que comprueben a mano lo que dio la máquina. Pero eso ya escapa de este post.
Herramienta de cálculo no oficial, sin relación con el TSJE ni con ningún partido.