TGIS v.0

TGIS v0

How it works

TGIS answers questions about a city by finding who holds the data, fetching what it can reach while you wait, and computing over it. Every figure in the answer carries its source. Data it cannot reach is named, with the institution that holds it.

This is v0, a working prototype. Most of its sources cover the whole world; city-level source discovery was seeded from Addis Ababa, which is where the two real questions below come from. Each is followed from the moment it was typed to the answer on screen.

The flow

A dashboard shows a number and keeps quiet about what is underneath it. TGIS shows the number, what it stands on, and what it could not find.

YouThe agentThe registryThe workspaceData providers
You ask a question. Inside TGIS an agent decides each step, the registry says who holds what, and a private workspace fetches from data providers and computes. The answer carries sourced figures, disagreements side by side, and gaps with the institution that holds them.Youask a planningquestionTGISone chat, from question to answerThe agentreads the question and decides every next step,using 8 tools. It never types a number in.The registrywho holds what, andwhat each source isreally like100sources, 36 reachable30 concepts · 640 placesThe workspacea private machine perchat that fetches,clips and computesData providersOpen data portalsSatellite cataloguesTransit timetablesPopulation gridsAir quality modelsGlobal map dataread live, while you waitThe answerevery figure with its sourcedisagreements side by sidegaps, and who holds them
The agent is a language model with a fixed set of tools. The registry is a database of data sources, including the ones nobody can reach. The workspace is a private machine that exists for one chat and is thrown away after it.
Provenance

Every figure carries its source, publisher, date, place and kind of evidence. An official count and a model's estimate are different claims, even with the same digits.

Both figures

When two sources disagree, both appear, each labelled, with a line on why. Nothing is averaged away. The planner decides which to trust.

The trace

What it searched for, called, received and failed to reach is part of the answer, not hidden machinery.

The rule

Never fill a gap with a plausible number. A planner who knows the data is missing is better off than one acting on something invented. A run that ends with “I could not get this, here is who has it” is a successful run.

Two example runs

Two real runs from the system's log. One wants a single figure. The other needs nine datasets combined. The code that answers them is the same, with no script and no fixed sequence. The agent decides each next step from what came back.

Asked the registryFetched from a providerComputed in the workspacePresentedA miss

What's the population of Addis Ababa?

15 calls · 6 misses · 110 s

look up

fetch

compute

answer

Where should the next bus corridor go?

23 calls · 3 misses · 320 s

look up

fetch

compute

answer

Each square is one tool call, in order. Hover or tab to one to see what it was. Most of the wall clock is waiting on providers, not thinking.

Example 1: the population of Addis Ababa

15 tool calls, 110 seconds, six misses, three figures.

Asked on 8 October 2026

“What's the population of Addis Ababa?”

  1. Find the place

    the registry

    “Addis Ababa” resolves to a boundary from a table of 640 administrative units. No city is named anywhere in the code. The path that answers Addis is the path that would answer Jakarta.

  2. Find sources

    the registry

    The question becomes a concept, population count. The registry returns up to eight sources that can be reached and eight that cannot, each with what earlier runs learned about it.

  3. Try the official figure

    six misses

    OCHA’s humanitarian API refused the request twice with 403 Forbidden, although it carried a valid app identifier. The government table underneath it had no single row for the city, and then asked which of its files to read. Kontur asked the same. geoBoundaries has no way in at all.

  4. Fetch three other sources

    three fetches

    The agent chose the 2022 admin-1 table from the government source, Kontur’s boundary file, and the WorldPop 2026 grid. Each fetch clips to the city and records where it came from.

  5. Compute

    the workspace

    One step reads the Addis Ababa row. Another sums the grid inside the city outline and notes that at 1 km resolution only 60% of the outline fell inside measurable cells.

  6. Present figures, record the disagreement

    the agent

    The agent picks which figures matter and labels them. The numbers come from code, by reference. The 22% gap between the official and the WorldPop figure is recorded in the registry, where later runs can see it.

