Omnigraph
Graph engine for context assembly. Object-storage native. Agents work with graph data the way engineers work with code: branched, typed, reviewed, merged, audited, and governed.
Seat projection for the Spanish general election of 29 November 2026 (Shiny app, R)
DataGitHub @jordi-munozOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A Shiny app that turns national polls into a seat projection, province by province, for the Spanish general election of 29 November 2026. Interface in English, Catalan and Spanish.
Live app: https://01a134f6-f370-5588-3fa4-78361b68e2a7.share.connect.posit.cloud/
Party lists for 2026: Frente Amplio and Podemos run separately, except as Compromís-Front Valencià in the three Valencian provinces and as Unidad del Pueblo Canario in the Canary Islands. Podemos does not run in Catalonia, where its votes are split equally between ERC and Frente Amplio.
The full method, with its assumptions and limits, is in the app's Method tab (English, Català, Español). Fed the real 2023 vote, the code reproduces the official 2023 seat allocation exactly.
The default projection is published as data for use in other interfaces. A GitHub Action (publish-data.yml) rebuilds it every morning with the latest polls and publishes it on GitHub Pages. These are the permanent addresses:
The app also serves the same files, as of its last start, at /export/projection.json and /export/projection.csv on its own address. To rebuild the files locally: Rscript scripts/export_data.R [folder].
Both cover national and provincial results: projected vote share, seats, the 90% interval, P(seat), and the 2023 vote and seats. The JSON also has the probability of each successive seat in every province, the poll source and settings, and a description of every field (meta.fields).
Requires R 4.1 or later. On Linux, the sf package needs the GDAL, GEOS and PROJ system libraries.
source("run_app.R") # installs missing packages and opens the app in the browser
Tests:
testthat::test_dir("tests/testthat")
| Path | Contents |
|---|---|
app.R | interface and server |
R/data.R | parties, 2023 baseline, poll readers |
R/model.R | trend estimate, raking, D'Hondt, Monte Carlo |
R/export.R | JSON and CSV export |
R/i18n.R | interface texts in three languages |
method_*.md, dhondt_*.md | Method and D'Hondt tabs |
data/provinces.rds | province map, built by scripts/prepare_map.R |
data/aa_prior.csv | provincial distribution of Adelante Andalucía (Andalusian regional election) |
PROV_02_*/ | results by province, Ministerio del Interior (2023 is used by the app; 2019 for calibration) |
scripts/deploy.R | publishes to Posit Connect Cloud |
scripts/export_data.R | writes the data files without the app (run daily by the GitHub Action) |
scripts/export_polls_chart.R | writes the poll chart data to export/polls_chart.csv locally |
tests/ | testthat tests |
Election results: Ministerio del Interior. Polls: Wikipedia contributors and POLITICO Europe. Map: mapSpain, from Eurostat GISCO boundaries.
Jordi Muñoz, Universitat de Barcelona (www.jordimunoz.cat). Code under the MIT licence.