Adaad · Volume 1, Issue 2 · Wednesday 16 September 2026 · Inequality and living standards
Method/Volume 1, Issue 2 · Piece 7 of 8 · Method Notebook

From maps to minutes

How a grid becomes an estimate of access to care. Follow the calculation, practise population weighting, and learn what a travel-time average can—and cannot—tell you.

Hiba Sameen · analysis
Adaad data desk · charts and files
Published 16 September 2026 · Volume 1, Issue 2
12 min read · travel_time_tehsils.csv

How does a map become an estimate of the time it takes to reach care? The unequal road to care uses modelled travel times to the nearest mapped health facility. These are calculated journeys, not trips someone has driven. This notebook follows that healthcare calculation. The girls' school analysis uses the same broad approach, but requires its own destination list and travel-time surface.

One approach is to calculate routes along a road network, from a village or another chosen starting point to nearby facilities. Another divides the country into a grid and estimates the time needed to move between neighbouring cells. The grid approach gives a travel time to every cell, including places away from mapped roads. Its detail depends on the size of the cells and the movement assumptions built into them.

For healthcare, the Malaria Atlas Project has already published that travel-time grid. Adaad combined it with boundaries and population estimates to calculate local and national averages. This notebook explains how the grid is made, then follows the steps Adaad carried out. It shows why the same map gives an average of about 204 minutes across cells and 22 minutes across people.

Two interactive exercises let you explore a grid and change where people live. A spreadsheet exercise reproduces the national healthcare figures from the tehsil table. By the end, you should be able to explain a travel-time surface, calculate a population-weighted mean, and say what a national average leaves out.

The route through this notebook

Four steps, two starting points

  1. Price movement. Build a friction surface: minutes per metre.
  2. Find the cheapest journey. Combine that surface with mapped destinations to produce travel times in minutes.
  3. Choose the places. Assign valid travel cells to tehsil boundaries.
  4. Weight and summarise. Combine times with population counts; report a mean and a threshold share.

For the healthcare analysis: steps 1–2 come from the published MAP healthcare layers. Adaad undertook steps 3–4. New destinations: a school or court list requires a new step 2. The healthcare travel-time raster cannot answer that question.

Start with the 15-minute CSV exercise ↓

A map made of cells

A digital map can describe shapes or a grid. A tehsil boundary is a polygon, a road is a line, and a clinic is a point. These are vector data. A raster divides space into cells and stores a value in each one: a travel time, a population count, or a cost of movement. This analysis brings the shapes and the grid together.

Try it · a twelve-by-twelve raster

Four layers on one grid

This is an invented teaching model, not a map of a real place. Each cell is one kilometre square. Paint roads and rough ground, move the clinic, and watch the travel-time surface recompute. The two tehsils are a vector boundary laid over the same cells.

Painting roads or changing the ground also changes where this example places people. The weighted average can therefore change for two reasons: travel times change, and the population weights change. The next exercise lets you change only the population.

The explorer uses minutes per kilometre for easy reading. The real friction layer uses minutes per metre: 2 minutes per kilometre equals 0.002 minutes per metre.

Layer:
Click a cell to:

This explorer needs JavaScript. The four layers are friction, travel time, population and tehsil boundaries; the text above describes each.

Cost of a step = the friction of the cell you enter × distance travelled. Sideways steps are 1 km; diagonal steps are 1.41 km. The search starts at the clinic and always settles the cheapest unsettled cell next, so each cell's time is final when it is settled, not when a possible route to it is first found.

The travel grid has cells 30 arc-seconds on a side, or one 120th of a degree. That is roughly 0.9 kilometres north to south; the width shrinks with latitude, from about 0.8 kilometres around Karachi to about 0.75 around Hunza. The clipped rectangle is 1,608 rows by 2,018 columns, with about 1.2 million valid cells inside the reporting boundaries.

A road narrower than a cell can influence its value. But the output still assigns one travel time to the whole cell. It cannot distinguish two homes within that cell, and a sub-minute result should not be read as a precisely measured trip. Resolution limits the questions a map can answer.

The friction surface

The first layer describes how costly movement is. The Malaria Atlas Project's friction surface stores minutes per metre, not minutes per cell. Multiplying that cost by a movement distance gives a time. A diagonal step between cells covers more ground than a horizontal one, so a routing calculation must account for distance as well as the cell values.

The researchers combined roads, land cover, terrain and other transport information. Their road inputs draw on OpenStreetMap and Google sources. Roads can permit faster movement; slopes and land cover can slow it. Water is handled through transport assumptions too, rather than treated as an impassable barrier everywhere. These choices turn geography into modelled movement costs. The friction-layer documentation gives the units and inputs.

The motorized scenario allows vehicle travel where the model permits it. The walking scenario removes that option. They are scenarios, not reliable upper and lower bounds on any household's journey. Waiting for transport, road damage, fares and seasonal conditions can all change the trip. When a map disagrees with local knowledge, inspect the destination list, grid, dates and movement assumptions before blaming the routing algorithm.

The shortest path

Imagine starting at the mapped clinics and working outward across the grid. At each step, visit the cell with the shortest travel time found so far among those still waiting to be visited. Then check whether travelling through it offers a quicker route to any neighbouring cell. For example, reaching a cell by a road may reveal a faster way to its neighbour than the route across rough ground found earlier. This is the idea behind Dijkstra's algorithm.

With movement costs of zero or more, a cell's time becomes final when it is visited in that order; the algorithm calls this cell ‘settled’. Finding a possible route to a cell is not the same as settling it. The calculation can be exact for the grid it is given while the grid remains an approximation of the world.

An exact answer to a model is still a modelled answer to a journey.

The Malaria Atlas Project has already published global travel-time surfaces to hospitals and clinics mapped in OpenStreetMap and Google Maps. For this issue, Adaad reused those surfaces; we did not run a new shortest-path calculation. The study and methods explain their construction, and the project download page supplies the layers.

“Nearest” here means the mapped facility reached at the lowest modelled travel cost. It does not mean a facility with the right service, an available clinician, medicine in stock, or an affordable fee. Nor is the estimate a guaranteed minimum for an actual journey. Omit a real facility and modelled times can rise or stay unchanged; include a closed or wrongly located one and they can fall. The destination list is part of the definition of access.

From cells to places

The surface answers questions about cells. To report on a tehsil, we assign cells to its boundary and summarise their values. This is called zonal statistics. Our build uses the cell centre to decide which polygon receives a cell, so small boundaries and coastlines are especially sensitive to the grid's placement.

The 2015 boundary frame contains 147 districts and 553 tehsils; later subdivisions remain within their older parent boundaries. Of those tehsils, 552 have valid cells and positive modelled population in this build. Manora Cantonment has no valid cells and its estimates are missing, not zero. The median among the 552 is 1,254 cells. Karachi Cantonment has seven, representing about 252,000 modelled people.

