§1 · The formula

Three numbers multiplied, not added.

The Index reads one city at a time, set against the natural region it sits in. At time $t$ it is the product of three terms drawn from the twenty-cell Full-Stack Metrics matrix: four pillars across five scales, from a neighbourhood to the natural region:

$$ \mathrm{FCI}_t \;=\; \mathrm{DIDO}_t \;\cdot\; (1 - \mathrm{PITO}_t) \;\cdot\; \rho_t $$

Multiplying matters. A city full of fab labs that still imports everything scores low, because DIDO alone is not enough. A city that imports little because it has stopped doing much scores low too. Only the combination counts: the capacity to make, a real drop in what comes in and goes out, and readings that turn into action. The $(1-\mathrm{PITO}_t)$ term turns PITO from a load into the distance a city has moved away from buying far and throwing away near.

The version that answers the pledge is the change in the score over time, $\Delta\mathrm{FCI}/\Delta t$, which is why the Index needs sources that update at least every quarter, and why nodes exist. That quarterly change is what a PLANETAI node reports.

§2 · PITO and DIDO

PITO and DIDO.

Every city takes things in and puts things out. PITO, Products In, Trash Out, is the old, one-way version: buy what you need far away and throw it away nearby. PITO measures what the city receives and rejects: imports of products, energy, food and raw materials; exports of waste, emissions and pollution sent elsewhere. It is a stock variable in $[0,1]$; high PITO means a city that mostly buys far and throws away near.

DIDO, Data In, Data Out, runs the other way: sense what is happening, share designs and know-how, make more nearby. DIDO measures what the city generates and circulates: open data infrastructure, fab-lab activity, distributed manufacturing capacity, recycling and remanufacturing capacity, community sensing, institutional transparency, and the policy, research and innovation layer that lets the city act on what it knows. High DIDO means the city has built, and uses, the capacity to replace imported products with local design and local making.

The terms were coined by Vicente Guallart and Neil Gershenfeld in the early Barcelona Fab City period, and are documented in the 2014 and 2016 Fab City white papers (Diez). We are not inventing them. We are operationalising them.

Why both axes, why not collapse to one. A city can have very high DIDO and still very high PITO (Barcelona is closer to this than people would like). A city can have low DIDO and low PITO for bad reasons: too few sensors hiding both flows. The two-axis frame keeps the diagnostic crisp. A single-number index hides this; the original 37/100 is a single number and its weakness is exactly that you cannot tell what is happening underneath.

§3 · The weight table (v0)

How the twenty cells add up.

The Index reads twenty parts of city life: four pillars across five scales, from a neighbourhood to the natural region. This table shows how much each part counts toward PITO and toward DIDO. Each cell $c$ in the matrix carries a PITO weight $w_c^{\mathrm{PITO}}$ and a DIDO weight $w_c^{\mathrm{DIDO}}$, both in $[0,1]$, summing to 1. The weights are not philosophical. They are documented assignments derived from what the cell actually measures. Cells that measure throughput weight toward PITO; cells that measure capacity, transparency, or institutional response weight toward DIDO. The one cell Paris and Hamburg measured, Economic × City / Region, is highlighted. The adding stops at the region: the Bioregion and Planet rows enter PITO and DIDO as limits the scores have to stay inside, context for the city reading, never as scales the Index rolls up to.

Pillar × Scale Primary measurement PITO weight DIDO weight Notes

Three v0 cells still need a better argument before the weights harden: Economic × Bioregion (0.8 / 0.2), Environmental × Community (0.5 / 0.5), Economic × Community (0.3 / 0.7).

§4 · Computing PITO, DIDO and FCI

From cell scores to the two numbers.

Here is how the twenty cell scores become the two numbers, and then the index. Each cell $c$ produces a normalised score $s_c \in [0,1]$ using the rule Boeing used: priority × self-sufficiency where formal data exists; documented proxy where it does not, marked live, partial or mock, so a reader always knows how far to trust it. Every score lands in one cell file, in the format fci-cells-v0. PITO and DIDO at time $t$ are weighted means of cell scores under their respective weight assignments:

