How city planners measure access to pharmacies, clinics and schools
People per pharmacy, clinic or school, district by district, shows where residents are poorly served. How planning teams build the measure and keep it current.
City planners measure access to services by counting, for each district or small area, the residents who live there and the pharmacies, clinics or schools within reach, then dividing one by the other. The result, people per service, shows at a glance which areas have plenty and which have too little. Mapped across the city and refreshed as places open and close, it turns a vague sense of neglect into a list of areas to act on.
This article is for planning officers, public health teams, education departments and the consultants who work with them. It explains the measure and its limits, the data behind each half of it, a worked example in Sydney, common mistakes in council reports, and how an AI employee can produce the table every quarter.
The measure, and what it leaves out
People per service is deliberately simple. For a district of 40,000 residents with eight pharmacies, it is 5,000 people per pharmacy. Its strength is that anyone on a committee can follow it. Its weaknesses are worth stating in any report:
- It counts places, not capacity. A large clinic with twelve doctors and a single-room practice count the same.
- District lines are arbitrary. Residents near a boundary often use the service across it. A measure based on distance around each small area, rather than district lines, is fairer.
- It ignores who lives there. An area with many older residents needs more pharmacy and clinic access than the same number of students. The age groups in the population data help here.
- Walking is not driving. A pharmacy 2 km away is near for a driver and far for an older person on foot.
Where each half of the figure comes from
The services come from xMap's places database, which lists pharmacies, medical clinics, schools, hospitals and thousands of other types with their positions, and whether each is open. The Nearby places block can count them around any point, passing on each point with how many were found within the distance you set.
The residents come from the Demographics block, which reads a population grid of hexagons of about 0.1 square kilometres and gives totals, men and women, and nine age groups for any area or around any point. It covers about 100 countries, including Australia, Canada, France, India, Thailand and Egypt. It does not cover the United Kingdom or the United States, so planners there need their own census tables, which can be uploaded to My data and joined in.
Those counts are the starting stock for a planner in Sydney. Of the 346 pharmacies, 132 belong to a chain and 214 are independent, which matters when a council wants to talk to operators about extended hours: a few head offices cover many sites, the rest need one conversation each.
A worked example: Sydney's inner districts
The figures in this example, other than the counts above, are made up. A health planning team lays a grid of points 1 km apart across the inner city, each point the centre of a small area. For each point it counts residents within 1 km, residents aged 60 and over, and pharmacies and medical clinics within 1 km.
A calculated field gives people per pharmacy and older residents per clinic for each point. Sorted, the table shows a handful of points where more than 10,000 residents share one pharmacy, while the busiest commercial streets have one for every few hundred residents. On the map, the poorly served points form two clusters along a rail corridor. The team takes those clusters, not the district averages, to the meeting.
Mistakes in access reports
- Averages over large districts. A district can look fine on average while one corner of it has nothing. Small areas show what averages hide.
- Counting closed places. Keep only places marked open, and refresh the count regularly.
- Mixing service types. A dentist is not a clinic for this purpose. Pick the exact types and say which ones you counted.
- Presenting the ratio as capacity. Say plainly that the measure counts places, and pair it with opening hours or staff data where the council has them.
- A single snapshot. Access changes when a pharmacy closes. A quarterly refresh shows whether things are getting better or worse.
An AI employee that produces the table
- Schedule: on the first day of each quarter.
- My data: the grid points or district centres, each with a name.
- Demographics: residents within 1 km of each point, with age groups.
- Nearby places: pharmacies, medical clinics and schools within 1 km, each point passed on with counts, open places only.
- Calculated field: people per pharmacy, older residents per clinic, children per school.
- Sort and limit, then Show on a map and Make a report for the committee.
Each quarter the team gets a PDF with the worst-served areas first, a map, and the table behind it; the same flow saved as a dashboard lets anyone in the council open the latest figures. Templates that do parts of this: Neighbourhoods far from a hospital, Children per school, block by block, People per recycling centre, block by block and, for residents themselves, Citizen services chat: nearest pharmacy or clinic. See the government and cities page for more.
Questions
Can I use district boundaries instead of a grid?
Yes. Draw the districts in the Area of interest and Demographics gives totals for each. A grid of small areas is better at showing gaps that sit across a boundary.
Does it work in the United States or the United Kingdom?
The places counts do. The resident counts do not, because the population grid does not cover those countries; upload your own census table and join it instead.
What distance should I use?
1 km is a common walking benchmark in dense cities. Use larger distances for suburbs and rural areas, and say in the report which you used.
Can residents ask the same data a question?
Yes. A chat page with an AI agent can answer where the nearest open pharmacy or clinic is, using the same places data.