Publish the cell count because it reveals how coarse the spatial representation is. It is not a sample size or a guarantee of statistical reliability: neighbouring raster cells are related, and thousands of cells can share the same underlying model error.

Figure 1 · Tehsils · interactive
Modelled tehsil averages span less than a minute to over ten hours
0.3 1 5 15 60 240 600 Population-weighted minutes to the nearest facility, motorised (log scale) Punjab Sindh KP Balochistan AJK GB Islamabad MashkhelGojalKandiaLahore City
One equal-sized dot per valid tehsil: 552 plotted, with Manora Cantonment missing. The range runs from 0.3 minutes in Karachi Cantonment to 637.8 in Gojal. These are model outputs; sub-minute values do not imply that precision for real journeys. Hover, tap or focus a dot, or read the searchable table. Source: travel_time_tehsils.csv, MAP accessibility surfaces and WorldPop 2020.

Weighting by people

There are two different questions to ask of the same surface. What is the average travel time across cells? And what is the average across the people allocated to those cells? In the tehsil-covered grid, the answers are about 204 minutes and 22 minutes respectively. Each cell counts equally in the first calculation. Each modelled person counts equally in the second.

The first is a mean over cells, not strictly an area-weighted mean: these degree-based cells have different physical areas at different latitudes. It describes the grid's geography. The population-weighted mean is the relevant measure for a statement about average access among the represented population. Neither calculation describes the experience of every resident.

Worked example · illustrative numbers

Four cells, two answers

Four equal-area cells. Their travel times are fixed. Move the people between them and watch which average moves.

Cell A10 min
600 people
Cell B20 min
300 people
Cell C60 min
80 people
Cell D120 min
20 people
Mean across cells
52.5min
Does not depend on where people are
Population-weighted mean
19.2min
33.3 min below the cell mean
More than 60 minutes
2.0% of people
20 of 1,000 people

(10 × 600 + 20 × 300 + 60 × 80 + 120 × 20) ÷ 1,000 = 19.2 min
(10 + 20 + 60 + 120) ÷ 4 = 52.5 min, whatever the people do

Try:
Threshold wording:
Most people sit in the two quick cells, so the weighted mean is far below the cell mean. This is the usual case, and the Shigar case: the cell mean describes the terrain, the weighted mean describes the people.
The same example as a table
Multiply each cell's minutes by its population before adding.
CellMinutesPeopleMinutes × people
A106006,000
B203006,000
C60804,800
D120202,400
Total2101,00019,200

The formula is sum of (minutes × population) ÷ sum of population. A cell with thirty times as many people has thirty times the influence on the population-weighted mean. In the cell mean, both cells have equal influence.

The same weighting rule lets us combine tehsils. Killa Saifullah's six tehsils range from 41.3 minutes in Kan Mehtarzai to 374.5 in Badini, about a nine-fold spread. Weighting each tehsil's mean by its population gives 112.3 minutes across the six. A district average hides these local differences.

Figure 2 · Bars
Travel time varies nine-fold across Killa Saifullah's tehsils
Kan Mehtarzai
41.3 min
Muslim Bagh
60.5 min
Killa Saifullah
129.7 min
Loi Band
131.5 min
Shinkai
149.7 min
Badini
374.5 min
Killa Saifullah's six tehsils: population-weighted motorised minutes, bars scaled to Badini's 374.5. Badini (rust) represents 8,032 modelled people across 2,290 valid cells; that is not a household sample. Combining the six tehsils with population weights gives 112.3 minutes. The method note explains why the separate district calculation differs. Source: tehsil table and district table.

In Shigar, the mean across cells is 1,086.8 minutes, against 431.3 when weighted by population. The difference is consistent with people being concentrated in more accessible parts of a mountainous tehsil. It does not independently prove where every household lives. WorldPop estimates the distribution of people using census information and covariates, including roads; its unconstrained method can allocate population across the landscape rather than only to identified buildings.

If a population model wrongly places people close to roads, it can pull weighted travel times down. If it places people in uninhabited remote cells, it can push them up. Sharing a road input with the travel model is a reason to check sensitivity, not evidence that the net error must go in one direction. Better weights require better information about settlement, not a presumption that weighting removes uncertainty.

Figure 3 · Two averages · interactive
Weighting by population usually brings the average down
1 1 10 10 60 60 240 240 960 960 Mean across cells (minutes, log scale) Population-weighted mean (minutes, log scale) ShigarMastuj
One dot per valid tehsil, coloured by province as in Figure 1. On the dashed diagonal the two means agree. Below it, the population-weighted mean is lower; above it, higher. Thirteen tehsils lie above the diagonal. Shigar is at 1,086.8 minutes across cells and 431.3 weighted by population. Read the values in the searchable table. Source: travel_time_tehsils.csv.

For most tehsils, population weighting lowers the mean. But in 13 of the 552 valid rows it raises it. This is possible whenever the model places more people in cells that are less accessible than the tehsil's typical cell. The diagonal in Figure 3 marks agreement; points on either side answer different spatial questions.

A mean also hides the tail. The national population-weighted mean is 22.1 minutes, yet the table implies about 7.45 per cent of its represented population lives in cells more than 60 modelled motorized minutes from a mapped facility: roughly 16.36 million people on the 2020 population base. Publish a threshold share alongside the mean. A small average can coexist with a large group facing long journeys.

Read the figures as a table

Find a tehsil

All 552 plotted tehsils, with the same values as the charts. Manora Cantonment is missing from the calculation. Times are modelled motorized minutes; population is the modelled 2020 count.

Open searchable data table

552 tehsils

