Open Halalan GitHub ↗

Dataset live · 2001–2025

Keeping the record straight.

Open Halalan is the largest open-source dataset of Philippine national and local election results. Every winner since 2001, every vote count since 2016, free for anyone and everyone.

Tally board · running count

Winners dataset · cycles 2001–2025 0
Vote counts dataset · cycles 2010–2025 0
Votes counted, all cycles 0

Live counts from data/output/ as of the last dataset build.

About the project

Data para sa bayan.

Researching the Philippines is hard. Finding the data doesn't have to be. OpenHalalan started as a byproduct of an undergraduate thesis on Philippine political dynasties. It's non-partisan, volunteer-run, and independent: no party, campaign, or government office funds or controls it. One bundled, citable dataset covering every winning candidate for seven local & district offices since 2001, plus full candidate-level vote counts since 2016, winners and losers alike.

Dynasties

7,000 islands, 7,000 dynasties?

Each jurisdiction is shaded by the share of its winning candidates who belong to a political family: one surname holding more than one seat. Click a province to see its municipalities, or any place to see the families.

Thin · sunud-sunod

Succession over time. The family holds a seat across different years, e.g. a mayor is succeeded by a sibling, a spouse, or a child.

Fat · sabay-sabay

Concurrent office-holding. The family holds two or more seats in the same place in the same year, e.g. the mayor and vice-mayor are brothers.

Philippines · provinces

Loading the families…

Dynastic share

    Hover a place for its dynastic share. Click to see the families.

    Dynastic measures describe surname and middle-name co-occurrence in office. Many Filipino surnames are common (e.g. Cruz). We cannot always separate coincidental surnames from real kinship. The map defaults to surname-only matching, the more conservative reading; the toggle adds middle-name links, which capture marriage and maternal ties. Name matching may be inaccurate. No attribution of wrongdoing is intended. Every level — municipalities, provinces and regions — covers 2001 to 2025. See Data quality.

    Map

    Map the count.

    Every city and municipality that reported a ballot from 2010 to 2025, 1,642 in all, joined to their boundaries on PSGC code rather than on name. Click a province to go in, then a municipality to read its full tally.

    Pick a region to compare its provinces; pick a province to compare its cities and municipalities. Clicking the map does the same thing.

    Philippines

    Loading the boundaries…

    Who led

      Hover a municipality to see who led it. Click for the full tally.

      The map places votes by locality. Overseas votes, which have no locality, are counted in the dataset but not shown here. See Data quality.

      Explore

      Filter the count.

      Every winner in the dataset, 139,843 rows across 8 cycles. National races are summed from the ballots and shown as "Nationwide". Vote totals exist only for the ballot-backed cycles (2016 on); earlier ones show an em dash. See Data quality.

      Winning-party affiliation

      Top five parties by seats won, by cycle since 2016. Follows the filters above (year aside).

      Independent win share

      Share of winning seats with no party affiliation, by cycle.

      Year Position Region Province Candidate Party Votes

      Loading the dataset…

      Click a column header to sort. Winners only. Full candidate-level vote counts, including losers, are in the raw file.

      Research

      Built on this dataset.

      WORKING PAPER · arXiv:2505.21280

      The Families that Stay Together: A Network Analysis of Dynastic Power in Philippine Politics

      Acuna, R., Alejandro, A., & Leung, R. (2025). Graph-theoretic metrics for clan structure applied to the same election data, testing whether structure, not just dynasty presence, drives development outcomes.

      Read on arXiv ↗

      Wrote an article using our data? Cited our work in your thesis? Send it in — and with your permission, we'd love to feature it here!

      Get in touch →

      With thanks. The 2010 municipal results were shared from the Ianmaps Election Bank, compiled by Ian (@ian_maps) and Joseph Ricafort (@josephricafort).

      Data quality

      Known issues.

      • Vote counts thin out before 2016. 2013 is reconstructed from Rappler's archive (~91% of municipalities — local races plus a national senate total), and 2010 covers the national races only (president, vice president, senator across ~93% of municipalities, from the Ianmaps Election Bank). Both are partial; earlier cycles have no ballot-level source yet.
      • Overseas votes are counted, not mapped. They are included in the nationwide totals but have no locality to place on the map. They exist in the data for 2022 only; the other cycles cover domestic localities, so their nationwide totals run slightly under COMELEC's official canvass. Local races are unaffected.
      • Middle names are recovered, not native, after 2013. The middle name is a maiden name, so it carries the marriage and maternal links in the dynasty map. The ballot feeds report only surname, first, so 2016 onward is filled in from COMELEC's official List of Elected Candidates — reaching 87% (2016), 88% (2019) and 80% (2022). 2025 has no list published yet and sits at 56%, matched from each person's own earlier record, so middle-name ties are thinnest in the newest cycle.
      • Four map outlines are slightly off. The eight BARMM Special Geographic Area municipalities are drawn from their 2020 interim boundaries, so four of them are one barangay out. Their vote totals are unaffected.

      Spot something else? See the audit log or let us know.

      Access

      Take the data with you.

      GitHub repository

      Latest

      Full commit history, the raw COMELEC scrapes, and the one-command pipeline (python run_all.py). Fork it, file a correction, or open an issue.

      Clone on GitHub ↗

      Download the data

      tracks main

      Two files, straight to your machine. They mirror the latest version on GitHub, so every fix and every new cycle lands here automatically — no navigating the repo.

      Prefer a frozen, citable snapshot? Use the Zenodo archive.

      Cite this dataset

      Leung, R., Alejandro, A., Acuna, R., Buot, J., Go, C., & Nable, J. (2026).
      OpenHalalan: The Philippine National and Local Election Dataset
      [Data set]. Zenodo. https://doi.org/10.5281/zenodo.17783099

      Licensed under the Open Database License (ODbL) v1.0. Field-level definitions: winners · vote counts.

      Notes

      From the field.

      Field notes on the scrape, the audit, and the fixes go here once the blog is wired up. Nothing is published yet. Check the repo for progress in the meantime.

      Questions?

      Spotted an issue with the data? Want to contribute?

      Reach out via robertrleung.github.io