§1The model I started with
Here is the model, as I first wrote it down. A city is its people, its culture, its institutions, its businesses, its infrastructure, and its governance. All of these sit on a geographic structure. Every person, shop, hospital, and land parcel has a place.
Between these entities run flows. The transport flow moves people from residences to workplaces, schools, hospitals, markets, and airports. It has weekday rhythms, weekend patterns, and event surges. The fiscal flow moves money. People earn and spend. Businesses and institutions earn and spend. Everyone pays taxes. Governments collect that money and plan projects that put it back into maintenance and improvement. Goods, water, energy, and information flow through the same structure.
And the city watches itself. It puts out a wide variety of "sensors" — I use the word in a broad sense. Traffic cameras give a sense of road load. Tap-on and tap-off readers on public transport are payment devices, but they also count every journey by mode, exactly. Every income, expense, and tax return is lodged digitally. Every land purchase, sale, and plan is recorded. Governments publish budgets. Schools record attendance. Hospitals report aggregate patient counts. Roughly twice a decade, the census surveys everyone at once.
I later learned this skeleton has a name. Engineers call it a state-space model: a state, dynamics that change the state, and an observation function that reports part of it. That is the durable part of the model, and I did not have to invent it. The corrections below challenge the assumptions I had on top of this model and its use.
§2The full twin I was aiming for
Follow the model to its natural ambition. Put the entities, the flows, and the sensor streams into one system. Then every plan a council proposes — reactive, proactive, or strategic — could be tested before it is built. Simulate the flows under realistic loads. Add what we know about behaviour. Estimate the value of the plan in the model, not in the city.
And follow the ambition to its limit. With enough instrumentation, the model's state tracks the city's state, closely and in near real time. Every person, car, bus, and dollar has a live counterpart. A forecast run on that model approximates what the real city will do. Call it the full city digital twin. That was the destination I had in mind when I started.
CORRECTION 1§3The city senses itself unevenly
The first crack in my assumptions appeared as soon as I catalogued real Australian data sources. The sensors do not report at the same speed — not even close. A transit vehicle-position feed updates every 15 to 30 seconds. The electricity market publishes demand every five minutes. Land valuations arrive once a year. Council budgets arrive once a year, as PDF documents. National taxation statistics lag by about two years. The census runs every five years, and its first results take ten months to appear.
The spread covers roughly seven orders of magnitude. The consequence is that there is no single moment at which the whole city model is current. I had initially assumed that one store and one schema could "accommodate all of this." The cadence chart clearly showed faults with that assumption.
CORRECTION 2§4The sensors are not the city
My initial mental model equated observation with state. List enough sensors, and their union is the city. It is not. Tap-on and tap-off counts do not account for fare evasion. Tax data cannot account for the cash economy. Cameras may not cover all the corners. Every sensor was purpose-installed, and it only addresses that purpose.
I realised that there was no sensor or flow for culture, trust, social networks, unpaid care work, or political mood. However, these are load-bearing for whether a policy succeeds.
The discipline I adopted from this: the model holds the state, and the sensors hold an observed shadow of it. The gap between the two must stay visible in every result. There is also a practical edge to this correction. "The city senses itself" does not mean I can sense the city. Individual tax, tap, and health records are observed by the state and rightly withheld from everyone else. A twin built outside government gets aggregates, and must synthesise the rest — openly.
CORRECTION 3§5People are not particles
My initial mental model treated people the way physics treats particles. But people react to the policy being tested. Widen a road, and new trips appear to fill it. The effect is so consistent that economists call it the fundamental law of road congestion. Announce a rail line, and land prices move before the first train runs.
Economics has a name for the general trap. The Lucas critique says that behaviour estimated under the old rules does not survive a change in the rules, because people re-optimise. Its cousin, Goodhart's law, warns that when a measure becomes a target, it stops being a good measure. Both apply to twins directly. A model calibrated on yesterday's trips cannot simply replay them under tomorrow's policy.
The correction: a useful twin must model choice, not only flow. Give the simulated people options — mode, route, departure time — and let the policy change what those options cost. That is precisely what agent-based transport models do.
CORRECTION 4§6One run is not the answer
I initially thought in deterministic terms: given a starting state, I can simulate, estimate, and prove a final state. Real simulations do not subscribe to that notion. The same city, under the same policy, produces a spread of outcomes.
So one simulation run is not the answer. It is a single draw from a distribution. I must think in terms of ensembles: many runs across random seeds, swept across the parameters I could not measure. Report the spread. Where a conclusion depends on an unmeasured parameter, report the curve and not a single number. My refined mental model gives every quantity a distribution. It treats a lone precise number as a warning sign, not a comfort.
CORRECTION 5§7Governance is the controller, not just another entity
I initially thought of governance as yet another entity among many, next to businesses and institutions. That was an error. Governance owns most of the sensor list — the tax ledger, the land registry, the census. And it acts on what it senses, through budgets, projects, and rules. In control-engineering terms, governance is the feedback controller of the system. The city is a closed loop: sense, decide, act, change, sense again.
This correction taught me two things. First, the fiscal flow is special. Budgets and rules are how governance acts on the city. So a model of money is a model of the main lever. Second, a twin that informs decisions becomes part of the loop. Its forecasts change the behaviour it tried to forecast. That is a permanent condition of this work.
CORRECTION 6§8Compare, not forecast
Even with enough sensors, a forecast cannot approximate reality for long. Numerical weather prediction has near-perfect physics, planetary-scale sensing, and decades of relentless improvement. It can predict accurately for about ten useful days. Beyond that, sensitive dependence takes over: tiny errors in the initial state grow until the forecast is unreliable.
A city is a much harder case than weather. It has chaotic dynamics and agents who re-optimise and a controller inside the loop. More sensors may shrink the initial error. They do not control its growth. So the full twin fails as a forecast machine even in the limit.
Here is what works. Run scenario A and scenario B on the same model, with identical assumptions, identical demand, and identical seeds. The shared errors largely cancel. The difference between A and B is far more trustworthy than the final state of either. A twin earns its keep on comparisons — this versus that — not on predictions.
Do not build a machine that predicts the city. Build a machine that compares futures for the city, under stated assumptions, with the uncertainty shown.
§9My mental model now
In my refined mental model, I keep the initial skeleton. It is still a state-space model: state, dynamics, observation. I now understand that the state is partly unobserved, and the unobserved part stays labelled. The observation function is a shadow at mixed cadences, not a mirror. The dynamics contain choosing agents, not particles. Every quantity carries a distribution. Governance sits outside the bands, as the controller of the loop. And the output that matters is a comparison, not a prophecy.
To be honest, these corrections were standard knowledge in many neighbouring fields — control engineering, econometrics, meteorology, transport science. It was fortunate that the literature review helped me appreciate that they all apply here, at once, to the same mental model.
Look at the direction every correction pushes. Uneven senses say: live at one pace. Choosing agents say: model the choices your question touches, not all choices. Native uncertainty says: run ensembles, which only small models afford. Comparison-over-prophecy says: pick an A and a B. Every arrow points the same way — scope the twin. What happens to teams that build the everything-twin anyway is the next post.
Sources & anchors
- State-space representation (the skeleton's proper name) — en.wikipedia.org
- Lucas, R. (1976), the critique of policy evaluation with fixed behaviour — en.wikipedia.org · Goodhart's law — en.wikipedia.org
- Duranton, G. & Turner, M. (2011), "The Fundamental Law of Road Congestion", American Economic Review — doi.org
- Numerical weather prediction and its predictability horizon — en.wikipedia.org
- Cadence examples: TransLink GTFS-realtime — translink.com.au · AEMO NEM data — aemo.com.au · Queensland land valuation trends — data.qld.gov.au · Brisbane City Council budget — brisbane.qld.gov.au · ATO taxation statistics — ato.gov.au · ABS data services — abs.gov.au