The machines, materials, power, permits and people that decide how fast AI, energy and robots can grow — each in one plain sentence, with how hard it binds, who makes it and how well that is sourced. Start with the tightest, or jump to a stage.
Mapped
How this is computedCount of rows in the bottleneck corpus: every material plus every non-material chokepoint.Method →Code →
across How this is computedBottlenecks on that stage of the loop, and how many of them have every producer row sourced.Method →Code → stages
Binding now
How this is computedCount of bottlenecks whose assessed horizon is "now".Method →Code →
judged to be the constraint today
Maker rows sourced
How this is computedProducer rows counted by verification state from the corpus: sourced (an accepted primary source is linked) or unverified (none yet). Unchecked pages: open rows in the producer-sourcing queue, counted live from the database.Method →Code →
How this is computedProducer rows counted by verification state from the corpus: sourced (an accepted primary source is linked) or unverified (none yet). Unchecked pages: open rows in the producer-sourcing queue, counted live from the database.Method →Code → still unverified
Countries
How this is computedNumber of distinct country codes on the rows being counted (makers, or rules).Method →Code →
where the mapped makers operate
Refine by technology, industry, stage or evidence · 3 matches
Materials & toolsHow this is computedBottlenecks on that stage of the loop, and how many of them have every producer row sourced.Method →Code →takes Estimate by Substrata, open to challenge, 2026-09-15: Order-of-magnitude time from a decision to relief at this stage of the loop. Illustrative: chosen by hand, not taken from a measured lead-time dataset.Estimate, not a measurementOrder-of-magnitude time from a decision to relief at this stage of the loop. Illustrative: chosen by hand, not taken from a measured lead-time dataset.By Substrata, open to challenge · 2026-09-15 to loosen
A harder-than-silicon crystal used where power and heat are high, such as chargers, motors and radar.
US KR JP CN
How this is computedCount of (bottleneck, producer) pairs across every material in the corpus.Method →Code →
How this is computedSum of four judged scores, each 0–3: concentration + substitution + lead time + inelasticity.Method →Code →
Later
Verified
ActuationHow this is computedBottlenecks on that stage of the loop, and how many of them have every producer row sourced.Method →Code →takes Estimate by Substrata, open to challenge, 2026-09-15: Order-of-magnitude time from a decision to relief at this stage of the loop. Illustrative: chosen by hand, not taken from a measured lead-time dataset.Estimate, not a measurementOrder-of-magnitude time from a decision to relief at this stage of the loop. Illustrative: chosen by hand, not taken from a measured lead-time dataset.By Substrata, open to challenge · 2026-09-15 to loosen
Printers that melt metal powder with a laser, layer by layer, into a qualified part. The brochure is not the qualification.
DE US JP
Single node
How this is computedSum of four judged scores, each 0–3: concentration + substitution + lead time + inelasticity.Method →Code →
Within 2 years
Unverified
3 of 33
What these columns mean
Severity
Four questions, each scored 0 to 3: how few suppliers qualify, how hard it is to replace, how long new capacity takes, and whether the buyer can walk away. Higher is worse for progress. Judged by hand and dated on every page.
When it bites
A judgement about when this constraint is expected to be the one holding things up.
Evidence
Verified means a person opened a source that says so and the link is on the page. Source found means an automated search located a page that appears to say so and nobody has read it yet. Unverified means neither. Only verified rows are findings.
Makers
How many organisations are mapped as making this, and how much of that list is verified. A single node — a machine, a queue, a skill — has no maker list.
Computed: For each resolved holding: the bottlenecks its companies hold (maker, capacity or part supplier), the ones a filing says they need or sell into, and everything upstream of a held or needed rail through recorded "needs" rows.Computed: Sum of the weights of the holdings that touch a rail, divided by the sum of the weights of all resolved holdings. With no weights given, every holding counts equally.Computed: For each country: the share of portfolio weight on a rail whose every recorded maker operates there, and the share on a rail with at least one recorded maker there. Part suppliers are not makers.Computed: Direct hits: bottlenecks where the failed node is a maker, a part supplier or the location. Makers wholly inside it are lost; makers also operating elsewhere are partly affected; the rest remain. Downstream: every bottleneck that needs a hit one, transitively, through recorded rows. Exposed: holders of hit and downstream bottlenecks and companies a filing says need or sell into them.Computed: The country’s recorded annual production divided by the recorded world total for the same year and unit, from config/substrata-quantities.ts (USGS).Computed: Rows that held over rows looked at, pooled across every check of that criterion for that dataset, rounded down to a tenth of a percent.Computed: The mean of the criterion scores that could be measured for the dataset.Computed: Rows: judged by the dataset’s first provenance check. Sourced: share of those that pass it. Verified: rows re-derived from their source by a network look, over every row such a look covers. Stale: rows past their declared age. Broken: source links that failed three tries.Computed: Tokens per UTC day on this site's free AI keys, summed per class: interactive (Ask and fact-checks, a reader waiting) and background. Background is zero from 2026-09-25: no scheduled job may call the free models, and test/no-free-background-ai.test.ts fails the build if one tries. Drafting runs on readers' own keys and is not on this ledger.Computed: Over every Ask question in the last 24 hours that got an answer: the 50th and 90th percentile (continuous, PostgreSQL percentile_cont) of milliseconds from the request reaching the server to the first answer text streamed, and to the finished answer.Computed: Count of rows in the bottleneck corpus: every material plus every non-material chokepoint.Computed: Count of bottlenecks whose assessed horizon is "now".Computed: Sum of four judged scores, each 0–3: concentration + substitution + lead time + inelasticity.Computed: Count of (bottleneck, producer) pairs across every material in the corpus.Computed: Producer rows counted by verification state from the corpus: sourced (an accepted primary source is linked) or unverified (none yet). Unchecked pages: open rows in the producer-sourcing queue, counted live from the database.Computed: Count of rows in the market-participant directory.Computed: Count of bottlenecks on which this organisation is recorded as a producer, a holder of the capacity, or a supplier of a critical part.Computed: Accepted events that name this organisation, plus (counted separately) accepted events on a bottleneck it holds that do not name it.Computed: Count of policy instruments in the corpus; each one links its official text.Computed: Count of science entries: technologies recorded as able to relieve a named bottleneck.Computed: Accepted events whose date falls within the last N days of today.Computed: Leads in the research sweep’s queue that no person has read yet and that have not expired, counted live from the database.Computed: Waiting: open sweep leads — no reviewer decision, not expired. Oldest: whole days since the earliest open one was found. Drafts ready: waiting leads whose AI draft suggests an event and passed the checks.Computed: Count of bottlenecks tagged with that technology, industry or stage.Computed: Number of distinct country codes on the rows being counted (makers, or rules).Computed: Rules counted by the effect recorded on each: "tightens" slows building, "loosens" speeds it; a rule recorded as both ways is counted in neither.Computed: Rules with at least one proponent: an organisation that asked for it in a document linked on the row.Computed: A judged level on a nine-step scale from "idea with a physical basis" (1) to "in production at scale" (9).Computed: Technologies tracked = science entries; bottlenecks addressed = distinct bottlenecks named as relieved by any entry; reaching production = entries judged 8 or 9; sourced = entries whose readiness cites a source.Computed: Kinds = rows in the capital-kinds list; providers = named funders, each linking its own mandate page; assessed = bottlenecks with a funding judgement; "money is not it" = those judged "not-money".Computed: Open = calls without a resolution; resolved = right + wrong + unclear; overdue = past the resolve-by date and not yet marked; hit rate = right ÷ (right + wrong), published only once enough calls have resolved.Computed: Bottlenecks on that stage of the loop, and how many of them have every producer row sourced.Computed: The highest severity score among the bottlenecks recorded as gates on the loop.Computed: Count of explainer files in content/learn, and of entries in the glossary.Computed: A place's annual production ÷ the published world total, same unit and year.Computed: Sum of the squares of each producer’s share of world output (0–1).Computed: Published reserves ÷ annual production, same place, unit and year.Computed: Accepted events in the last 90 days that tighten it, minus those that loosen it. Neutral events count for neither.Computed: One row per (bottleneck, holder) after the screen’s filters; the bottleneck count is the distinct bottlenecks among those rows.Computed: Organisations recorded on a bottleneck (maker, capacity holder or part supplier) whose shares, or a parent’s, trade on an exchange found in the SEC ticker file or OpenFIGI.Computed: Items per stage = papers, preprints and grants collected for the bottleneck whose relevance score is 2 or more, placed on a stage by the rule in lib/science.ts; judgements are counted separately.Computed: Items first collected in the last 7 days whose publication or award date is within the last 30 days.Computed: Items per institution per bottleneck, counting each item once per institution named on it by the source; a company is matched to the directory only when every distinguishing word of both names agrees.Computed: The latest value in a series minus the value before it, divided by the earlier value, same series and unit.Computed: Count of dated values in a series, or of series matching the filters, across the committed corpus and the official statistics fetched on schedule.Computed: Count of postings currently listed on the public job boards Substrata reads, after the page’s filters. By default software and business roles that name no bottleneck are left out; "Every role" puts them back.Computed: A posting is filed under a bottleneck when its title names one of that bottleneck’s terms, or its description names them at least twice (title only for software and business roles); its role family is the first family whose title terms its title names.Computed: For each skill or credential in the published list, the number of open postings whose title or description names any of its terms.Computed: Count of programmes in research/learning-paths.json, each with the official page it was checked on.Computed: A feed is fresh within one scheduled interval plus half an interval (at least 20 minutes) of its last good run, late up to three intervals, stale beyond; failing when its newest failure is newer than its last good run.Computed: Now minus the finish time of the last good run (feeds), or whole UTC days since the date the committed file records it was checked (datasets).Computed: A sweep lead is open while nobody has reviewed it and it was found less than 30 days ago; unreviewed and 30 days or older, it is expired. The review queue is open leads only: late when its oldest has waited more than 7 days, stale past 31.Computed: Position of a country when the countries USGS lists individually are sorted by the same column, largest first; equal values share a rank.Computed: Latest year ÷ the year before − 1, same country, same column of the same table (USGS or EIA).Computed: A country's resources are ordered by its largest share of world output on any production column of each table (e.g. palladium within PGMs).