All projects
02 / GEOSPATIAL ENGINEERINGWorking implementation

Centra vs SPARThe quest for
Irish domination.

Two familiar names. One island. A geographical look at where the shops are, who has the stronger listed presence, and a battle for control.

IRELAND

A local rivalry.
An island-wide question.

SPAR FAMILY = SPAR + EUROSPAR
THE TOOLKIT
PythonGeoPandasGeoJSONLeafletGitHub Actions
THE CAMPAIGN AT A GLANCE

Release built 4 October 2026
Official listings: 3 October 2026

eligible listed locations
1,417
counties on the map
32
settlement boundaries
1,394
01 / THE QUESTION

Is this a Centra or SPAR town?

For years, Centra and SPAR have quietly fought for control of Ireland. Town by town. Forecourt by forecourt. Chicken fillet roll by chicken fillet roll.

So I did the only reasonable thing: mapped the conflict.

This project tracks who controls each town, where the strongholds are, and where the battle remains too close to call.

Welcome to the war room.

02 / THE ENGINEERING

Good maps start
before the map.

LOCAL PYTHON / FILES / GEOPANDAS

From a shop listing
to a place on the map.

Official chain locators
Python extraction + reviewed FSA evidence
CSO / NISRA
Boundaries & census population
Tailte Éireann / OSNI
County boundaries
  1. BRONZEFreeze the evidence

    Dated inputs, source manifests and content fingerprints.

  2. SILVERResolve the identities

    A canonical store register, reviewed corrections and explicit count eligibility.

  3. GOLDPut it in context

    Spatial joins, demographic enrichment and straight-line rivalry rankings.

OSM-only candidates stay separate from the counted register.

Quality gate → promote the releaseFailed checks keep the last successful map in place.
Leaflet map → versioned static bundle → career-site War RoomSaved JSON / GeoJSON. No database connection for visitors.
THE REFRESH LOOP

Windows Task Scheduler runs the local refresh weekly. Website export and copying remain manual; Azure storage and automatic deployment are future work.

01 / TRUST THE EVIDENCE

Reconcile, don’t guess.

Official locators establish the register. Source IDs, coordinate checks and evidence-backed reviews resolve identity and location conflicts. Unconfirmed OSM candidates remain visible as an optional layer, outside the main totals.

02 / NOTICE REAL CHANGES

Read the content, not the filename.

Fingerprints detect changed inputs even at the same path. Unchanged content skips rebuilding. New snapshots recheck whether earlier reviews still apply before promotion.

03 / KEEP THE MAP RELIABLE

Check it before it ships.

Frozen inputs support replay. Spatial joins and count reconciliation run before atomic publication; a failed build leaves the previous map serving. This release passed 25 quality checks.

Implemented with local Python, GeoPandas, dated files, offline CI tests and a weekly Windows refresh job. The computer must be awake, connected and signed in. Export delivery is a separate website release step; an automatic end-to-end public refresh is not implemented.

Architecture notes (private repository) ↗
03 / THE FIELD GUIDE

Choose your
line of enquiry.

The map is a place to ask questions. Start wide, pick a rivalry, or follow the route you actually take.

County & town territories

Compare all 32 counties, then explore individual settlements. Rural shops count in county totals too.

Front Lines

Explore nearest-chain territory at 2, 5, 10 or 20 km. A sampled proximity surface, independent of county borders.

Find Your Allegiance

Find the nearest eligible shop on each side from a town, supported postcode or map point. Loyalty is optional.

Route Battle

Submit a road journey and compare unique shops within 2 or 5 km of its route. A corridor, not a driving detour.

SIX FIELD INTELLIGENCE DISPATCHES
  1. Closest Rivals

    The nearest pair from opposite chains.

  2. Most Isolated Outpost

    The longest way to another shop on the same side.

  3. Behind Enemy Lines

    Shops inside a rival’s stronghold.

  4. Unclaimed Towns

    Places with neither chain listed. Other retailers may be there.

  5. This town ain’t big enough…

    Exactly one Centra and one SPAR-family shop.

  6. Fortress Towns

    Four or more on one side, no listed rival.

Take me to the War Room
04 / SOURCES & BOUNDARIES

Read the map.
Know its limits.

Every territory has a definition. Every point has a source. Here’s the context that belongs alongside the colours.

What the counts include

Main counts use official chain listings and reviewed evidence, including Food Standards Agency records. SPAR includes EUROSPAR. Locators can be incomplete or stale; a missing listing is not proof that a shop has closed.

In this export, 5 official records still need review and 199 OSM-only candidates are excluded from main totals. 1,289 locations fall inside settlement boundaries; 128 sit outside them.

Geography, population & distance

Settlement boundaries and historical population come from CSO Census 2022 and NISRA Census 2021. Some NI population figures are unavailable; missing values stay missing. County geography uses Tailte Éireann and OSNI, with the six historic NI counties rather than council districts.

1,416 of 1,417 eligible locations are assigned to a county. 1 remains outside the saved county polygons. Rivalry distances are straight-line distances. Front Lines samples a 1 km grid and does not model roads or terrain.

Some source coordinates are inaccurate or disagree with other evidence, which can affect small distance comparisons. A future improvement would add stronger coordinate validation and a Google Maps cross-check before a release is promoted.

A stronghold defaults to at least 75% of the two chains’ stores, with four eligible stores minimum. Contested territory has 40–60% on each side. These are exploratory labels for listed presence.

Live services & saved data

The analytical snapshot is static. Leaflet and OpenStreetMap tiles need internet access. Town lookups use saved data; a submitted NI postcode goes to Postcodes.io. A submitted road journey sends its endpoints to the OSRM demo service. Eircodes match known store addresses, not a complete national address lookup.

The map retains the original source links, attribution and service limitations. Visitors need no GitHub login or data-platform credentials.

Snapshot, methodology & public release

Pipeline run: 20261004T175327Z-f8e32ccc.
Listings dated 3 October 2026; manual review dated 4 October 2026. The bundle was exported from the promoted release and its saved asset hashes were verified.

The map reads a versioned export, independent of the pipeline. Official locator bulk reuse rights remain unconfirmed; public redistribution needs suitable reuse permission or a register built from appropriately licensed sources.

Documentation links point to the private project repository. The explanation and map on this page can be explored without repository access.

05 / THE WAR ROOM

Your corner of Ireland.
Whose territory?

Pick a county. Follow a front line.
Find out where your loyalties lie.

Sources & methodology
CENTRA / SPAR FAMILY · SAVED SNAPSHOTOpen full War Room
THE CAMPAIGN IS YOURS TO EXPLORE

A small island.
A lot of local rivalries.

Explore the existing map, with county territories, store evidence and six Field Intelligence dispatches.

The interactive map loads when you enter.

Counts describe listed presence, not sales or market share. SPAR includes EUROSPAR.

Basemap: © OpenStreetMap contributors. NI postcode searches use Postcodes.io; submitted road journeys use the OSRM demo. Source labels and attribution remain inside the map.

Back to the field guide ↑
KEEP EXPLORING / PLANNED PROJECTStop ComplainingBack to selected work