Official statisticModelled estimateHow much of the city was measured
Three population figures for Addis Ababa: an official projection of 3,773,999 for 2022, a Kontur estimate of 3,905,515, and a WorldPop grid sum of 4,607,648 for 2026 that reached only 60% of the city outline. The 22% gap is recorded as a disagreement, not averaged.01M2M3M4M5MOfficial projectionCentral Statistical Agency, via OCHAOfficial statistic · 20223,773,999Projected from the 2007 census, Ethiopia's lastKontur estimateKonturModelled estimate · 2022–233,905,515OpenStreetMap's city outline, population blended from three modelsWorldPop gridWorldPop, University of SouthamptonModelled estimate · 20264,607,648measured over 60% of the city outline+22%Different year, different method, partial coverage. Recorded as a disagreement, not averaged.
The answer led with 3,773,999 as the figure a government office would defend. It said that this figure is a projection from the 2007 census rather than a count, and that the WorldPop figure is indicative because of its coverage.

Gap

The census itself (1984, 1994, 2007) is held by the Ethiopian Statistical Service and supplied only on request. So no count newer or more authoritative than the 2007 base exists in open form, and the answer says so.

Example 2: a bus corridor

The question v0 was built for. 23 tool calls, 320 seconds, nine sources, fourteen figures.

Asked on 21 September 2026

“Where should the next bus corridor go in Addis Ababa, given where people live and travel, and whether those passengers face heat and poor air quality?”

The agent split the question into four, searched the registry once for each, and fetched every reachable source in parallel. Three fetches came back asking which file or layer to read; the agent answered and they went through. Then four rounds of analysis in the workspace: cut the city into its ten subcities, rank them, draw a candidate corridor, and measure heat and air along it.

Part of the questionFetchedFetched on the second tryA gap
The corridor question split into four parts: heat, where people live, existing transit, and air quality. Nine sources were fetched; three needed a second try to say which file. Travel demand and NO2 came back as gaps. Four analyses in the workspace produced fourteen figures.THE QUESTIONWHAT IT NEEDSWHAT THE REGISTRY POINTED ATWHAT CAME OF ITWhere should thenext bus corridorgo, given wherepeople live andtravel, heat andair quality?Where is it hot?Landsat 9 surface temperatureWhere do peoplelive?WorldPop population100 mKontur subcity outlinesMissed once with “which file?”, then fetchedWhere do busesand taxis alreadygo, and who rides?AddisMap stopsGTFSAnbessa city bus stopsGTFSMissed once with “which file?”, then fetchedSheger city bus stopsGTFSMissed once with “which file?”, then fetchedMinibus taxi stopsGTFSOverture road segments111kRidership, travel surveyrequest onlyIs the air bad?Satellite PM2.52024, ~1 kmNO2nothing reachableWorkspace4 analyses: tensubcities, a ranking,heat and airThe answer14 sourced figures1 disagreementgaps with holders

Findings

Kolfe Keranio has the largest population of any subcity and the worst ratio of residents to existing stops. The recommendation: a west–centre corridor from Kolfe Keranio to the city centre, along the Ring Road and Churchill and Ras Mekonnen Avenues.

Residents per existing bus or minibus stop

Kolfe Keranio819,428 people
2,191
Bole816,709 people
1,963
Aradathe historic centre
653

Stops from four timetable feeds, not deduplicated across them, so a ceiling on distinct kerbside locations. Population from WorldPop 2025, 100 m grid.

582,312

people within 500 m of the candidate corridor

677

existing stops inside the same 500 m

36.6 °C

mean ground surface temperature along it, 0.3 °C above the city

29.3 µg/m³

PM2.5 along it, against 26.8 citywide; about six times the WHO guideline

Disagreement

Kolfe Keranio’s population: 819,428 from WorldPop’s grid, 660,461 from Kontur’s blend. Both are models; they differ by 24%. The ranking holds under either, and the answer said the gap matters to anyone budgeting per head.

Gaps

No household travel survey, no ridership for the light rail or the city buses, no official traffic counts or road hierarchy. All are held on request. No reachable source for NO2 either. So “where people travel” rests on where stops already are, and the answer calls itself a starting hypothesis, not an alignment.

Figure provenance

Every number in an answer is a reference to something an operation produced. The model chooses which figures matter and how to label them. It cannot type a number in.

