The first city implementation

Barcelona pilot.

Observed city structure. Uncalibrated behavioural and service mechanisms. The pilot incorporates selected official inputs for who lives where, which services exist and what the weather did — while everything about how need becomes demand, and how demand meets capacity, still rests on declared assumptions.

Why this matters: a structural pilot makes the evidence problem concrete. It shows precisely which parts of the care pathway rest on observed data, and which parts would need evidence before any real-world claim.
Graphic silhouette of Barcelona A dotted interpretation of Barcelona's municipal boundary with one area that gradually warms.
Scientific statusaudited against repository state · August 2026
Structural simulatorCity structure and mechanistic scenario comparisons are supportable, provided synthetic behavioural and capacity values stay labelled as assumptions.
Ready with conditions
Empirical calibrationNo fitted parameter. Need, seeking, capacity and heat-response targets are not yet assembled, mapped or signed off.
Not ready
Historical validationA withheld outcome period, model-equivalent targets and pre-registered acceptance criteria do not yet exist.
Not ready
City selection

Why Barcelona?

Barcelona was chosen as the first city implementation for a practical reason: it has an unusually rich open-data environment. Population registers, administrative geography, health-service locations, socioeconomic indicators, weather records and other contextual datasets are publicly available at useful spatial scales. That made it possible to test how far CHRS could move from a controlled synthetic benchmark toward a reproducible city-specific implementation without requiring privileged data access.

Barcelona is a starting point, not a claim that it is the only or ideal test city. The implementation is still being developed independently, and no local academic, public-health or municipal team is formally attached to the pilot at this stage. I would be very happy to hear from researchers, health-system teams, city organisations or data custodians interested in reviewing the assumptions, improving the evidence base, or developing the Barcelona case collaboratively.

Working with Barcelona data or urban heat and health?

If you see a dataset, assumption or validation pathway that could strengthen this pilot, I would be glad to connect

Email me
What is already city-specific

Six layers of observed or derived city input.

These components come from official or externally sourced records. They anchor who the simulated population is, where services physically are, and what the weather actually did. They are fixed inputs and context — using them does not make the model calibrated.

Population Observed margins

Official population-register margins for 2026 — roughly 1.72 million residents across area units, after suppression handling — plus a deterministic sampled simulation population built from those margins. Joint health and access traits remain synthetic draws.

Geography Official crosswalks

Official district and neighbourhood boundaries in the Catalan reference coordinate system, harmonised into ten simulation zones with documented crosswalks and orphan checks.

Facilities Identity · type · locationCapacity not observed

A register of 146 raw facility records — 54 primary-care, 8 urgent-care and 76 emergency facilities active in the current snapshot — with real identity, classification and location. No staffed slots, hours, throughput or closure history exists behind them.

Socioeconomic context Area-level only

Per-capita household income aggregated to area terciles. Useful as stratification context; it cannot identify individual need or seeking behaviour.

Vulnerability context Historical proxy

A 2017 spatial vulnerability index used as a heat-context proxy — not a measure of current individual vulnerability.

Weather evidence Observed stationsContext, not replay

Daily records from four AEMET stations covering 2010–2026, with a documented reference station, inform heat-event evidence and episode parameterisation. The engine's day-to-day climate inside a run remains synthetic; there is no accepted station-to-zone replay yet.

What is still assumed

The mechanisms that evidence has not yet reached.

Every mechanism below runs on illustrative registry values carried over from the generic framework. They behave plausibly and they are tested — but plausible and tested is not the same as calibrated.

Care need

Routine, urgent and emergency daily probabilities are synthetic. No epidemiological incidence or prevalence evidence anchors them.

Care seeking

The probability of seeking once need exists is assumed. Attendance data alone could never identify it.

Operational capacity

Nominal per-facility capacities are illustrative values rescaled to the sampling denominator — not observed Barcelona capacity.

Queue behaviour

Queue multipliers and maximum waits are assumptions. No observed waiting or overflow evidence exists.

Heat response

The heat multiplier on need, and heat effects on workforce and operations, use illustrative parameters. One candidate 2023 episode cannot identify a response curve.

Daily climate + travel

The engine's daily weather is synthetic, and travel uses a district-level geometric proxy rather than measured times.

The rule the project holds itself to: missing evidence blocks only the claim that depends on it. Structural scenarios may run under labelled assumptions; empirical claims wait for their own evidence.
Transport data

Static GTFS is available locally. It is not in the model.

The full static T-Mobilitat GTFS feed now sits in the local evidence pack — two variants totalling more than 180 agencies, 1,600 routes and 23,000 stops each, plus realtime snapshots. This closes the acquisition gap that earlier documents recorded as missing.

Acquired

Available locally

Two complete static feed variants with schedules, shapes, transfers and accessibility fields, plus point-in-time realtime snapshots.

Static schedule tables for a time-dependent travel graph
Feed hashes recorded during review
Exact download timestamp and complete-vs-simplified variant mapping still unverified
Stop-to-zone crosswalk and walking-access rules not yet built
Not integrated

