How the data is built, what we measure and where each holiday comes from. Trust in this data matters more than a pretty UI: here's the detail.
How it's built
The output unit is a municipality-year record for each of the 8,132 INE codes. It combines national and regional levels (BOE and regional gazettes) with the local holidays currently available; local coverage is measured and published separately.
Every holiday keeps its specific official source: the gazette reference and its URL when available. We don't replace the gazette: we link it.
The site never duplicates the data: it reads the L1 layer (/v1/) and serves it in JSON and iCalendar through stable, year-specific URLs; their content may be corrected when an official source changes.
What we measure
National and regional layers are assembled from the BOE and regional resolutions. Local coverage is reported separately, and historical gaps in any layer are declared instead of filled by inference.
We distinguish two states: "named" (Santa Tecla, San Isidro…) — unique, gazette-verified content — and "generic" (just "Festivo local"), when the date is known but the gazette hasn't yet given us the name.
That distinction governs indexing: we only publish a municipality page as indexable if it has ≥1 named local holiday; the rest stays accessible but out of the index. The live figure is on Coverage.
Population and analytics
The official Municipal Register layer publishes the 2024 and 2025 revisions, including total population, men and women. Calendar year 2026 explicitly falls back to the latest complete municipal register, 2025; the provisional 1 July 2026 ECP only covers Spain, regions, provinces and islands and is never presented as a 2026 municipal register.
The 2021–2025 Annual Census has its own resident-population total and provides sex, 21 age bands, citizenship, birthplace and mean age. Every percentage and profile comparison uses the same Census and year: a Census variable is never divided by a Municipal Register population.
The analytics layer is our own processing of published calendars. Only municipalities with exactly two distinct local dates enter rankings and distributions; all others remain published with an exclusion reason. The longitudinal panel compares one common municipal cohort and freezes population weights.
Daily impact deduplicates INE codes. It is exact for the records already published, but is a lower bound when local holidays with incomplete coverage are involved; no published record does not automatically prove zero.
Cadence
The dataset is regenerated from the sources and published per year (2024–2026). Each year's URL remains stable but may receive corrections; municipality JSON files expose version and last_updated.
Relevant data changes are recorded in the changelog.
Sources
We reuse public-sector information under Law 37/2007, citing the source. These are the literal attributions per level; every holiday keeps an official reference and, when available, a document link.
Fuente: Agencia Estatal Boletín Oficial del Estado (BOE)
Ley 37/2007 (reutilización de información del sector público; cita la fuente) · www.boe.es
Fuente: Instituto Nacional de Estadística (INE)
Ley 37/2007 (reutilización de información del sector público; cita la fuente) · www.ine.es
Data under CC BY 4.0.
Verify
Every holiday keeps source.ref and, when present, source.url. Verify the available reference or link before any legal, employment or tax decision. If you spot an error or a missing local-holiday name, write to us and we'll fix it with the source.
Report a record