Motorized travel time to the nearest mapped facility
TehsilProvinceValid cellsPopulationCell mean (min)Population mean (min)Population >60 min (%)
BaghAzad Jammu & Kashmir630220,34346.025.810.8
DheerkotAzad Jammu & Kashmir323134,70657.652.630.7
BarnalaAzad Jammu & Kashmir579122,63860.860.150.8
BhimberAzad Jammu & Kashmir51097,70029.620.85.4
SamahniAzad Jammu & Kashmir487121,20929.624.98.6
Hattian BalaAzad Jammu & Kashmir922201,229121.885.946.2
HaveliAzad Jammu & Kashmir706135,96081.267.338.4
KotliAzad Jammu & Kashmir1,293503,77531.224.85.6
NakialAzad Jammu & Kashmir238106,94253.650.025.2
SehnsaAzad Jammu & Kashmir67389,91739.431.813.3
DudyalAzad Jammu & Kashmir44283,86122.615.71.1
MirpurAzad Jammu & Kashmir809228,27817.311.00.1
MuzaffarabadAzad Jammu & Kashmir1,836495,61585.540.321.9
AthumqamAzad Jammu & Kashmir4,254134,093401.1314.396.1
AbbaspurAzad Jammu & Kashmir14349,97729.326.45.8
HajeeraAzad Jammu & Kashmir331172,57020.617.42.9
RawalakotAzad Jammu & Kashmir506253,59117.412.50.9
PallandariAzad Jammu & Kashmir800285,39132.628.46.5
AwaranBalochistan6,74624,588406.0276.0100.0
Gishkore SubBalochistan5,91715,787444.2358.188.7
Jhal JhaoBalochistan1,9076,778303.6255.2100.0
Jhal Jhao SubBalochistan13,20660,542326.3251.394.6
MashkaiBalochistan4,63839,269150.794.248.1
BarkhanBalochistan4,690121,652162.1135.995.7
Chagai SubBalochistan6,43730,332237.2172.877.4
DalbadinBalochistan20,45371,945310.6265.199.7
NaukandiBalochistan19,27013,861506.8537.1100.0
TaftanBalochistan12,89812,269384.1314.3100.0
BekerhBalochistan3415,179333.9322.3100.0
Dera BughtiBalochistan1,23526,26964.349.528.9
Loti SubBalochistan1,0669,095351.0293.097.7
MalumBalochistan1,27018,090305.2307.1100.0
PhelawaghBalochistan2763,531281.4285.5100.0
Pir KohBalochistan2,22749,731167.0147.377.2
SangsillaBalochistan2,04132,278161.6166.193.1
SuiBalochistan5,22879,784236.1160.668.5
GwadarBalochistan2,85159,525194.3145.5100.0
JiwaniBalochistan44910,784134.4127.6100.0
OrmaraBalochistan3,38023,805136.4119.667.0
PasniBalochistan5,09155,970135.8116.796.5
Sunstar SubBalochistan2,58854,548174.5142.8100.0
HarnaiBalochistan3454,564172.5168.397.8
KhostBalochistan2,71969,745111.752.630.0
ShahrigBalochistan1,03318,970114.280.445.7
GhandakhaBalochistan74956,31560.657.640.2
Jhat PatBalochistan1,079207,12037.832.311.1
SohbatpurBalochistan883118,77741.833.314.5
Usta MuhammadBalochistan538121,59429.816.05.6
GandawaBalochistan1,97042,995164.9149.799.9
Jhal MagsiBalochistan2,38075,281103.793.270.4
Mirpur SubBalochistan72913,880155.5138.797.4
BhagBalochistan1,77369,187139.6130.384.5
Balanari SubBalochistan1,04942,36368.556.836.2
DhadarBalochistan1,07057,75562.123.410.5
Khattan SubBalochistan73736,226134.3136.986.1
Mach SubBalochistan2,34441,45998.351.533.1
Sanni SubBalochistan1,92863,858157.8148.290.2
GazgBalochistan1,37711,028334.9299.7100.0
JohanBalochistan3,16327,257244.5193.798.6
KalatBalochistan7,44593,582214.8131.372.6
Mango CharBalochistan1,53647,44271.342.520.1
SurabBalochistan4,914112,429153.7111.279.1
BalnigorBalochistan1,61614,276112.698.575.0
BuledaBalochistan2,60072,400210.9118.591.9
DashtBalochistan3,22733,451163.4123.472.7
HoshabBalochistan2,86817,606280.3171.0100.0
KechBalochistan12,638245,403218.470.934.0
MandBalochistan2,43637,876160.8112.8100.0
TumpBalochistan3,62962,400199.185.838.1
ZamuranBalochistan2,22618,572307.6314.0100.0
KharanBalochistan14,228119,702196.5153.367.3
Aranji SubBalochistan5,94134,104366.0355.499.7
Karkah SubBalochistan2,26427,076135.0128.273.4
KhuzdarBalochistan7,809172,360161.471.131.4
Moola SubBalochistan3,50326,991197.4200.890.3
Nal SubBalochistan5,37463,756129.2100.868.2
Ornach SubBalochistan3,81532,216220.3126.362.9
Saroona SubBalochistan2,95519,468210.5196.2100.0
Wadh SubBalochistan4,83170,342166.9118.564.9
ZehriBalochistan4,23565,588251.3179.499.9
ChamanBalochistan1,804127,133201.4139.768.6
Dobandi Sub-Balochistan2,16496,004348.1327.199.8
GulistanBalochistan3,259131,612181.097.546.1
Killa AbdullahBalochistan55597,57293.140.010.9
BadiniBalochistan2,2908,032377.1374.5100.0
Kan MehtarzaiBalochistan78830,19558.741.316.5
Killa SaifullahBalochistan6,25382,996189.7129.778.1
Loi BandBalochistan2,37827,039192.1131.580.3
Muslim BaghBalochistan1,97259,39486.660.536.5
ShinkaiBalochistan3,13930,558185.6149.779.3
Girsani SubBalochistan46326,624163.1149.7100.0
KahanBalochistan5,03132,801245.7227.395.5
KohluBalochistan79732,619198.9181.0100.0
MawandBalochistan4,00729,108203.6179.492.6
BelaBalochistan2,31464,589146.254.421.3
DurjiBalochistan4,37835,819154.9142.395.1
GaddaniBalochistan68073,22227.813.21.0
HubBalochistan53452,78142.39.71.7
KanrajBalochistan1,3079,717261.7246.2100.0
LakhraBalochistan1,48922,96880.466.443.5
LiariBalochistan2,78221,989129.9104.170.6
SonmianiBalochistan2,02843,31777.050.623.9
UthalBalochistan2,60555,352118.156.032.9
DukiBalochistan5,858142,260155.1128.087.2
LoralaiBalochistan3,448131,14592.461.037.1
MekhtarBalochistan1,69232,132110.596.969.7
DashtBalochistan3,66147,891123.566.939.1
Khad Kocha Sub-Balochistan81133,14080.353.023.8
Kirdgap Sub-Balochistan1,61822,167111.688.452.5
MastungBalochistan1,55599,43056.234.111.4
Drug SubBalochistan1,27125,587150.0140.893.1
KingriBalochistan5,197115,749163.5159.880.9
Musa KhelBalochistan1,63228,525136.1117.592.6
Baba_KotBalochistan97067,96499.486.460.4
ChattarBalochistan1,14260,620121.197.666.6
Dera_Murad_JamaliBalochistan1,532119,10165.440.720.1
TambooBalochistan64349,32381.155.029.1
Dak_Balochistan3,29025,268235.0208.696.3
Nushki_Balochistan4,53295,958163.8115.367.6
GichkBalochistan11,22180,378348.1259.290.9
GowargoBalochistan2,11830,542168.5153.992.1
PanjgurBalochistan5,007137,982137.148.023.4
ParomeBalochistan4,60437,451259.8229.898.2
BarshoreBalochistan2,879116,625124.694.163.6
HuramzaiBalochistan58517,165105.593.366.2
KarezatBalochistan2,09092,72451.029.114.2
PishinBalochistan1,019210,18125.213.92.4
SarananBalochistan11412,50930.228.53.1
Panj Pai Sub-Balochistan1,55825,947225.6160.263.4
Quetta CityBalochistan647732,87735.23.80.9
Quetta SaddarBalochistan1,462170,47358.922.610.0
SheeraniBalochistan4,034108,108156.6143.179.6
Kut MandaiBalochistan1,96420,613228.6177.193.7
LehriBalochistan2,60139,889142.7120.881.5
SanganBalochistan1,66113,354272.9277.299.0
SibiBalochistan3,02492,701116.043.420.5
BesimaBalochistan8,50931,255255.5255.398.6
MashkhelBalochistan18,72638,739486.1369.493.5
NagBalochistan6,25319,429418.0408.8100.0
Shahdo Garhi SubBalochistan4,72823,815195.0155.795.6
WashukBalochistan9,89219,047526.6453.1100.0
Ashwat Sub-Balochistan1,2997,420209.9191.7100.0
Kashatoo Sub-Balochistan2,2819,260377.3360.7100.0
Qamar Din KarezBalochistan7614,134409.9376.1100.0
Sambaza SubBalochistan1,3537,266362.8319.1100.0
ZhobBalochistan10,516219,075150.2107.766.0
Sinjawi SubBalochistan2,47058,448121.581.943.7
Ziarat Sub DivisionBalochistan1,94740,71870.250.630.5
Bar ChamarkandKhyber Pakhtunkhwa231,57921.424.40.0
BarangKhyber Pakhtunkhwa37970,44646.942.021.1
KharKhyber Pakhtunkhwa391197,39521.314.93.1
MamundKhyber Pakhtunkhwa372217,75055.542.622.5
NawagaiKhyber Pakhtunkhwa17757,91829.526.49.5
SalarzaiKhyber Pakhtunkhwa339216,42176.562.138.9
Utman KhelKhyber Pakhtunkhwa24264,44448.038.018.3
Fr BannuKhyber Pakhtunkhwa1,13142,25056.945.127.2
Fr D.I.KhanKhyber Pakhtunkhwa2,27952,625103.791.153.4
Fr KohatKhyber Pakhtunkhwa655152,35935.728.411.6
Fr LakkiKhyber Pakhtunkhwa25111,949116.7148.089.5
Fr PeshawarKhyber Pakhtunkhwa36379,42241.631.810.5
Fr TankKhyber Pakhtunkhwa1,57835,36575.974.151.1
BaraKhyber Pakhtunkhwa2,239436,033121.331.913.4
JamrudKhyber Pakhtunkhwa512143,40029.920.46.4
Landi KotalKhyber Pakhtunkhwa1,048219,49662.636.014.8
Central KurramKhyber Pakhtunkhwa2,038257,41992.082.953.0
Lower KurramKhyber Pakhtunkhwa1,300114,04745.735.821.0
Upper KurramKhyber Pakhtunkhwa1,335306,46068.934.117.3
Ambar Utman KhelKhyber Pakhtunkhwa32836,50162.458.239.5
HalimzaiKhyber Pakhtunkhwa29446,45440.135.610.3
PindialiKhyber Pakhtunkhwa643131,32062.450.131.0
Prang GharKhyber Pakhtunkhwa36127,22079.963.441.9
SafiKhyber Pakhtunkhwa44795,63848.543.526.1
Upper MomandKhyber Pakhtunkhwa712111,86964.360.536.2
Yaka GhundKhyber Pakhtunkhwa37899,76549.633.423.1
Data KhelKhyber Pakhtunkhwa2,573171,612137.4119.295.5
DossaliKhyber Pakhtunkhwa35730,36494.490.380.1
GaryumKhyber Pakhtunkhwa45814,82298.383.575.8
Ghulam KhanKhyber Pakhtunkhwa26613,81194.688.979.5
Mir AliKhyber Pakhtunkhwa90194,39864.750.924.9
Miran ShahKhyber Pakhtunkhwa572137,66285.071.046.6
RazmakKhyber Pakhtunkhwa2784,89587.176.760.8
ShewaKhyber Pakhtunkhwa56237,14996.185.156.2
SpinwamKhyber Pakhtunkhwa80230,23798.990.674.0
Central OrakzaiKhyber Pakhtunkhwa49280,07757.054.336.6
IsmailzaiKhyber Pakhtunkhwa33266,22451.551.930.0
Lower OrakzaiKhyber Pakhtunkhwa73390,24162.360.339.5
Upper OrakzaiKhyber Pakhtunkhwa36488,63591.989.175.9
BirmalKhyber Pakhtunkhwa1,18782,430136.2124.1100.0
LadhaKhyber Pakhtunkhwa58499,481131.799.958.7
MakinKhyber Pakhtunkhwa51150,078118.398.547.8
SaraoghaKhyber Pakhtunkhwa1,056102,07992.479.746.6
SerwekaiKhyber Pakhtunkhwa49042,08669.562.639.9
TiarzaKhyber Pakhtunkhwa94258,45884.480.265.6
Toi KhullaKhyber Pakhtunkhwa71142,458141.2132.594.0
WanaKhyber Pakhtunkhwa3,086135,817138.497.667.3
IslamabadIslamabad Capital Territory1,2531,938,9945.42.40.0
AstoreGilgit-Baltistan7,370119,013282.6198.874.7
ChilasGilgit-Baltistan6,02979,995283.6200.283.4
Darel TangirGilgit-Baltistan3,83782,342488.9330.898.5
KhapluGilgit-Baltistan3,69271,086438.9188.170.2
MashabrumGilgit-Baltistan8,20432,5881245.9573.8100.0
GupisGilgit-Baltistan7,62453,205518.3270.367.4
IshkomenGilgit-Baltistan3,95422,562671.5327.288.6
PunialGilgit-Baltistan2,21339,513405.4180.258.0
YasinGilgit-Baltistan3,62737,975604.4229.955.3
GilgitGilgit-Baltistan5,768125,421421.4152.544.8
AliabadGilgit-Baltistan1,16211,3861043.8367.952.9
GojalGilgit-Baltistan15,31531,0721171.1637.878.2
Nagar-IGilgit-Baltistan2,04173,578892.3346.046.9
Nagar-IiGilgit-Baltistan2,10219,526801.9208.843.7
GultariGilgit-Baltistan4,85837,729189.8164.892.0
KharmangGilgit-Baltistan3,62857,915264.3158.373.6
RonduGilgit-Baltistan2,36834,544386.1220.581.4
ShigarGilgit-Baltistan12,75962,9091086.8431.361.0
SkarduGilgit-Baltistan2,75370,116278.883.830.8
AbbottabadKhyber Pakhtunkhwa1,9021,254,31432.716.05.5
HavelianKhyber Pakhtunkhwa573300,30927.621.04.4
BannuKhyber Pakhtunkhwa1,114992,09724.610.80.7
DomelKhyber Pakhtunkhwa533189,96421.515.70.6
AlaiKhyber Pakhtunkhwa1,156212,19196.572.142.3
BatagramKhyber Pakhtunkhwa767333,12870.039.318.5
DaggarKhyber Pakhtunkhwa928345,44345.233.916.0
GagraKhyber Pakhtunkhwa663219,06456.138.418.7
Khado KhelKhyber Pakhtunkhwa855321,27630.624.17.5
CharsaddaKhyber Pakhtunkhwa633928,1705.94.70.0
ShabqadarKhyber Pakhtunkhwa271413,7426.65.30.0
TangiKhyber Pakhtunkhwa485451,8488.85.80.1
ChitralKhyber Pakhtunkhwa8,362319,850371.8136.350.1
MastujKhyber Pakhtunkhwa12,619237,288797.8257.053.8
D.I.KhanKhyber Pakhtunkhwa1,673521,42331.212.93.5
DarabanKhyber Pakhtunkhwa1,988150,53154.950.832.3
KulachiKhyber Pakhtunkhwa1,42894,98755.950.426.8
PaharpurKhyber Pakhtunkhwa2,738418,89546.532.711.2
ParoaKhyber Pakhtunkhwa2,284316,62953.840.722.9
HanguKhyber Pakhtunkhwa927353,45225.719.44.1
TallKhyber Pakhtunkhwa1,000194,95456.050.826.1
GhaziKhyber Pakhtunkhwa823193,22228.917.96.5
HaripurKhyber Pakhtunkhwa1,8801,022,48620.811.11.4
Banda Daud ShahKhyber Pakhtunkhwa1,518195,23339.732.113.4
KarakKhyber Pakhtunkhwa1,375329,76848.034.014.7
Takht E NasratiKhyber Pakhtunkhwa790230,28731.220.78.7
KohatKhyber Pakhtunkhwa2,429774,45831.215.44.8
LachiKhyber Pakhtunkhwa1,721211,55349.437.821.2
DassuKhyber Pakhtunkhwa5,008254,804484.1375.482.1
KandiaKhyber Pakhtunkhwa2,99477,991759.6536.292.3
PalasKhyber Pakhtunkhwa1,999434,014252.1176.068.4
PattanKhyber Pakhtunkhwa91560,961551.8420.495.8
Lakki MarwatKhyber Pakhtunkhwa3,573625,39739.828.47.5
NaurangKhyber Pakhtunkhwa822225,51525.916.43.6
AdenzaiKhyber Pakhtunkhwa546361,59234.217.77.0
LalqillaKhyber Pakhtunkhwa299133,45457.632.016.2
MundaKhyber Pakhtunkhwa320231,01726.915.96.0
Samarbagh(Barwa)Khyber Pakhtunkhwa395192,18448.333.916.3
TemergaraKhyber Pakhtunkhwa914522,26438.722.210.2
Sam RanizaiKhyber Pakhtunkhwa380336,19211.36.70.5
Swat RanizaiKhyber Pakhtunkhwa951461,28332.416.16.7
BalakotKhyber Pakhtunkhwa3,461377,844204.498.144.8
MansehraKhyber Pakhtunkhwa1,9191,015,66047.218.17.4
OghiKhyber Pakhtunkhwa678322,10644.636.118.1
KatlangKhyber Pakhtunkhwa432358,16914.912.20.6
MardanKhyber Pakhtunkhwa1,3121,509,10119.27.32.1
Takht BhaiKhyber Pakhtunkhwa559675,2989.99.40.0
NowsheraKhyber Pakhtunkhwa1,8741,109,49827.813.32.6
PabbiKhyber Pakhtunkhwa578458,97922.112.01.0
AlpuriKhyber Pakhtunkhwa811299,16685.262.335.9
BishamKhyber Pakhtunkhwa26488,20773.750.327.3
ChiksarKhyber Pakhtunkhwa339153,04357.448.129.2
MartungKhyber Pakhtunkhwa21386,65166.959.130.3
PuranKhyber Pakhtunkhwa344136,52390.268.541.9
LahorKhyber Pakhtunkhwa438361,80810.88.80.0
RazarKhyber Pakhtunkhwa643579,48313.67.01.7
SwabiKhyber Pakhtunkhwa381401,7247.54.80.0
TopiKhyber Pakhtunkhwa624454,62821.911.43.1
BabuzaiKhyber Pakhtunkhwa462391,81640.913.45.9
BahrainKhyber Pakhtunkhwa4,553337,280365.8199.966.2
BarikotKhyber Pakhtunkhwa501347,39449.726.712.3
CharbaghKhyber Pakhtunkhwa18894,82520.415.92.8
KabalKhyber Pakhtunkhwa574370,66436.021.410.6
Khawaza KhelaKhyber Pakhtunkhwa400214,61868.935.321.1
MattaKhyber Pakhtunkhwa972438,48585.046.226.1
TankKhyber Pakhtunkhwa2,306415,16335.426.28.2
TorgherKhyber Pakhtunkhwa660299,636114.5100.453.3
DirKhyber Pakhtunkhwa1,607376,23680.655.230.5
SharingalKhyber Pakhtunkhwa2,814226,890303.9234.677.7
WariKhyber Pakhtunkhwa698249,304117.088.048.0
AttockPunjab1,524434,28536.215.85.9
Fateh JangPunjab1,822358,50123.615.62.8
HassanabdalPunjab532277,23215.27.61.4
HazroPunjab541408,5318.66.00.0
JandPunjab2,957362,83734.626.57.3
Pindi GhebPunjab2,153323,33829.722.45.2
BahawalnagarPunjab2,682987,25320.414.41.3
ChishtianPunjab2,445829,72219.912.01.0
Fort AbbasPunjab3,161466,004112.754.128.6
HaroonabadPunjab1,504605,66524.520.10.4
MinchinabadPunjab1,863559,05546.039.913.9
Ahmadpur EastPunjab1,9711,165,61422.115.22.4
BahawalpurPunjab1,578990,12716.57.90.2
Bahawalpur CityPunjab328346,41914.04.60.0
HasilpurPunjab1,508516,01525.712.90.8
Khairpur TamewaliPunjab970304,84620.816.80.8
YazmanPunjab25,436688,661142.060.232.2
BhakkarPunjab2,499696,03528.220.44.4
Darya KhanPunjab1,895377,69138.929.19.7
Kalur KotPunjab2,406373,88239.135.112.2
MankeraPunjab4,877284,66347.538.320.4
ChakwalPunjab3,036745,05921.114.61.7
Choa Saidan ShahPunjab700177,49129.819.28.3
Kallar KaharPunjab1,148248,92321.413.72.1
Tala GangPunjab4,389633,70535.427.89.9
BhawanaPunjab1,271413,14516.215.30.0
ChiniotPunjab950609,8869.86.70.0
LalianPunjab1,343573,71524.616.53.7
De-Excluded Area D.G.KhanPunjab7,307209,245149.9126.772.8
Dera Ghazi KhanPunjab4,8711,906,01331.514.83.2
TaunsaPunjab3,615612,05331.122.36.5
Chak JhumraPunjab711433,2499.98.90.0
Faisalabad CityPunjab2773,511,1661.40.90.0
Faisalabad SaddarPunjab1,7631,568,3146.54.70.0
JaranwalaPunjab2,3531,740,2798.46.10.0
SamundariPunjab1,179857,1049.98.60.0
TandlianwalaPunjab1,835891,56022.518.91.0
GujranwalaPunjab1,0712,198,5816.24.30.0
Gujranwala CityPunjab108962,1261.10.80.0
KamokePunjab926668,55411.68.70.0
Nowshera VirkhanPunjab1,205707,5459.38.60.0
WazirabadPunjab1,6661,089,1379.77.10.0
GujratPunjab1,9821,822,6767.04.90.0
KharianPunjab1,7561,308,89911.67.00.6
Sarai AlamgirPunjab676309,85017.411.90.1
HafizabadPunjab1,510801,24412.48.50.0
Pindi BhattianPunjab1,611580,43613.59.21.0
18-HazariPunjab2,240385,21938.825.58.1
Ahmedpur SialPunjab1,171434,39530.926.16.9
JhangPunjab3,5611,623,12417.811.81.1
ShorkotPunjab1,666671,98623.519.03.1
DinaPunjab996409,90917.89.60.9
JhelumPunjab825480,93319.08.50.9
Pind Dadan KhanPunjab1,854440,98426.719.64.0
SohawaPunjab1,258206,48617.213.21.9
ChunianPunjab1,599956,40323.517.33.5
KasurPunjab1,8991,229,98013.38.00.4
Kot Radha KishanPunjab582601,7309.65.90.0
PattokiPunjab1,1441,044,79311.36.70.3
JahanianPunjab673409,90713.411.50.0
KabirwalaPunjab2,2221,112,22318.914.02.1
KhanewalPunjab1,608994,45616.810.80.5
KhushabPunjab4,042945,54630.521.54.8
NoorpurPunjab3,290290,73440.231.17.0
QaidabadPunjab1,771276,72134.227.19.1
Lahore CanttPunjab1,3906,127,5224.11.70.0
Lahore CityPunjab8884,219,8423.61.70.0
ChaubaraPunjab3,993275,41159.945.026.0
Karor Lal EsanPunjab1,923610,85526.317.82.8
LayyahPunjab2,753978,55226.414.63.9
Dunya PurPunjab1,083552,00019.717.80.0
KarorpaccaPunjab957587,75317.012.60.2
LodhranPunjab1,531784,76113.610.20.1
MalakwalPunjab1,030480,1306.45.40.0
Mandi BahauddinPunjab1,203774,8988.06.30.0
PhaliaPunjab1,565658,30815.711.80.6
IsakhelPunjab2,615436,12833.325.16.4
MianwaliPunjab4,086881,83235.922.37.5
PiplanPunjab1,656447,05620.914.31.3
Jalalpur PirwalaPunjab1,172591,01632.430.63.3
Multan CityPunjab3792,445,8703.21.40.0
Multan SaddarPunjab2,2381,442,17212.78.40.1
ShujabadPunjab1,128707,85922.418.30.9
AlipurPunjab1,657676,63844.824.110.4
JatoiPunjab1,377707,97331.520.16.3
Kot AdduPunjab4,2951,348,23433.520.35.4
MuzaffargarhPunjab3,0011,632,07723.515.62.6
Nankana SahabPunjab2,2181,123,72113.911.30.1
SafdarabadPunjab828424,3879.79.10.0
Shah KotPunjab328281,3836.14.90.0
Shangla HillPunjab418265,1778.36.60.0
NarowalPunjab996713,7999.57.10.0
ShakargarhPunjab1,298857,17020.718.50.2
ZafarwalPunjab876461,53916.313.00.2
DepalpurPunjab3,4021,673,39525.118.24.2
OkaraPunjab1,6931,440,65815.411.50.0
Renala KhurdPunjab843563,86514.410.50.1
ArifwalaPunjab1,557921,07513.910.40.1
Pak PattanPunjab2,0811,130,31127.119.14.8
Khan PurPunjab4,0631,152,38059.920.76.9
Liaqat PurPunjab6,1461,084,471102.022.36.6
Rahim Yar KhanPunjab3,4771,710,75243.518.22.2
SadiqabadPunjab3,3511,290,55146.417.33.6
De-Excluded Area RajanpurPunjab6,40479,968270.969.026.2
JampurPunjab2,972800,41250.022.07.8
RajanpurPunjab3,633644,26985.025.37.8
RojhanPunjab3,724338,499106.746.824.2
Gujar KhanPunjab2,056821,57111.57.90.3
KahutaPunjab859281,27621.814.12.5
Kallar SayyedanPunjab653233,33714.810.50.4
Kotli SattianPunjab511137,51125.724.78.2
MurreePunjab543279,75910.77.00.6
RawalpindiPunjab2,2703,221,48913.34.80.1
TaxilaPunjab392573,0975.32.80.0
ChichawatniPunjab2,1311,285,27213.911.20.0
SahiwalPunjab2,2161,750,20015.410.80.0
BhalwalPunjab1,759783,34811.79.30.0
Kot MominPunjab1,225583,18821.619.60.5
SahiwalPunjab1,042389,25919.215.70.2
SargodhaPunjab2,0051,809,31213.79.00.0
ShahpurPunjab1,082445,81315.112.90.2
SillanwaliPunjab832404,56718.014.21.1
FerozewalaPunjab637720,9796.03.40.0
MuridkePunjab1,268687,1679.46.80.0
Sharak PurPunjab512277,8838.77.30.0
SheikhupuraPunjab1,7181,742,5337.55.50.0
DaskaPunjab1,0421,050,6818.66.80.0
PasrurPunjab1,3841,012,5779.78.50.0
SambrialPunjab496485,4907.35.20.0
SialkotPunjab1,1821,889,31010.85.90.1
GojraPunjab930807,2889.06.90.0
Toba Tek SinghPunjab1,7211,030,48711.69.90.0
BurewalaPunjab2,0191,210,70217.012.80.3
MailsiPunjab2,1481,163,12614.311.50.0
VehariPunjab1,8671,078,86515.111.80.0
BadinSindh2,215459,12345.433.411.1
MatliSindh1,375454,34140.538.46.4
Shaheed Fazal RahuSindh2,251301,99262.153.132.1
TalharSindh513114,97241.438.015.4
Tando BagoSindh1,869394,07439.738.010.2
DaduSindh1,025500,35922.213.71.8
JohiSindh4,695347,96180.451.230.1
Khairpur Nathan ShahSindh3,432402,190215.749.418.3
MeharSindh1,327512,62529.115.33.4
DaharkiSindh3,670348,062103.740.924.1
GhotkiSindh1,109475,31922.512.21.7
KhangarhSindh2,087173,726108.540.311.6
Mirpur MatheloSindh588240,46842.627.68.1
UbauroSindh892303,44329.422.43.0
HyderabadSindh947763,5869.03.50.0
LatifabadSindh3621,603,41913.82.80.1
QasimabadSindh1320,1433.02.90.0
Garhi KhairoSindh981200,82243.340.815.9
JacobabadSindh914426,16826.413.71.8
ThulSindh1,778564,78848.241.116.7
KotriSindh1,643320,17994.014.25.7
ManjandSindh2,951168,04191.347.819.9
SehwanSindh3,031276,54278.324.512.3
Thano Bula KhanSindh6,939168,612119.769.037.7
KandhkotSindh847326,01233.219.38.1
KashmoreSindh1,653411,80242.826.913.4
TangwaniSindh1,021282,62946.529.414.0
Faiz GanjSindh1,287234,69154.930.28.6
GambatSindh719201,70840.323.711.4
KhairpurSindh658518,72210.25.40.0
KingriSindh746335,37330.221.27.1
Kot DijiSindh672376,02115.814.40.0
MirwahSindh892379,68319.314.50.5
NaraSindh15,088152,786149.399.261.9
Sobho DeroSindh668283,28528.915.14.4
Bakrani TaluksSindh531238,99616.510.70.5
DokriSindh542269,64319.312.31.0
LarkanaSindh655727,37214.15.50.4
RatoderoSindh777364,16124.212.63.5
HalaSindh538224,38528.415.45.8
MatiariSindh909397,20811.89.20.0
SaeedabadSindh432157,54015.111.61.2
DigriSindh775278,33221.120.00.0
Hussain Bux MariSindh398123,37923.418.40.7
JhudoSindh712199,03218.316.00.3
Kot Ghulam MuhammadSindh1,019284,22322.519.40.7
MirpurkhasSindh643468,67513.37.00.0
SindhriSindh750165,91629.225.31.6
BhiriaSindh522290,10220.717.31.7
KandiaroSindh876292,64537.423.59.9
MehrabpurSindh630303,62427.321.05.8
MoroSindh982414,90027.115.72.1
Naushahro FerozeSindh950413,00626.417.82.2
Jam Nawaz AliSindh620146,14132.327.92.7
KhiproSindh7,212434,733130.653.828.2
SangharSindh2,868422,84740.125.96.8
ShahdadpurSindh970481,82825.621.20.4
SinjhoroSindh1,089314,28723.817.91.2
Tando AdamSindh539371,87814.512.90.1
Kambar Ali KhanSindh3,550425,986149.840.818.2
Miro KhanSindh516140,10627.516.94.4
NasirabadSindh465231,19319.416.50.0
Qubo Saeed KhanSindh81974,48043.537.516.4
Shahdad KotSindh527205,94725.812.02.2
Sijawal JunejoSindh495147,11522.517.73.6
WarahSindh991233,21835.623.23.2
DaurSindh2,927588,29958.325.76.6
Kazi AhmedSindh1,364381,58524.919.23.0
NawabshahSindh604355,75614.48.30.2
SakrandSindh1,125427,29924.015.73.2
Garhi YasinSindh1,234368,21427.921.73.4
KhanpurSindh905325,72324.219.80.4
LakhiSindh505300,07311.99.20.0
ShikarpurSindh747426,39130.811.42.2
New SukkurSindh284464,67317.95.60.1
Pano AqilSindh1,194393,72524.512.63.1
RohriSindh1,376383,07526.813.20.3
SalehpatSindh3,87795,124151.494.863.8
SukkurSindh127111,00517.912.50.0
ChamberSindh655183,38522.822.40.2
Jhando MariSindh872269,41121.317.92.1
Tando Allah YarSindh507344,93411.210.30.0
Bulri Shah KarimSindh1,163324,27752.449.123.5
Tando Gulam HyderSindh703180,44143.139.49.7
Tando Muhammad KhanSindh456213,83227.824.42.6
ChachroSindh8,432559,47278.882.376.0
DiploSindh5,049254,40169.554.732.7
MithiSindh6,749382,22368.259.840.6
Nagar ParkarSindh4,915236,61464.064.252.4
GhorabariSindh1,255159,28434.331.66.5
JatiSindh4,483194,507136.471.335.7
Keti BunderSindh94043,53973.250.828.5
Kharo ChanSindh81240,606125.698.680.5
Mirpur BathoroSindh934241,22952.946.921.3
Mirpur SakroSindh2,226257,98936.418.12.6
Shah BunderSindh3,811163,329188.5119.273.1
SujawalSindh920203,40034.430.73.1
ThattaSindh4,778404,49044.425.88.2
KunriSindh931253,11618.815.00.3
PithoroSindh661130,97523.622.30.1
SamaroSindh778178,54828.726.32.1
Umer KotSindh4,719495,08951.029.215.2
Peshawar IKhyber Pakhtunkhwa33274,1130.80.70.0
Peshawar IiKhyber Pakhtunkhwa5841,038,3525.94.80.0
Peshawar IiiKhyber Pakhtunkhwa226923,7442.71.90.0
Peshawar IvKhyber Pakhtunkhwa8961,003,21910.15.90.2
Peshawar CantonmentKhyber Pakhtunkhwa22202,8500.70.60.0
Gadap TownSindh2,7781,626,34034.24.60.5
Bin Qasim TownSindh685467,0099.84.20.0
Lyari TownSindh11294,7380.40.40.0
Site TownSindh32661,8880.90.80.0
Gulberg TownSindh20865,3740.30.30.0
N.Nazimabad TownSindh21791,2070.40.40.0
Orangi TownSindh32272,2361.61.40.0
Baldia TownSindh33316,8521.00.80.0
Malir CantonmentSindh91204,1491.81.50.0
MalirSindh22289,5910.70.60.0
Faisal CantonmentSindh53604,1281.20.80.0
Shah Faisal TownSindh12167,0740.60.60.0
Saddar TownSindh301,064,8430.50.50.0
Kiamari TownSindh4921,124,50513.04.90.0
Clifton CantonmentSindh29820,7060.80.70.0
Korangi Creek CantonmentSindh25136,1132.60.90.0
Korangi TownSindh50948,9281.01.00.0
Landhi TownSindh54473,3411.21.00.0
Liaqatabad TownSindh12579,6520.30.30.0
Jamshed TownSindh29834,6370.40.40.0
Gulshan E Iqbal TownSindh721,390,9970.60.40.0
Karachi CantonmentSindh7251,6200.30.30.0
New Karachi TownSindh26896,0730.60.50.0
KamaliaPunjab1,515840,26814.711.10.2
Mian ChannuPunjab1,389928,23711.08.20.0

