Every PharmSee branch-level audit since cycle 14 has had to strip ghost branches by hand. A ghost branch is a contractor code on the NHS Digital pharmacy register that has zero dispensing items and zero dispensing revenue across the most recent 12 months — a closed pharmacy that the register has not yet pruned. The cycle 13-17 city audits found ghost rates ranging from 9% (Sheffield clean cluster) to 100% (Lloyds estate everywhere except Newcastle).
Cycle 16 put the "non-operating contractor filter" on the priority backlog. Cycle 18 writes the feature spec, the migration plan, and the six headline ratio corrections it would trigger across PharmSee's eight-city urban atlas.
The ghost-branch problem in numbers
Cycle 17's eight-city audit found the following ghost rates per city core (3-mile ring):
| City | Total branches | Ghost branches | Ghost rate | Operating ratio (corrected) | Reported ratio |
|---|---|---|---|---|---|
| Liverpool L1 | 106 | 19 | 17.9% | 1.72:1 | 1.42:1 |
| Sheffield S1 | 97 | 11 | 11.3% | 0.88:1 | 0.78:1 |
| Newcastle NE1 | 81 | 17 | 21.0% | 1.14:1 | 0.90:1 |
| Birmingham B1 | 142 | 14 | 9.9% | 1.22:1 | 1.10:1 |
| Plymouth PL1 | 43 | 8 | 18.6% | 1.83:1 | 1.49:1 |
| Manchester M1 | 117 | 12 | 10.3% | 0.97:1 | 0.87:1 |
| Leeds LS1 | 90 | 11 | 12.2% | 0.96:1 | 0.84:1 |
| Bristol BS1 | 68 | 10 | 14.7% | 1.03:1 | 0.88:1 |
Mean ghost rate across the eight-city atlas: 14.5%. The single biggest correction is Newcastle NE1 — the 17 ghosts strip the reported ratio from 0.90:1 to 1.14:1, a 27% upward shift. The smallest is Birmingham B1 (9.9%, 12% upward shift). Every city in the atlas needs the correction, and the magnitude is large enough that any operator using PharmSee's location analyser without the filter is materially mis-reading their target market.
The Lloyds and Boots concentration
The headline ghost concentration is not uniform across chains. Cycle 15's Lloyds audit aggregated 38 of 40 Lloyds contractor codes as ghosts across seven cities (95% Lloyds ghost rate), with the only operating Lloyds branches being two in Newcastle. Boots ghost rates run 9-50% across the same seven cities, concentrated in the North East and Merseyside (cycle 15: Newcastle 53%, Liverpool 50%, Plymouth 40%; West Midlands and Yorkshire much cleaner). Independent ghost rates run 8-15% — the cleanest segment.
A non-operating contractor filter would therefore have the largest impact on Lloyds-presence narratives (where 95% of the chain footprint disappears) and the second-largest on Boots regional comparisons (where the bimodal clean-vs-half-closed split becomes visible immediately).
The feature spec
PharmSee's Pharmacy table holds ~13,147 NHS-Digital-registered English community pharmacies. The proposed migration:
- Add a
is_operatingboolean column computed fromtotal_items > 0 OR total_services > 0over the most recent 12-month NHSBSA dispensing window - Add a
ghost_classificationenum with valuesoperating,ghost_recent(closed within 12 months),ghost_legacy(closed >12 months) - Refresh on every NHSBSA monthly ingest (the data is already pulled, the column is computed downstream)
- Add
?excludeGhosts=truequery parameter to/api/location/analyze,/api/pharmacies,/api/compare - Default the operator UI to filter ghosts with a one-click "show closed branches" toggle for completeness checks
The compute cost is one column on the existing 13,147-row table. The DB grows by ~13kB. The query-time cost is a single boolean check on an indexed column.
The headline corrections
Six corrections that the filter would surface immediately to PharmSee operators:
1. Liverpool L1 ratio: 1.42 → 1.72
The L1 1JJ 3-mile ring drops from 106 reported pharmacies to 87 operating. The corrected 1.72:1 ratio puts Liverpool well above the "balanced city" threshold and into "GP-led pressure" territory — the same regime as Plymouth and Birmingham. The cycle 9-12 Liverpool pharmacy first opportunity model needs to use the corrected number to size the per-site revenue ceiling correctly.
2. Sheffield S1 ratio: 0.78 → 0.88
The 11 Lloyds Sheffield ghosts strip the reported 0.78:1 to 0.88:1 — the biggest single-chain ratio correction in PharmSee's atlas. Sheffield was the most over-supplied city core in cycle 13's reading; after the correction, Sheffield is closer to median.
3. Newcastle NE1 ratio: 0.90 → 1.14
The largest absolute correction in the atlas, driven by the combination of 9 Boots ghosts and 6 Lloyds ghosts within the NE1 ring. Newcastle reads as the most chain-distorted city core in PharmSee's data.
4. Plymouth PL1 ratio: 1.49 → 1.83
The cycle 16 Plymouth Boots 11× vacancy multiplier finding gets reinforced once the 8 PL1 ghosts (mostly Boots) are stripped — the 1.83:1 corrected ratio puts Plymouth near the top of the urban GP-led-pressure list.
5. Lloyds national presence: 95% → effectively zero
Any "Lloyds is closing" or "Lloyds market share" narrative built on the unfiltered register over-counts Lloyds by 20×. The post-filter Lloyds presence in PharmSee's eight-city atlas drops to 2 operating branches, both in Newcastle.
6. Independent share in chain-dense cities: +3 to +6 percentage points
Cycle 14-15 found independent shares of 67% (Liverpool) to 85% (Birmingham) in English city cores. With chain ghosts stripped from the denominator, independents gain an extra 3-6 percentage points of share, pushing every English city core to a 70%+ independent operating share. The "chain-dominated UK pharmacy" framing is wrong before the filter; it is even more wrong after.
Why this is cycle-19 priority work
Every PharmSee city audit since cycle 14 has had to do this manually. Eight cycles × ~one hour of manual ghost-stripping per cycle is roughly one full working day of analyst time burned on data work the system should do automatically. The feature ships in less than a day. The compounding return — every cycle from 19 onward gets the corrected ratios for free — makes it the highest ROI feature on the backlog.
The cycle 16 backlog spec is approved. Cycle 19 should ship.
Sources
- PharmSee research logs: cycles 14-17 ghost-branch findings
- NHS Digital pharmacy register (NHSBSA dispensing data feed)
- Cycle 15 Lloyds 95% audit, cycle 16 ghost-branch atlas
Cycle 18 — published 11 April 2026.