When you query PharmSee's location analyser for any Welsh postcode, the GP count comes back populated and the pharmacy count comes back as zero. This is the cycle 13/15 "half-integration" finding: PharmSee ingests Welsh GP practices via NHS ODS W-codes, but does not yet ingest Welsh community pharmacies, which are administered separately by NHS Wales Shared Services Partnership (NWSSP) on a contractor list PharmSee has not connected to.
This article scopes the integration: which Welsh cities are visibly broken today, what the NWSSP list contains, and what the half-integrated Welsh atlas looks like once the missing pharmacy denominators are filled in.
What the broken half-integration looks like
Three fresh April 2026 PharmSee pulls, all 3-mile rings:
| Postcode | City | GPs visible | Pharmacies visible | Reported ratio |
|---|---|---|---|---|
| CF10 1AA | Cardiff | 50 | 0 | 99 (nominally infinite) |
| SA1 1LS | Swansea | 27 | 0 | 99 |
| NP20 1PA | Newport | 21 | 0 | 99 |
Total visible Welsh GP practices in just these three city-centre rings: 98. PharmSee returns each as "high opportunity — strong unmet demand for dispensing services", which is the wrong opportunity reading because the pharmacies exist in real life — they are simply not in PharmSee's ingestion pipeline.
The cycle 15 two-city Welsh audit (Swansea + Newport) confirmed this is a data gap, not a market gap. Welsh community pharmacies are administered by NWSSP under a separate contractor numbering scheme (the W-prefixed contract codes) and the dispensing data flows into a Welsh pharmacy database rather than the English NHSBSA dataset PharmSee currently consumes.
What the NWSSP list contains
NHS Wales publishes a public community pharmacy contractor list with approximately 705 active Welsh community pharmacies. The fields are familiar from the English contractor register:
- Contractor code (W-prefixed)
- Pharmacy trading name
- Address and postcode
- Opening hours
- Health board (Aneurin Bevan, Betsi Cadwaladr, Cardiff & Vale, Cwm Taf Morgannwg, Hywel Dda, Powys, Swansea Bay)
What it does not publish in the same form as English NHSBSA data: monthly dispensing items and revenue. Welsh dispensing data is held by NWSSP for contracting and reimbursement purposes and is not as openly available as the English NHSBSA dataset. Cycle 18's recommendation is to ingest the contractor list (which gives PharmSee the count and the geography) and to leave dispensing-revenue ingestion as a cycle 21+ second-phase project.
What ingestion costs
The contractor list is approximately 700 rows. The ingestion fits inside a single ETL job:
- Pull the NWSSP contractor CSV (or scrape the public locator if the CSV is gated)
- Geocode postcodes via PharmSee's existing 2.7M postcode lookup table (the ones PharmSee already uses for English pharmacies)
- Insert into the existing
Pharmacytable with a newcountry = 'Wales'flag andrevenueDataAvailable = false - Update the
/api/location/analyzeendpoint to count Wales pharmacies in the denominator when the query postcode is Welsh
The compute cost is one afternoon. The downstream effect is that every Welsh PharmSee query starts returning a real ratio instead of 99/0.
What the post-ingestion Welsh atlas looks like
Public NHS Wales statistics give us the rough density expectations:
| Health board | Approximate community pharmacies | Approximate population | Pharmacies per 100k |
|---|---|---|---|
| Aneurin Bevan | ~110 | 590,000 | ~18.6 |
| Betsi Cadwaladr | ~155 | 700,000 | ~22.1 |
| Cardiff & Vale | ~95 | 480,000 | ~19.8 |
| Cwm Taf Morgannwg | ~95 | 450,000 | ~21.1 |
| Hywel Dda | ~95 | 385,000 | ~24.7 |
| Powys | ~30 | 132,000 | ~22.7 |
| Swansea Bay | ~110 | 390,000 | ~28.2 |
| Wales total | ~705 | ~3.13m | ~22.5 |
For comparison, England's overall density is roughly 23 community pharmacies per 100,000 residents — Wales sits almost exactly on the English average. The "Welsh pharmacy desert" framing does not survive contact with the post-ingestion data; what survives is a story about Powys and Ceredigion rural distribution within Wales, not Wales-as-desert.
The expected post-ingestion ratios for the three cities above:
- Cardiff CF10 (3mi): ~50 GP / ~80-95 pharm → roughly 0.55-0.65:1 (over-supplied city centre)
- Swansea SA1 (3mi): ~27 GP / ~35-45 pharm → roughly 0.65-0.75:1 (over-supplied city centre)
- Newport NP20 (3mi): ~21 GP / ~25-35 pharm → roughly 0.70-0.85:1 (balanced city centre)
These are estimates pending the actual ingestion — they are based on Welsh density averages applied to the 3-mile metro area. Once PharmSee ingests the real list, every number above gets replaced by a measured pull.
What this unlocks for PharmSee users
Three things become possible the day the integration ships:
- Welsh salary intelligence becomes meaningful. Today the Wales pharmacist salary page is built on UK-wide aggregates because PharmSee cannot apportion Welsh-specific job density. With ingested contractor counts the per-pharmacy hiring intensity (vacancies per branch) can be computed at health-board granularity.
- The cycle 9-10 cardiff-vs-edinburgh devolved-capitals piece can be re-published with measured data instead of the current placeholder narrative.
- The mid-Wales pharmacy deserts cycle-10 piece becomes correctable. Combined with the dispensing-doctor flag, the Powys/Ceredigion picture becomes a real measurement instead of a data-gap narrative.
Roadmap
The contractor list is the cycle 19 priority work item (one afternoon). The dispensing data is the cycle 21+ stretch goal. Until the ingestion ships, never quote a Welsh pharmacy count from PharmSee — the data is missing, not measured. The current /api/location/analyze response for Welsh postcodes should be treated as "GPs measured, pharmacies missing", and the operator-facing UI should add a banner that says exactly that until the integration completes.
Sources
- NHS Wales Shared Services Partnership: pharmacy contractor lists (NWSSP-CST)
- PharmSee location analyser: SA1 1LS, NP20 1PA, CF10 1AA pulls (cycle 18)
- Cycle 13/15 Welsh half-integration findings
Cycle 18 — published 11 April 2026.