Download all 553 rows, including the missing row (CSV)

The recipe, and what it needs

For an existing healthcare surface, the practical sequence is to align the travel and population grids, assign valid cells to boundaries, then calculate summaries with a common mask. A mask is simply the set of cells admitted to a calculation. Grid alignment, missing values, boundary rules and resampling all need explicit choices. The published CSV lets you practise the final step without installing mapping software.

Practice · 15 minutes · spreadsheet or Python

Reproduce the 22-minute estimate

You need the tehsil CSV and a spreadsheet. For Python, download the companion script; it uses Python 3 with no extra packages. Keep both files in one folder and run python3 reproduce_summary.py travel_time_tehsils.csv.

Three averages, three questions. About 204 minutes gives every valid cell equal influence. About 22 minutes gives every modelled person equal influence. About 69 minutes gives every tehsil's population-weighted mean equal influence, regardless of how many people live there. This exercise compares the last two.

  1. Keep rows with positive n_px and pop_2020 and a recorded mot_popw_mean. Identify the excluded row. Keep the original file intact.
  2. Sum population. In a new column, multiply each row's pop_2020 by mot_popw_mean. Divide the sum of that new column by total population. Compare this with simply averaging mot_popw_mean.
  3. Calculate people beyond one hour in each row: pop_2020 × mot_pct_pop_gt60 ÷ 100. Sum those counts and divide by total population to obtain the national fraction; multiply by 100 for a percentage.
  4. Write one sentence reporting the mean and the threshold share, naming the population year and the modelled travel scenario. Add one limitation the CSV cannot resolve.