$$ \mathrm{PITO}_t \;=\; \frac{\sum_c w_c^{\mathrm{PITO}} \cdot s_c^{\text{extractive}}}{\sum_c w_c^{\mathrm{PITO}}} \qquad \mathrm{DIDO}_t \;=\; \frac{\sum_c w_c^{\mathrm{DIDO}} \cdot s_c^{\text{capacity}}}{\sum_c w_c^{\mathrm{DIDO}}} $$

$s_c^{\text{extractive}}$ is the cell's score interpreted as throughput; $s_c^{\text{capacity}}$ is the same cell's score interpreted as regenerative capacity. Both indices are bounded in $[0,1]$. Most cells contribute to one side meaningfully and the other faintly, in proportion to their weights; only Economic × City (0.5 / 0.5) and Environmental × Community (0.5 / 0.5) contribute to both axes equally.

Missing data is weighed in the DIDO column (v0). DIDO is how much a place senses and shares, so a cell with no open data counts 0 there, and its DIDO weight stays in the sum: a city that publishes nothing about a cell loses that cell's share of DIDO. A cell nobody has measured drops out of PITO instead, so the absence of data is never read as throughput. Lack of data is therefore not a gap in the Index but one of its weights. A worked example, Barcelona, is under Scores so far.

§5 · Paris and Hamburg as a special case

Why Paris and Hamburg both got 37.

Boeing's Hamburg score and Utopies' Paris score are both one cell, one moment: Economic × Region (or × City, depending on data scope), with no DIDO term and $\rho$ taken as 1.

Set every weight to zero except that one cell, drop ρ, and compute self-sufficiency only:

Recovering the Paris and Hamburg scores $$ \mathrm{FCI}_{\text{Boeing}} \;=\; \frac{s_{(\text{Econ,Region})}^{\text{capacity}}}{s_{(\text{Econ,Region})}^{\text{extractive}} + s_{(\text{Econ,Region})}^{\text{capacity}}} $$ For Hamburg this returns ~0.37. For Paris it returns 0.3758. Their scores were right. They measured one cell. This version measures twenty, and the 37 turns out to be what you see when you project the whole thing onto its best-documented cell.

The derivation also exposes the structural reason both cities scored ~37: at Economic × Region with public data only and no dynamic component, the most diversified Western metros land at the same bound because the underlying material flows are governed by global supply-chain structure, not local policy. The way to move the number is by activating DIDO and ρ: exactly what the Index measures.

§6 · ρ

ρ: does anything happen?

$\rho_t$ is a number between 0 and 1. It is the share of what a place learns that somebody responds to within a set time. At 1, every reading gets a response in time. At 0, readings are made and nothing is done. Paris and Hamburg were scored as if ρ were 1, because a one-off study has no way to measure it. A node measures it every day: node #1 in Bali counts each thing it flagged and whether anyone acknowledged or acted on it within 24 hours, and publishes the result. The exact rule and the current number live on the node.

§7 · Open points

What is not settled.

  1. Twelve of twenty cells have real content. The region scale and governance at region and natural-region scale are the thinnest.
  2. The weight table is v0; three cells need a stronger argument.
  3. The Hamburg check is sketched, not worked through on public NACE and COICOP data. That worked example is owed.
  4. The ρ rule is drafted on the node; how ρ is weighted across scales, and what counts when a council says no, are open.
  5. Vivanco's matrix is a working paper and a 2025 thesis, not yet peer reviewed on its own.
  6. Utopies' LOCAL SHIFT and LOCAL FOOTPRINT are proprietary; we cite the published method and the 2018 numbers, not their simulator.
Method · 2 of 4 · Scores so far

Two scores have been published, and one city is worked through.