Outside the production engine

No code in the simulation pathway consumes GTFS today. Travel times still come from the geometric zone proxy.

Schedule-based travel times in the engine
Transport-limited seeking identified by transport data
Data available ≠ mechanism integrated — the distinction this page keeps repeating on purpose

A future transport layer would first validate the chosen feed variant, its provenance and the stop-to-zone join — and even then it would improve an access proxy, not create observed 2020–2025 travel behaviour.

Utilisation evidence

Annual benchmarks exist. The daily target does not.

Health-service utilisation evidence now comes in layers, and they must not be confused with one another. What exists is annual, mostly Catalonia-level, and useful for plausibility. What calibration needs is Barcelona-specific, dated, and service-classified. Neither exists yet.

In hand

Curated annual benchmark layer

A curated workbook of 49 indicators from the Catalan health-system results catalogue — 13 flagged highest-priority — traceable to source tables and DOI. Primary-care coverage and visit rates, emergency utilisation and composition, appointment accessibility within 5 and 10 days, chronic-condition prevalence.

Plausibility constraints and observation-dictionary candidates
Scale and composition checks against model outputs
Annual Catalunya aggregates — not Barcelona-resident daily or weekly counts
Missing

The actual calibration target

A dated extract of primary, urgent and emergency activity for Barcelona residents, joined to facilities or areas, with denominators — plus aligned operational-capacity records.

Daily/weekly utilisation series, 2020–2025
Operational capacity: staffed supply, hours, throughput, headroom
Two formal aggregate requests are drafted — neither sent
Utilisation will never be relabelled as capacity, even once it arrives
What remains unknown

Attendance alone cannot untangle the pathway.

This is the scientific core of the pilot. A count of people who attended a service is the product of everything upstream of it. Observed attendance cannot separately tell us who needed care, who decided to seek it, who could reach it, or how much capacity existed. That is why CHRS generates need before allocation, and why calibration needs multiple independent targets rather than one attendance series.

One observation, four unknowns
Knowing attendance and assuming three of the four factors just bakes the assumptions into the answer.
Separating them needs evidence at different points: epidemiology for need, surveys for seeking, operations for capacity.
Need and severity anchors

No age-, sex- or area-stratified incidence or prevalence evidence for routine, urgent or emergency care classes.

Conditional seeking and unmet need

No survey or linked evidence separating "did not seek" from "sought but did not reach".

Daily and weekly utilisation

No dated, geographically joinable service-use series for any care class.

Operational capacity

No staffed supply, opening hours, throughput or headroom. Attendance must never be converted into capacity.

Queue evidence

No observed waits, queues, overflow or left-without-service records.

Heat-day operational response

No aligned staffing, closure or disruption records for hot days — so heat effects on demand and on capacity cannot be separated.

Accepted heat-event definition

The current threshold is illustrative; percentile-based candidates risk leaking validation years and must be recomputed before use.

Leakage-safe split and acceptance rules

The proposed 2020–2023 calibration / 2024–2025 holdout split is designed but not locked, and acceptance criteria are undefined.

Next empirical path

Evidence first. Calibration second. Validation last.

The intended sequence is deliberately boring: acquire evidence, map it to exactly one model quantity each, calibrate only on the training years, freeze everything, then look once at withheld years. 2026 is reserved for scenario analysis — it is never a validation target.

1
Evidence acquisition

Assemble the minimum package: aggregate utilisation extract, operational-capacity records, need and seeking anchors, and an externally fixed heat definition.

in progress · requests drafted, public sources catalogued
2
Target mapping

Map every observed field to exactly one model observable — unit, denominator, geography, missingness — or reject it as non-equivalent.

specified, awaiting data
3
Calibration on 2020–2023

Fit the eight priority parameter groups only where denominators identify them: three need probabilities, baseline seeking, three capacities, heat response.

blocked pending evidence
4
Freeze the model

Lock parameters, transformations, event definitions and the holdout boundary before any withheld year is opened.

protocol defined, not executed
5
Withheld validation on 2024–2025

One pass over untouched years against pre-registered acceptance criteria. No tuning after looking.

not ready
6
2026 scenario analysis

Counterfactual questions about the present and near future — explicitly not historical validation.

reserved
About engineering diagnostics: the pilot's Stage B runs produced mechanistic outputs under assumed capacities — useful for verifying that allocation, queues and accounting behave correctly at city scale. They are engineering checks, not findings. Their unmet-care figures describe what happens when assumed capacity meets generated demand inside the model; they are not estimates of unmet care in Barcelona and are deliberately not headlined here.
Where help lands hardest

Four datasets would unblock the next stage.

Epidemiological need evidence for the three care classes; a dated Barcelona utilisation extract by service class; operational capacity records — staffing, hours, throughput; and conditional care-seeking survey evidence. Aggregate counts with denominators are enough. Nothing individual-level is required.