Spreadsheet shortcut: after filtering to valid rows, use SUMPRODUCT(population_range, mean_range) / SUM(population_range). Use only the retained data rows in both ranges. Never count a missing estimate as a zero-minute journey.

Check your answers and interpretation

552 valid rows; Manora Cantonment is excluded. Total modelled population: 219,576,102. Population-weighted mean: 22.10 minutes. Simple mean of tehsil means: 68.89 minutes, which gives every tehsil equal influence regardless of population.

More than 60 minutes: approximately 16,359,114 people, or 7.45%. These are approximate reconstructions from rounded tehsil statistics; report about 16.36 million or 16.4 million rather than an exact person count.

Example: “Across the population represented by the 2020 grid, estimated motorized travel time to the nearest mapped health facility averages 22.1 minutes; about 7.45% live more than an hour away.” The model does not establish whether the facility provides the service a patient needs.

Do not count people in tehsils whose mean exceeds 60 minutes: the supplied threshold shares describe cells within each tehsil. That is a different calculation.

Data dictionary and missing values
dd_id, tehsil, district_key, province
Boundary identifier, tehsil name, district join key and reporting province or territory.
merged_district
1 identifies a merged district within KP; 0 otherwise.
n_px
Count of valid travel cells assigned to the tehsil; not a household sample size.
pop_2020
WorldPop 2020 population summed over those cells, rounded to a whole person.
mot_mean / wal_mean
Mean minutes across valid cells for the motorized / walking scenario.
mot_popw_mean / wal_popw_mean
Population-weighted mean minutes for the corresponding scenario.
mot_pct_pop_gt30, gt60, gt120; wal equivalents
Percentage of population in cells strictly beyond the stated number of minutes. Each full column name uses the scenario prefix, for example wal_pct_pop_gt120. Values are percentages from 0 to 100, not fractions.

