Spinneys Growth Intelligence 2030
What it takes · 9 of 9
Why these numbers can be trusted, and exactly where their limits are. Every figure in this application is recalculated from the controlling workbook rows, reconciled against the workbook’s own summaries, and published only after validation.
The workbook itself is confidential and is never read by the browser: the application loads only this validated release, and refuses to render at all if its contents do not match the recorded fingerprints.
110
Pass
9
Warning
0
Fail
4
N/A
| Category | Result | Checks |
|---|---|---|
| Workbook identity & structure | Pass | 8 |
| Record counts | Pass | 12 |
| Identifiers & referential integrity | Warning | 12 |
| Coordinates & map eligibility | Warning | 13 |
| Duplicate candidates | Warning | 4 |
| Status vocabulary & integrity | Warning | 17 |
| KPI reconciliation | Warning | 6 |
| Target totals & metric calculations | Pass | 13 |
| Sources & URL preservation | Warning | 11 |
| Governance exclusions & quarantine | Pass | 12 |
| Brands & demand | Pass | 8 |
| Schemas & lineage | Pass | 2 |
| Security & confidentiality | Pass | 5 |
Transparency
Warnings are genuine data-quality observations in the source workbook. They are handled without changing source data — and never hidden to make a report look clean.
1 reuse link(s) where the evidence row and the governed point carry different governorate labels (expected 1); labels preserved, nothing overwritten.
What happens next: Research owner to confirm the correct governorate label for the shared physical point in a future workbook (Phase 0 R-09).
5 formula-artefact 0,0 coordinate pair(s) found in the workbook and quarantined (expected 5); none emitted.
What happens next: Workbook data-quality item for the research owner (crosswalk formulas copy blanks as 0). The pipeline already quarantines them.
1 duplicate-candidate group(s) flagged for research-owner review (decision Q-06: flag, do not auto-resolve).
What happens next: Research owner to confirm or reject each candidate in a future workbook (Wave D dedupe).
17 workbook note(s) contradict their governed status columns; notes preserved and flagged SUPERSEDED_BY_STATUS.
What happens next: Research owner may refresh these notes in a future workbook; the governed status columns already control.
2 workbook data-validation list(s) do not match the labels used (pipeline uses observed governed vocabularies).
What happens next: Workbook data-quality item (Phase 0 C-24): align the data-validation lists with the governed vocabulary.
Routing gate formula expects a READY status that the step vocabulary never uses.
What happens next: Workbook data-quality item for the research owner. Routing remains LOCKED regardless.
A control row has its values shifted by one column.
What happens next: Workbook data-quality item for the research owner.
64 stale workbook summary cell(s) across 7 Phase 0 contradiction(s); governed recalculated values used, workbook values preserved.
What happens next: Workbook data-quality items for the research owner (decision Q-05). No source data was changed.
10 of 10 demand rows have no source URL or date in the workbook (data gap; authority text preserved).
What happens next: Research owner to add source URLs and publication dates for NUCA/CAPMAS figures (Phase 0 Q-07).
4 checks are recorded as not applicable at this phase (external link liveness and the three web-application security checks, which are verified when the application is deployed).
Governance
These rules are carried in the release itself, not only in documentation — the application reads them from the approved data.
COMPETITION SIGNAL IS A MEASURE OF COMPETITOR EVIDENCE, NOT INVESTMENT ATTRACTIVENESS.
Target markets have no coordinates or boundaries in the master (targetGeometryStatus = MISSING). No target polygon may be drawn.
No drive times, catchments or isochrones exist; routing is LOCKED in the master.
Investment ranking and the 2030 opening sequence are NOT YET decidable: demand and site economics are required.
Use mapEligible / map-points.geojson. Coordinate presence alone never implies a record may be mapped.
Quarantined values live only in audit/quarantine.json and never enter management datasets, maps or KPIs.
Demand evidence is quoted text at mixed scopes; figures must never be summed across markets.
Missing stays missing. The pipeline never invents a coordinate, a boundary, a drive time, a catchment, a population, a demand figure or a ranking. Where a value does not exist in the approved source, the application shows a data gap — never a zero and never an estimate.
COMPETITION SIGNAL IS A MEASURE OF COMPETITOR EVIDENCE, NOT INVESTMENT ATTRACTIVENESS.
COMPETITION SIGNAL IS A MEASURE OF COMPETITOR EVIDENCE, NOT INVESTMENT ATTRACTIVENESS. Breadth and relevance of competitor evidence: 30 pts brand breadth (normalised to 19 brands) + 30 pts P0 share + 40 pts in-target share.
Calculation: ROUND(MIN(100, (D/19)*30 + (E/MAX(1,C))*30 + (J/MAX(1,C))*40), 1)
Commercial data limitation
Competition + public population evidence can prioritize due diligence, but cannot by itself authorize a store opening. Final investment approval requires site economics and commercial demand inputs.
Demand attractiveness
Population / households / income proxy / retail spend / growth
Site economics
Rent / capex / store format / sales forecast / margin
2030 investment roadmap
Demand + economics required for ranked opening sequence
Demand evidence is quoted text at mixed geographic scopes and is never summed across markets; 10 of 10 demand rows have no source URL recorded in the workbook, which is published as a data gap rather than filled in.
Diagnostics
Summary first. The full check catalogue and the reconciliation register stay collapsed so the page stays readable.
236
Metrics reconciled
Each recalculated from controlling rows
64
Stale workbook summary cells
Declared, preserved, and replaced by the governed recalculation
8
Quarantined values
Audit register only — never management data
| Check | Category | Result |
|---|---|---|
| Workbook fingerprint is a registered approved master | Workbook identity & structure | Pass |
| Every logical input resolves to exactly one sheet | Workbook identity & structure | Pass |
| Header anchors and required columns present | Workbook identity & structure | Pass |
| Wave C1 governed columns present beyond the Excel Table boundary | Workbook identity & structure | Pass |
| Formula cells carry cached results; no error values | Workbook identity & structure | Pass |
| Workbook version declaration matches the approved master | Workbook identity & structure | Pass |
| Unmapped sheets reported | Workbook identity & structure | Pass |
| Label and key lookups are unambiguous | Workbook identity & structure | Pass |
| Store records | Record counts | Pass |
| Stores carrying QA evidence | Record counts | Pass |
| Pipeline signals | Record counts | Pass |
| Registered sources | Record counts | Pass |
| Direct baseline competitor locations | Record counts | Pass |
| Historical local competitor locations | Record counts | Pass |
| Competitor brands | Record counts | Pass |
| Target evidence rows and distinct branches | Record counts | Pass |
| Target markets | Record counts | Pass |
| Demand evidence rows joined to targets | Record counts | Pass |
| Decision layer records | Record counts | Pass |
| Wave C1 numeric candidate locations | Record counts | Pass |
| Identifiers are unique within each entity | Identifiers & referential integrity | Pass |
| Evidence composite key Target_ID:Branch_ID is unique | Identifiers & referential integrity | Pass |
| Identifier formats are valid | Identifiers & referential integrity | Pass |
| Crosswalk/QA rows link to known stores | Identifiers & referential integrity | Pass |
| Evidence source references resolve to registered sources | Identifiers & referential integrity | Pass |
| Evidence rows reference known target markets with matching names | Identifiers & referential integrity | Pass |
| Historical local rows reference known target markets | Identifiers & referential integrity | Pass |
| Existing_Governed_ID links resolve | Identifiers & referential integrity | Pass |
| Branches shortlisted under more than one target market | Identifiers & referential integrity | Pass |
| Formula-artefact identifiers ignored | Identifiers & referential integrity | Pass |
| Cross-dataset references resolve | Identifiers & referential integrity | Pass |
| Reuse links: evidence geography labels agree with the governed point | Identifiers & referential integrity | Warning |
| Emitted coordinates are legal and inside the Egypt envelope | Coordinates & map eligibility | Pass |
| No zero or 0,0 coordinates in any emitted dataset | Coordinates & map eligibility | Pass |
| Pending-pin and HOLD records carry no coordinate | Coordinates & map eligibility | Pass |
| Map-eligible point counts per layer match governed expectations | Coordinates & map eligibility | Pass |
| Quarantined values never appear in structured fields or GeoJSON | Coordinates & map eligibility | Pass |
| Crosswalk coordinates are never read as coordinates | Coordinates & map eligibility | Pass |
| Coordinates equal their numeric source cells (no Place ID / Plus Code decoding) | Coordinates & map eligibility | Pass |
| QA coordinate inputs equal census coordinates | Coordinates & map eligibility | Pass |
| Reuse copy coordinates equal their governed points | Coordinates & map eligibility | Pass |
| Coordinate methods assigned and distributed as expected | Coordinates & map eligibility | Pass |
| GeoJSON is structurally valid ([lon, lat] Points, unique IDs, no polygons) | Coordinates & map eligibility | Pass |
| Formula-artefact coordinates quarantined | Coordinates & map eligibility | Warning |
| mapEligible is explicit and consistent with the map dataset | Coordinates & map eligibility | Pass |
| Duplicate candidates flagged (not resolved) | Duplicate candidates | Warning |
| Governed duplicate exclusions honoured | Duplicate candidates | Pass |
| Duplicate-candidate members preserved (no deletion or merge) | Duplicate candidates | Pass |
| No metric deduplicates candidates unless its definition requires it | Duplicate candidates | Pass |
| Every controlled value maps to a governed code | Status vocabulary & integrity | Pass |
| Official locator flag consistent with public status | Status vocabulary & integrity | Pass |
| QA Pin_QA consistent with census coordinates | Status vocabulary & integrity | Pass |
| QA routing eligibility equals census eligibility | Status vocabulary & integrity | Pass |
| Triage class consistent with Wave C1 status | Status vocabulary & integrity | Pass |
| Wave C1 Route_Promotion consistent with status | Status vocabulary & integrity | Pass |
| Historical dedupe decision consistent with route eligibility | Status vocabulary & integrity | Pass |
| Pipeline signals never counted or routed | Status vocabulary & integrity | Pass |
| Superseded workbook notes flagged (text preserved) | Status vocabulary & integrity | Warning |
| Decision Gate and Wave-C Mode consistent with in-target rows | Status vocabulary & integrity | Pass |
| Required fields present | Status vocabulary & integrity | Pass |
| Numeric fields are numeric | Status vocabulary & integrity | Pass |
| Evidence type consistent with Place ID / Plus Code / numeric evidence | Status vocabulary & integrity | Pass |
| Old routing presence consistent with Old_Route_ID | Status vocabulary & integrity | Pass |
| Workbook data-validation lists match the vocabulary actually used | Status vocabulary & integrity | Warning |
| Control gate formula vocabulary consistent | Status vocabulary & integrity | Warning |
| Control summary rows use the status vocabulary in the status column | Status vocabulary & integrity | Warning |
| Every workbook comparison matches or is a declared stale summary | KPI reconciliation | Pass |
| Declared discrepancies still present | KPI reconciliation | Pass |
| Final-layer workbook values equal the governed recalculation | KPI reconciliation | Pass |
| Headline totals equal approved governed values | KPI reconciliation | Pass |
| Every registry KPI emitted with definition, calculation and source | KPI reconciliation | Pass |
| Stale workbook summary values reconciled (workbook value vs governed value) | KPI reconciliation | Warning |
| Target totals sum to screen totals | Target totals & metric calculations | Pass |
| Per-market triage partitions candidate rows | Target totals & metric calculations | Pass |
| Per-market priority and confidence partitions | Target totals & metric calculations | Pass |
| Wave C1 per market: closed + HOLD + excluded = in-target | Target totals & metric calculations | Pass |
| Wave C1 totals (29 closed / 8 HOLD / 3 excluded) | Target totals & metric calculations | Pass |
| Relevance % equals workbook formula results | Target totals & metric calculations | Pass |
| Evidence Quality % equals workbook formula results | Target totals & metric calculations | Pass |
| Competition Signal equals workbook formula results (exact formula preserved) | Target totals & metric calculations | Pass |
| Competition Signal normaliser equals the maximum distinct-brand count | Target totals & metric calculations | Pass |
| Decision Gate equals workbook results | Target totals & metric calculations | Pass |
| Distinct brands equals the target-brand first-occurrence flag | Target totals & metric calculations | Pass |
| Store routing readiness partitions the census | Target totals & metric calculations | Pass |
| Metric values within legal bounds | Target totals & metric calculations | Pass |
| All URLs are valid absolute http(s) URLs | Sources & URL preservation | Pass |
| Non-URL text beside URLs preserved verbatim | Sources & URL preservation | Pass |
| Non-URL source references preserved as references | Sources & URL preservation | Pass |
| Every emitted URL exists verbatim in the workbook | Sources & URL preservation | Pass |
| Google Maps search URLs never used as coordinate evidence | Sources & URL preservation | Pass |
| Every store, competitor location and evidence row cites a source or search link | Sources & URL preservation | Pass |
| Demand evidence source URLs recorded | Sources & URL preservation | Warning |
| External link liveness | Sources & URL preservation | Not applicable |
| Evidence hosts classified | Sources & URL preservation | Pass |
| Sources sharing a URL identified | Sources & URL preservation | Pass |
| Sources containing quarantined evidence hidden by default | Sources & URL preservation | Pass |
| HOLD records excluded from maps and route-ready counts | Governance exclusions & quarantine | Pass |
| False positives excluded from in-target counts and maps | Governance exclusions & quarantine | Pass |
| Identity and duplicate exclusions not counted as valid or closed | Governance exclusions & quarantine | Pass |
| Stale historical point excluded from active layers | Governance exclusions & quarantine | Pass |
| Corridor benchmarks never counted as local competitors | Governance exclusions & quarantine | Pass |
| Pipeline signals never counted as stores or mapped | Governance exclusions & quarantine | Pass |
| Seasonal stores mapped as seasonal and not route-ready | Governance exclusions & quarantine | Pass |
| Quarantined records absent from management datasets | Governance exclusions & quarantine | Pass |
| Exception register complete | Governance exclusions & quarantine | Pass |
| Known quarantine cases located in the workbook | Governance exclusions & quarantine | Pass |
| Quarantined Place IDs never used as structured evidence | Governance exclusions & quarantine | Pass |
| Narrative mentions of quarantined values | Governance exclusions & quarantine | Pass |
| Every competitor label resolves to a canonical brand | Brands & demand | Pass |
| No brand created from an unconfigured spelling | Brands & demand | Pass |
| Alias table points to canonical brands | Brands & demand | Pass |
| Inherited brand attributes on evidence rows match the brand universe | Brands & demand | Pass |
| Brand aliases observed | Brands & demand | Pass |
| Demand rows join to target markets by exact name | Brands & demand | Pass |
| Shared macro demand context identified | Brands & demand | Pass |
| Demand figures never parsed or aggregated | Brands & demand | Pass |
| All emitted datasets validate against their schemas | Schemas & lineage | Pass |
| Lineage present on every record | Schemas & lineage | Pass |
| No personal data in management datasets | Security & confidentiality | Pass |
| Raw workbook never enters release, browser or deployment locations | Security & confidentiality | Pass |
| Production web build makes no third-party requests | Security & confidentiality | Not applicable |
| noindex headers and robots rules | Security & confidentiality | Not applicable |
| Source maps not publicly served | Security & confidentiality | Not applicable |
Where a workbook summary cell is stale, the governed recalculation is presented and the original workbook value is preserved in the release’s audit trail. No source data was changed.