The Index puts a city on two axes: how much it still buys far and throws away near (PITO), and how much it senses, shares and makes locally (DIDO). The goal is high DIDO and low PITO. Paris and Hamburg are the only two places any version of this index has scored, and both were scored on one cell with no DIDO axis, so they cannot be placed on the plane. Their published scores are shown as published.

A worked example · v0

Barcelona, computed with what exists today.

An index is never complete, and it is not meant to wait until it is. This is Barcelona's reading with the data the registry holds right now, counted when this page loads. Every cell without open data weighs on DIDO. PITO rests on the one cell that has been measured. ρ has not been measured anywhere yet, so it is taken as 1, the way Boeing and Utopies did, and marked as such. It is a worked example of the method, not a score to rank against.

Reading the registry…

Why the direction matters more than the score.

If the ceiling on the one measured cell is set by supply chains, then a city's number on that cell will not move much whatever it does. What can move is the rest: how much a city senses, how much it makes, how fast it acts. So the question the Index is built to answer is not "what is your score" but "which way are you going, and how fast". That second half is ρ.

Method · 3 of 4 · Where it comes from

Three versions of one idea.

The Fab City Index is not new. Utopies and Fab City Paris scored it first in 2018. Boeing scored Hamburg in 2024. This is the third version. It keeps their cell, recovers their numbers, and adds nineteen more cells and a measure of action.

01 /03

Toward Productive Cities: FabCity Index France

Florentin, A., Chabanel, B. & Guimas, V. · Utopies & FabCity Paris · 2018
Sectors
257
Macro-sectors
12
Coverage
~600 urban areas
Paris score
37.58 /100

First quantitative Fab City Index. A priority × self-sufficiency lattice scored 0–100, applied to roughly 600 French urban areas. LOCAL SHIFT® urban-economy simulator and LOCAL FOOTPRINT® Nature material-flow methodologies (Utopies proprietary) underneath. Vincent Guimas was FabCity Paris when he co-authored the report. This work was inside the movement, not external to it. Paris 37.58; Lyon 34.30; Strasbourg 21.61; 95 % of French urban areas under 10/100. The match with Hamburg six years later says the ceiling is not French.

Other key findings from the 2018 report: the average French city produces only 3.1 % of what its population consumes (€3 of every €100). Annual household goods consumption across French metros ranges €1,700–4,100 per inhabitant. Nantes Métropole's material footprint: 9.27 Mt of raw material extraction per year, 15 t / inhabitant, with 85 % extracted outside France. The manufacturing multiplier collapsed from €103 in 1970 to €59 in 2015 per €100 of manufactured goods. Forty strategic priority sectors identified across the 50 largest French cities.

Florentin, A., Chabanel, B. & Guimas, V. (2018). Toward Productive Cities: FabCity Index France. Utopies & FabCity Paris, Étude N°13, June 2018.
02 /03

The Fab City Index: A Toolkit for Measuring Progress Towards a Circular Economy

Boeing, N. · HCU / HSU Hamburg · 2024
Concordance
NACE × COICOP
Macro-sectors
16
Coverage
Hamburg
Hamburg score
37.00 /100

Extended the 2018 construct via NACE Rev. 2 × COICOP concordance over public open data, 16 macro-sectors, 0–100 scoring. Published Open Access in Springer's Global Collaboration, Local Production, the volume Neil Gershenfeld wrote the foreword for. Its diagnosis is the gap this version addresses: cities participating in the 2054 countdown lack the data infrastructure to evaluate their own progress.

Hamburg landed at 37/100. Six years apart, two statistical systems, two different cities, and Paris and Hamburg within 0.58 points of each other. That convergence is the public-data ceiling for major Western metropolises at the Economic × City / Region cell, and it is the number this version set out to explain.

Boeing, N. (2024). The Fab City Index: A Toolkit for Measuring Progress Towards a Circular Economy. In Moritz, Redlich, Buxbaum-Conradi & Wulfsberg (eds), Global Collaboration, Local Production, SDG-Forschung, Springer Gabler, pp 115–133.
DOI 10.1007/978-3-658-44114-2_9 · Open Access.
03 /03