Blank statistics mean no estimate. Manora Cantonment has zero valid cells. Times and shares are published to one decimal place; aggregation retains that rounding uncertainty. Download the exercise notes and dictionary.

For new destinations, start earlier. Define exactly what belongs in the list: for example, government girls' secondary schools operating on a stated date. Record coordinates, source, service type and verification status. Check duplicates, misplaced points and coverage against a second source or a local sample. An accessibility map for that list then requires a new least-cost surface before the same boundary and population summaries can be calculated.

An advanced assignment is to choose one district, audit a destination list, and compare results after removing unverified locations or changing travel assumptions. Report which places change most, the population affected, and the evidence needed to decide which scenario is credible. Runtime depends on the grid, implementation and hardware; the important deliverable is an auditable calculation, not a promise that a national map takes a few minutes.

The choices continue through the computation: which neighbours connect, how water is treated, which cells are missing, and how population is moved between grids. A useful map makes those choices visible. A useful sentence then says whose access is being summarised, to what kind of destination, under which assumptions, and on what date.

Method note

Sources and dates. Adaad estimates use the MAP motorized (2019) and walking-only (2020) healthcare surfaces associated with Weiss et al. (2020), the WorldPop Global 2000–2020 series (2020 UN-adjusted population counts), and Data Darbar's 2015 boundary frame. These are modelled estimates, not official journey observations. The input dates predate the 2022 floods and do not represent current road conditions.

