
Durante el conteo de votos de estas elecciones municipales, los lectores pueden proyectar el reparto de bancas sin complicaciones matemáticas. El simulador del Sistema D’Hondt permite elegir la cantidad de escaños en juego —los 24 de Asunción, o los 12 y 9 concejales del resto de los distritos del país— e ingresar los votos de cada lista. De forma inmediata, el sistema aplica la fórmula D’Hondt dividiendo los sufragios de cada fuerza y ordenando los coeficientes más altos para mostrar quiénes integrarán el legislativo local a partir del 3 de noviembre.
La herramienta también aclara el panorama real de la competencia: mientras los votos en blanco se computan como válidos para medir la participación ciudadana, no intervienen en el cálculo de bancas. De esta manera, el usuario puede comprobar minuto a minuto el cociente de corte exacto para ganar un lugar y ver cómo cada voto define las últimas bancas en disputa entre los partidos.
EN VIVO, Elecciones Municipales Paraguay 2026: hay 18 detenidos por delitos electorales
@import url(‘https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Barlow:wght@400;500;600;700&display=swap’);
:root{ –red:#CC0000; –red-dark:#9C0000; –yellow:#FFF200; –black:#141414; –paper:#F3F2EF; –panel:#FFFFFF; –line:#E2E0DA; –ink-soft:#5B5952; –a:#E2691F; –a-soft:#F7DCC4; –b:#B98A2E; –b-soft:#F0E1C3; –c:#4C7A6C; –c-soft:#D7E5DF;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{ background:var(–paper); color:var(–black); font-family:’Barlow’,Arial,sans-serif; line-height:1.45; -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1040px;margin:0 auto;}
/* ———- Header ———- */
.topbar{background:var(–black);height:6px;}
header.masthead{ background:linear-gradient(180deg,var(–red) 0%,var(–red-dark) 100%); padding:14px 20px;
}
header.masthead .wrap{ display:flex;align-items:center;gap:10px;
}
header.masthead .tag{ width:8px;height:26px;background:var(–yellow);flex:none;
}
header.masthead h1{ margin:0; font-family:’Barlow Condensed’,sans-serif; font-weight:700; letter-spacing:.04em; font-size:clamp(18px,4vw,24px); color:#fff;
}
/* ———- Hero ———- */
.hero{padding:34px 20px 10px;}
.hero .eyebrow{ color:var(–red); font-weight:700; font-size:14px; letter-spacing:.02em; margin:0 0 4px;
}
.hero h2{ font-family:’Barlow Condensed’,sans-serif; font-weight:800; font-size:clamp(34px,7vw,54px); line-height:.95; margin:0 0 14px; color:var(–black);
}
.hero p{ max-width:60ch; font-size:16px; color:var(–ink-soft); margin:0;
}
.hero p strong{color:var(–black);}
/* ———- Controls ———- */
.controls{ margin:26px 20px 0; background:var(–panel); border:1px solid var(–line); border-radius:4px; padding:20px;
}
.controls .controls-head{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:16px; flex-wrap:wrap;
}
.controls h3{ font-family:’Barlow Condensed’,sans-serif; font-weight:700; font-size:20px; margin:0; text-transform:uppercase; letter-spacing:.03em;
}
.controls .reset-link{ background:none;border:none; color:var(–red); font-family:’Barlow’,sans-serif; font-weight:600; font-size:14px; cursor:pointer; padding:0; text-decoration:underline;
}
.control-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:14px;
}
.field{ display:flex; flex-direction:column; gap:6px; padding:12px; border-radius:3px; background:var(–paper); border-left:6px solid var(–line);
}
.field.party-a{border-left-color:var(–a);}
.field.party-b{border-left-color:var(–b);}
.field.party-c{border-left-color:var(–c);}
.field label{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(–ink-soft);
}
.field input{ font-family:’Barlow Condensed’,sans-serif; font-weight:700; font-size:22px; border:1px solid var(–line); border-radius:3px; padding:6px 8px; background:#fff; color:var(–black); width:100%;
}
.field input:focus{ outline:2px solid var(–red); outline-offset:1px;
}
.field.seats{border-left-color:var(–black);}
/* ———- Sections shared ———- */
section.block{padding:30px 20px 6px;}
section.block h3.section-title{ font-family:’Barlow Condensed’,sans-serif; font-weight:700; font-size:20px; text-transform:uppercase; letter-spacing:.03em; margin:0 0 4px; padding-bottom:10px; border-bottom:2px solid var(–black);
}
section.block .section-sub{ font-size:13px; color:var(–ink-soft); margin:8px 0 18px;
}
/* ———- Bars ———- */
.bars-panel{ background:var(–panel); border:1px solid var(–line); border-radius:4px; padding:24px 20px 16px;
}
.bars-row{ display:flex; align-items:flex-end; gap:22px; height:220px; padding:0 6px; border-bottom:2px solid var(–black);
}
.bar-col{ flex:1; display:flex; flex-direction:column; align-items:center; height:100%; justify-content:flex-end;
}
.bar-value{ font-family:’Barlow Condensed’,sans-serif; font-weight:800; font-size:15px; margin-bottom:6px; color:var(–black);
}
.bar-shape{ width:100%; max-width:120px; border-radius:2px 2px 0 0; transition:height .5s ease; position:relative;
}
.bar-shape.a{background:var(–a);}
.bar-shape.b{background:var(–b);}
.bar-shape.c{background:var(–c);}
.bar-labels{ display:flex; gap:22px; padding:10px 6px 0;
}
.bar-label-col{ flex:1; text-align:center; font-family:’Barlow Condensed’,sans-serif; font-weight:700; font-size:17px; letter-spacing:.02em;
}
.bar-label-col.a{color:var(–a);}
.bar-label-col.b{color:var(–b);}
.bar-label-col.c{color:var(–c);}
.bar-label-col span{ display:block; font-family:’Barlow’,sans-serif; font-weight:500; font-size:12px; color:var(–ink-soft);
}
/* ———- Quotient table ———- */
.table-panel{ background:var(–panel); border:1px solid var(–line); border-radius:4px; padding:6px 0 4px; overflow-x:auto;
}
table.dhondt{ border-collapse:collapse; width:100%; min-width:520px;
}
table.dhondt th, table.dhondt td{ padding:10px 12px; text-align:center; border-bottom:1px solid var(–line); border-right:1px solid var(–line);
}
table.dhondt th:last-child, table.dhondt td:last-child{border-right:none;}
table.dhondt thead th{ font-family:’Barlow Condensed’,sans-serif; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:.03em; color:var(–ink-soft); background:var(–paper);
}
table.dhondt thead th.party-head{ text-align:left; min-width:150px;
}
td.party-cell{ text-align:left; font-family:’Barlow Condensed’,sans-serif; font-weight:700; font-size:15px; display:flex; align-items:center; gap:8px; border-right:1px solid var(–line);
}
.swatch{width:14px;height:14px;border-radius:2px;flex:none;}
.swatch.a{background:var(–a);}
.swatch.b{background:var(–b);}
.swatch.c{background:var(–c);}
td.qc{ font-family:’Barlow Condensed’,sans-serif; font-weight:600; font-size:15px; color:var(–ink-soft); position:relative; cursor:default;
}
td.qc.win{ color:#fff; font-weight:700;
}
td.qc.win.a{background:var(–a);}
td.qc.win.b{background:var(–b);}
td.qc.win.c{background:var(–c);}
td.qc .seat-tag{ display:block; font-size:10px; font-weight:800; letter-spacing:.03em; opacity:.85; margin-bottom:2px;
}
td.qc .calc{ display:block; font-size:10px; font-weight:500; color:var(–ink-soft); margin-top:2px;
}
td.qc.win .calc{color:rgba(255,255,255,.85);}
/* ———- Results ———- */
.results-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; margin:0 0 8px;
}
.result-card{ background:var(–panel); border:1px solid var(–line); border-left:8px solid var(–line); border-radius:3px; padding:16px;
}
.result-card.a{border-left-color:var(–a);}
.result-card.b{border-left-color:var(–b);}
.result-card.c{border-left-color:var(–c);}
.result-card .party-name{ font-family:’Barlow Condensed’,sans-serif; font-weight:700; font-size:16px; margin:0 0 8px;
}
.result-card .seat-count{ font-family:’Barlow Condensed’,sans-serif; font-weight:800; font-size:40px; line-height:1; margin:0 0 4px;
}
.result-card .seat-word{ font-size:12px; color:var(–ink-soft); text-transform:uppercase; letter-spacing:.03em;
}
.result-card .pct{ margin-top:10px; font-size:13px; color:var(–ink-soft);
}
.seat-strip{ display:flex; height:22px; border-radius:3px; overflow:hidden; margin:18px 0 4px; border:1px solid var(–line);
}
.seat-strip span{transition:width .5s ease;}
.seat-strip span.a{background:var(–a);}
.seat-strip span.b{background:var(–b);}
.seat-strip span.c{background:var(–c);}
.total-note{ font-size:13px; color:var(–ink-soft); margin:4px 0 0;
}
/* ———- Explainer ———- */
.explainer{ background:var(–black); color:#fff; border-radius:4px; padding:20px; margin-top:22px;
}
.explainer h4{ font-family:’Barlow Condensed’,sans-serif; font-weight:700; font-size:16px; margin:0 0 8px; color:var(–yellow); text-transform:uppercase; letter-spacing:.03em;
}
.explainer p{margin:0;font-size:14px;color:#D9D7D1;}
.explainer code{ background:rgba(255,255,255,.1); padding:1px 6px; border-radius:2px; font-family:’Barlow Condensed’,sans-serif; color:#fff;
}
/* ———- Footer ———- */
footer{ margin-top:34px; padding:18px 20px 26px; border-top:1px solid var(–line);
}
footer p{ font-size:12px; color:var(–ink-soft); margin:0;
}
/* ———- Responsive ———- */
@media (max-width:560px){ .bars-row{height:170px;gap:14px;} .bar-shape{max-width:80px;} .bars-labels, .bar-labels{gap:14px;} .result-card .seat-count{font-size:32px;} section.block{padding:24px 14px 6px;} .hero{padding:26px 14px 6px;} .controls{margin:20px 14px 0;padding:16px;} table.dhondt{min-width:480px;}
}
@media (prefers-reduced-motion: reduce){ .bar-shape, .seat-strip span{transition:none;}
}
Fórmula D’Hondt
Cómo se reparten las bancas
Sistema D’Hondt
El método D’Hondt divide los votos de cada lista sucesivamente por 1, 2, 3, 4… Los cocientes más altos, ordenados de mayor a menor, ganan las bancas en disputa hasta completarlas todas. Cambiá los votos o la cantidad de bancas para ver cómo se recalcula el reparto.
Simulador
Votos por lista
La altura de cada barra es proporcional a la cantidad de votos obtenidos.
Tabla de cocientes
Cada celda es el resultado de dividir los votos de la lista por el divisor de esa columna. Las celdas coloreadas son las bancas asignadas, en el orden en que se ganaron.
Resultado final
Cómo se lee la tabla
Cada partido divide sus votos por 1, 2, 3… Todos los cocientes de todas las listas se ordenan juntos de mayor a menor, y se van entregando las bancas una por una —N.°1, N.°2, N.°3…— hasta agotar el total disponible.
(function(){ const DEFAULTS = { a:51000, b:30000, c:18000, seats:9 }; const PARTIES = [ { key:’a’, name:’Lista A’, input:null }, { key:’b’, name:’Lista B’, input:null }, { key:’c’, name:’Lista C’, input:null } ]; const votesA = document.getElementById(‘votesA’); const votesB = document.getElementById(‘votesB’); const votesC = document.getElementById(‘votesC’); const seatsInput = document.getElementById(‘seatsTotal’); const resetBtn = document.getElementById(‘resetBtn’); function fmt(n){ return n.toLocaleString(‘es-PY’); } function getVotes(){ return { a: Math.max(0, parseInt(votesA.value,10) || 0), b: Math.max(0, parseInt(votesB.value,10) || 0), c: Math.max(0, parseInt(votesC.value,10) || 0) }; } function getSeats(){ let s = parseInt(seatsInput.value,10) || 1; if(s 15) s = 15; return s; } function computeDHondt(votes, totalSeats){ const quotients = []; [‘a’,’b’,’c’].forEach(key=>{ for(let d=1; d{ if(y.value !== x.value) return y.value – x.value; if(votes[y.party] !== votes[x.party]) return votes[y.party]-votes[x.party]; return x.party.localeCompare(y.party); }); const winners = quotients.slice(0, totalSeats).filter(q=>q.value>0); winners.forEach((w,i)=> w.rank = i+1); const seatCounts = { a:0, b:0, c:0 }; winners.forEach(w=> seatCounts[w.party]++ ); const winnerMap = {}; // «party-divisor» -> rank let maxDivisorUsed = 1; winners.forEach(w=>{ winnerMap[w.party+’-‘+w.divisor] = w.rank; if(w.divisor > maxDivisorUsed) maxDivisorUsed = w.divisor; }); return { seatCounts, winnerMap, maxDivisorUsed, winnersCount: winners.length }; } function renderBars(votes){ const max = Math.max(votes.a, votes.b, votes.c, 1); const maxHeight = window.innerWidth <= 560 ? 150 : 190; document.getElementById(‘barValA’).textContent = fmt(votes.a); document.getElementById(‘barValB’).textContent = fmt(votes.b); document.getElementById(‘barValC’).textContent = fmt(votes.c); document.getElementById(‘barShapeA’).style.height = (votes.a/max*maxHeight)+’px’; document.getElementById(‘barShapeB’).style.height = (votes.b/max*maxHeight)+’px’; document.getElementById(‘barShapeC’).style.height = (votes.c/max*maxHeight)+’px’; } function renderTable(votes, result){ const cols = Math.max(result.maxDivisorUsed, 1); const head = document.getElementById(‘tableHead’); const body = document.getElementById(‘tableBody’); head.innerHTML = »; body.innerHTML = »; const thParty = document.createElement(‘th’); thParty.className = ‘party-head’; thParty.textContent = ‘Lista ÷ divisor’; head.appendChild(thParty); for(let d=1; d{ const tr = document.createElement(‘tr’); const tdName = document.createElement(‘td’); tdName.className = ‘party-cell’; tdName.innerHTML = ‘‘+row.label; tr.appendChild(tdName); for(let d=1; d<=cols; d++){ const td = document.createElement(‘td’); td.className = ‘qc’; const val = votes[row.key] / d; const rank = result.winnerMap[row.key+’-‘+d]; if(rank){ td.classList.add(‘win’, row.cls); td.innerHTML = ‘N.u00B0’+rank+’‘+fmt(Math.round(val))+ ‘‘+fmt(votes[row.key])+’ u00F7 ‘+d+’‘; } else { td.innerHTML = fmt(Math.round(val))+ ‘‘+fmt(votes[row.key])+’ u00F7 ‘+d+’‘; } tr.appendChild(td); } body.appendChild(tr); }); } function renderResults(votes, result, totalSeats){ const grid = document.getElementById(‘resultsGrid’); grid.innerHTML = »; const totalVotes = votes.a + votes.b + votes.c; const rows = [ { key:’a’, label:’Lista A’ }, { key:’b’, label:’Lista B’ }, { key:’c’, label:’Lista C’ } ]; rows.forEach(row=>{ const seats = result.seatCounts[row.key]; const votePct = totalVotes ? (votes[row.key]/totalVotes*100).toFixed(1) : ‘0.0’; const card = document.createElement(‘div’); card.className = ‘result-card ‘+row.key; card.innerHTML = ‘
‘+row.label+’
‘+ ‘
‘+seats+’
‘+ ‘
‘+(seats===1?’banca’:’bancas’)+’
‘+ ‘
‘+votePct+’% de los votos
‘; grid.appendChild(card); }); document.getElementById(‘totalSeatsNote’).textContent = result.winnersCount+’ de ‘+totalSeats+’ banca’+(totalSeats===1?»:’s’)+’ en disputa asignada’+(result.winnersCount===1?»:’s’)+’.’; const strip = document.getElementById(‘seatStrip’); strip.innerHTML = »; rows.forEach(row=>{ const seats = result.seatCounts[row.key]; if(seats{ el.addEventListener(‘input’, update); }); window.addEventListener(‘resize’, ()=> renderBars(getVotes())); resetBtn.addEventListener(‘click’, function(){ votesA.value = DEFAULTS.a; votesB.value = DEFAULTS.b; votesC.value = DEFAULTS.c; seatsInput.value = DEFAULTS.seats; update(); }); update();
})();
https://www.abc.com.py/politica/2026/10/04/simulador-dhondt-calcula-cuantas-bancas-gana-cada-partido-en-tu-municipio/
ACERCA DEL CORRESPONSAL
REDACCIóN CENTRAL
Prensa Mercosur es un diario online de iniciativa privada que fue fundado en 2001, donde nuestro principal objetivos es trabajar y apoyar a órganos públicos y privados.
- ★ASUS presenta su primer GoogleBook 14, con diseño premium, Gemini integrado y hasta 18 horas de autonomía
- ★Huawei presenta Mate90 Pro Max, su móvil insignia con chip Kirin 9050 Pro, batería 6.800mAh y teleobjetivo de 200MP
- ★Ramyeon Coreano: O que é, Diferença do Ramen Japonês e Como Preparar
- ★Chicken Tikka Masala: Guia e Receita
- ★Es verdad, el rival de Milei es él mismo, y va perdiendo