A figure card for Kolfe Keranio's population, 819,428 in 2025, annotated: the label, the number, the evidence type, the publisher and licence, the review state, and a disagreeing second figure. Below it, the chain it came from: a sum inside the subcity outline, over a WorldPop grid and a Kontur boundary.Kolfe Keranio population819,428people · 2025 · whole subcityModelled estimateProvisionalWorldPop, University of SouthamptonCC-BY-4.0 · 100 m grid · retrieved 21 Sep 2026vs Kontur: 660,4611. What was counted, and whereThe agent writes the label. It cannot write the number.2. The number itselfComputed in the workspace, handed over by reference.3. What kind of evidenceA model's estimate, not a headcount.4. Who published it, under what licenceRead off the source underneath, never typed.5. Has a person checked this source?Not yet, so the card says Provisional.6. Does another source disagree?Kontur says 24% lower for the same subcity. Both shown.WHAT IT STANDS ONthe figure819,428sum inside the subcity outlinean operation: no publisher of its ownWorldPop 2025 gridKontur subcity outlineeach source carries itsown publisher, licenceand date; the operationcarries none, so the cardcannot borrow one
A computed figure has no publisher of its own. Letting it borrow one from its first input would be the quiet substitution TGIS exists to prevent, so the card reads publisher and licence off the sources underneath.

A number that appears in the answer’s text with no figure behind it is marked unsourced: marked, never removed, because what the run said is the evidence. A person has reviewed 1 of the 100 sources so far, so nearly every figure today says Provisional. That changes as sources are reviewed.

Misses and gaps

A tool that cannot answer returns a miss instead of failing, and the miss is information. The two runs above hit all three kinds.

Ambiguous request

Kontur publishes three files of the same format.

The fetch stops and lists them rather than taking the first. Taking the first once answered a roads question with 2,586 points and perfect-looking provenance.

The agent picks the file it needs and asks again.

Provider refused

OCHA's HAPI answered 403 Forbidden, twice.

The request carried a valid app identifier, and the identical request succeeds today; the cause was on HAPI's side and is not established. The miss is recorded, so the registry learns the source failed that day rather than that it is healthy.

The agent read the same official figure from the table HAPI is built on, and said so in the answer.

No access route

Ethiopia's census is supplied only on request.

The registry holds it anyway, as a row with no way in and a named holder: the Ethiopian Statistical Service.

It becomes a gap in the answer, with who to ask and how.

Gaps collect in a rail beside the conversation and build up across the whole chat, because they belong to the city and its data rather than to one answer. Each one names who holds the data and how to reach them, in words when no working link exists. A dead link is worse than none.

A gap costs the registry nothing extra. A source nobody can reach is a row like any other, with its way in left empty. The lookup that finds what is reachable finds who holds the rest. Today the registry carries 34 researched gaps like these.

Gaps (5)

  • Ethiopian population and housing census

    Held by Ethiopian Statistical Service

  • Addis Ababa household travel survey

    Held by Addis Ababa City Transport Bureau

  • Light rail ridership and operations

    Held by Ethiopian Railways Corporation

  • Functional road classification

    Held by Addis Ababa City Roads Authority (AACRA)

  • Traffic counts and screenline surveys

    Held by Addis Ababa City Roads Authority (AACRA)

Coverage

The registry right now. It grows every time a run uses a new source.

137

sources in the registry

67

that TGIS can fetch from

40

gaps with a named holder

127

questions answered so far

Every concept, connector and source, with what each one reaches, is on the registry. Why it is shaped that way is on the model.

Scope of v0

v0 exists to find out whether provenance, disagreement and the trace hold up when a working planner uses them. Nearly everything left out was cut on purpose, so testing with users tests the idea and not its edges.

v0, today
  • One agent with 8 tools and a cap of 20 steps
  • Maps, grids and tables; no documents yet
  • 58 global and 16 national sources answer for any place; city-level discovery was seeded from Addis Ababa
  • A workspace that lasts one chat
  • Every figure provisional until people review the sources
  • A plain interface. The work went into the registry and the provenance
TGIS, the concept
  • An orchestrator over specialist experts for statistical, geospatial and documentary evidence
  • A fusion step that aligns them, and a reconciliation step that surfaces disagreement
  • Many countries and modes, for the transport data ecosystem as a whole
  • Described at tgis.ai/concept

If the three properties fail in front of a real planner asking a real question, that is a finding, and it arrives before an architecture is built around them. Where it goes next is on up next.