Spatial calculation. The travel rasters were clipped to the reporting extent. Population counts were resampled to the travel grid by nearest neighbour. Polygons were rasterised using cell-centre assignment. A common validity mask required non-negative motorized and walking values and a boundary assignment; negative population values were set to zero. Population-weighted summaries require positive total population. Nearest-neighbour resampling of counts does not guarantee population conservation; alignment and totals should be checked when rebuilding from source rasters.

Coverage reconciliation. The tehsil output represents 1,175,119 valid cells and 219,576,102 modelled people. The separate district output represents 1,179,790 cells and 220,111,132 people: 4,671 more cells and 535,030 more people. Distinct rasterised boundary coverage means these are different denominators. The downloadable tehsil table is the basis for this notebook's national exercise and figures; the 113.8-minute Killa Saifullah district comparison comes from the district output.

Aggregation and precision. Weight each tehsil's population-weighted mean by its population to reproduce the national mean over the tehsil-covered grid: 22.10 minutes motorized and 127.70 walking. Weight the cell means by valid cell counts to obtain 203.62 and 680.12 minutes. Published means and threshold shares are rounded to one decimal within each tehsil, so recombinations are approximate. Thresholds are strictly greater than 30, 60 or 120 minutes. Do not substitute a threshold applied to tehsil means for a share calculated from cells.

Population interpretation. All counts and shares retain the modelled 2020 base and the stated reporting geography, including AJK and GB. Multiplying every population cell by the same factor leaves the weighted mean unchanged; redistributing people between cells can change it. A newer national total alone cannot update the spatial distribution or make these estimates current.

Limits and reproducibility. The CSV exercise below the figures reproduces published summaries without a GIS. It does not rebuild the source rasters or produce a new destination surface. Input coverage, facility status, terrain and transport assumptions, boundary placement and population allocation remain sources of uncertainty. Report them alongside any comparison and investigate sensitivity before treating a small difference as meaningful.