The third version: all twenty cells and a measure of action

Diez, T. & Vivanco, T. with Fab City · 2026 –
Cells
20 (4 × 5)
Aggregation
PITO · DIDO
Action
ρ

Three extensions over the first two versions. First, scale: from a single Economic × City / Region cell into the full 4-pillar × 5-scale matrix scaffolded by Vivanco (2024–25). Second, vocabulary: PITO and DIDO, the founding Fab City pair coined by Vicente Guallart and Neil Gershenfeld in the early Barcelona Fab City period and documented in the Fab City Whitepapers (Diez, 2014, 2016), used as the two sides every cell leans toward, each cell carrying a documented weight summing to 1. Third, ρ (rho): how much of what a place learns somebody acts on, and how fast.

The network is sixty-one cities and regions. Two PLANETAI nodes run today. Bali is the first pledged place with one. The Paris and Hamburg scores are recovered exactly as the one-cell, one-moment, ρ-equals-one case of the full formula.

Diez, T., Vivanco, T. & Fab City (2026). Fab City Index 3.0: Executive Summary. v0, 22 May 2026. In methodological review toward v1.
The lineage statement

For Methods sections, partner briefs, and summaries. Use it verbatim.

For citation Fab City Index 3.0 is the third generation of the Fab City Index, extending Florentin, Chabanel & Guimas (Utopies & FabCity Paris 2018) and Boeing (2024) from a single Economic × City / Region cell into the four-pillar × five-scale matrix scaffolded by Vivanco (2024–25), with a coupled action layer.

While the methodology is in review, the statement stays open to revision by the authors it cites. Boeing measured the Economic × Region cell; Guimas co-built the priority × self-sufficiency lattice. Boeing and Guimas are invited to annotate the cells their work measured.

Canonical citations

References.

  • Florentin, A., Chabanel, B. & Guimas, V. (2018). Toward Productive Cities: FabCity Index France. Utopies & FabCity Paris, Étude N°13, June 2018. LOCAL SHIFT® and LOCAL FOOTPRINT® Nature methodologies; 257 sectors / 12 macro-sectors; ~600 French urban areas.
  • Boeing, N. (2024). The Fab City Index: A Toolkit for Measuring Progress Towards a Circular Economy. In Moritz, Redlich, Buxbaum-Conradi & Wulfsberg (eds), Global Collaboration, Local Production, SDG-Forschung, Springer Gabler, pp 115–133. DOI 10.1007/978-3-658-44114-2_9. Open Access.
  • Diez, T., Niaros, V. & Ferro, C. (2024). The Fab City Full Stack. In Moritz, Redlich, Buxbaum-Conradi & Wulfsberg (eds), Global Collaboration, Local Production, Springer Gabler. DOI 10.1007/978-3-658-44114-2_2.
  • Diez, T. (2014, 2016). Fab City Whitepapers. Document the PITO and DIDO framings, coined by Vicente Guallart and Neil Gershenfeld in the early Barcelona Fab City period.
  • Vivanco, T. (2024). Fab City Full Stack Metrics Framework: An Architectural Framework for Measuring the Impact of Design Interventions across Five Scales (Community, City, Region, Bioregion, Planet) through Four Pillars (Environmental, Social, Economic, Governance). Fab City working paper.
  • Vivanco, T. (2025). Research through Design for bioregional material mapping across four Chilean macrozones. Doctoral thesis, Universidad del Desarrollo. hdl.handle.net/11447/10038.
  • Richardson, K. et al. (2023). Earth beyond six of nine planetary boundaries. Science Advances 9, eadh2458. Source for Environmental × Planet cell.
Method · 4 of 4 · How a score adds up

Readings from a neighbourhood add up into a city score, and cities into their region.

That is as far as the adding goes. A neighbourhood sits inside its city, the city inside its region, and each level gets the same score, worked out the same way. The natural region and the planet sit above, as limits a score has to stay inside, never as levels it rolls up to. The atlas walks through it level by level.