Documentation
How to use this register
This site connects three public datasets — audited company financials (SEC EDGAR, FY2021–FY2025), a material dependency graph (64 categories, 127 input→output flows), and price series (54 monthly commodity prices and producer-price indexes from FRED/BLS, plus 17 import-price indexes) — so that any big corporate number can be read in physical-economy terms, and any material can be traced to the companies that make and consume it. Below are worked paths through the data; every link is live.
Which page answers which question?
| You're asking… | Go to |
|---|---|
| "Is $50B actually a lot? Compared to what?" | Context Tool — type the figure, get it ranked against whole industries, producer sectors and company line items |
| "What materials does this company depend on?" | Companies → any company record (produces/consumes tags, upstream chain, filing-text evidence) |
| "Who makes X? Who buys X? What is X made from?" | Materials → any material record |
| "What's gotten more expensive lately?" | Materials price heat board, or the Inflation scorecard for CPI-adjusted answers |
| "How does the whole supply chain fit together?" | Dependency Graph — click any node to light up everything upstream (green) and downstream (red) |
| "Which prices move together?" | Correlations — pairwise co-movement matrix of all priced materials |
| "How big is an industry in aggregate?" | Industries — every SEC industry classification summed across its tracked members |
| "Where does this data come from and what are the caveats?" | Methodology |
Worked paths
1. Put a headline dollar figure in context
You read "company X raised $50B for data centers." Is that a big number?
- Open the Context Tool and enter 50 billion.
- The tool ranks your figure against ~565 reference quantities: whole-industry revenues, every-producer-combined revenue and capex for each material, and the largest companies' individual line items.
- Follow any reference row to its source — e.g. compare against all data-center builders combined or the semiconductor industry in aggregate.
Why it works: every reference quantity is built from audited annual filings, so the comparison set is consistent and sourced.
2. Trace a company's material exposure
Example: what does Tesla physically depend on?
- Search "TSLA" from the home page, or open Tesla's company record directly.
- Read the produces / consumes tags (batteries, automobiles ← steel, aluminum, lithium, semiconductors…).
- Scroll to the upstream dependency chain: direct inputs first, then inputs-of-inputs, walking the flow graph — this is where lithium and graphite show up behind the battery tag.
- Check "Evidence from the latest annual report": raw mention counts of each material in the actual 10-K text, with a link to the filing on EDGAR — your check on whether the curated tags are believable.
- Compare the "Revenue vs prices of tagged materials" chart: did the company's top line move with its input costs?
Variants: try NVIDIA (semiconductors → silicon wafers → industrial gases) or Caterpillar (engines & machinery ← steel ← iron ore + coking coal).
3. Follow one material through the economy
Example: steel, end to end.
- Open the steel record: direct inputs (iron ore, coking coal, scrap) and what it feeds (autos, buildings, appliances…).
- Toggle the price chart between nominal and real (CPI-deflated) — a price that "went up 30%" since 2015 may be flat in real terms.
- Check the import price index panel — what U.S. importers pay, which the domestic PPI misses.
- Review strongest price co-movements (scrap, iron ore… plus macro fellow-travelers — note the correlation-is-not-causation warning).
- See producers vs consumers: 13 tracked steelmakers vs the far larger revenue base of steel consumers, and the price-vs-producer-revenue indexed chart.
- Jump to the dependency graph with steel selected to see the whole neighborhood at once.
4. Separate real price moves from inflation
- Open the Inflation scorecard. Every priced material is shown nominal and CPI-deflated over 1y / 5y / full-window horizons.
- Sort by the real columns: materials that outpaced inflation are genuinely scarcer/pricier; ones below it got cheaper in real terms even if the sticker price rose.
- For a quick visual sweep, use the price heat board and switch the window (1 month → since 2015).
Classic findings: semiconductors and consumer electronics deflate relentlessly; construction-adjacent materials (cement, aggregates) outrun CPI.
5. Size up an industry in aggregate
- Open Industries — every SEC industry classification with member count, combined revenue, capex, R&D and shareholder returns.
- Click into one, e.g. Semiconductors & Related Devices: aggregate financial trends, the industry's own output PPI (what its products sell for), and the member table.
- Cross-reference with the correlations page to see whether the industry's input prices move together.
6. Explore the physical economy as a graph
- Open the Dependency Graph. Columns are tiers: raw → intermediate → end products.
- Click semiconductors: everything upstream lights up green (silicon wafers, industrial gases, equipment), downstream red (consumer electronics, data centers, autos).
- Use it to answer chain questions like "what would a natural-gas shock touch?" — select natural gas and read the red side: fertilizer, chemicals, electricity, and onward.
7. Audit any aggregate figure — don't trust, verify
Every combined figure in this register can be opened up to see exactly who was summed.
- Wherever you see an aggregate — in the Context Tool, on an industry page, on a material record — follow its breakdown link.
- Example: every steel producer's revenue, added together. The page lists each of the 16 component companies with its as-filed FY2024 value and fiscal year-end, the five-year series, and — just as important — who was excluded and why (no FY2024 filing yet, no revenue concept tagged).
- Spot-check any component against its own filings via the EDGAR link on its company page.
This is the difference between a number you can quote and a number you can defend. Try it on data-center builders' combined capex or the whole register's revenue.
8. Find who's exposed when a price spikes
A material's price jumps — who gains, who pays?
- Spot the spike on the price heat board (switch to the 1-month or 1-year window).
- Open the material's record. Producers capture the upside (for commodity producers, revenue tracks price — check the indexed price-vs-revenue chart); consumers wear it as input cost.
- Check the co-movement table: a crude-oil spike rarely travels alone — refined fuels, chemicals and freight usually move with it.
- Walk the graph downstream for second-order exposure the consumer list misses.
Case files — worked on the live data
Figures below are from the May 2026 data refresh and will drift as the register updates; the method is the point. Each case is reproducible from the links.
Case 1: The 2026 oil spike
WTI went from $58/bbl in December 2025 to $102/bbl by May 2026 — +76% in five months, +64% year-over-year (+58% after stripping CPI).
- Crude oil's record: the spike is visible in both the nominal and real chart, so it's a genuine relative-price move, not inflation.
- Pass-through is already in: refined fuels +86% y/y — the strongest 1-yr move on the whole heat board.
- Notably, natural gas is down ~6% over the same year — this is an oil shock, not a broad energy shock.
- Who captures it: 32 tracked producers (XOM, SHEL, TTE, CVX…) whose combined FY2024 capex was ≈$63B — audit that figure. Who pays: freight, chemicals, fertilizers (+28% y/y).
Case 2: Tech deflates while the AI buildout rages
The physical economy's strangest divergence: the stuff of computing keeps getting cheaper while spending on it explodes.
- On the inflation scorecard, sort by real change since 2015: consumer electronics −43% real, data-center hosting services −19% real, semiconductors −13% real (despite a +25% nominal jump this year on AI demand).
- Yet the 18 tracked data-center builders (AMZN, GOOGL, MSFT, META, ORCL…) spent ≈$262B of capex in FY2024 — see exactly who. That's about four times the combined capex of all 32 tracked oil producers.
- Trace what that buildout consumes on a hyperscaler's record: steel, copper, electricity, semiconductors — then check those materials' prices. The buildout shows up in electricity and construction inputs, not in chip prices.
Case 3: The quiet inflation in dirt and rock
CPI is up 43% since 2015. The materials of physical construction beat it without headlines.
- Sand, gravel & crushed stone: +88% nominal since 2015, +31% in real terms — heavy, local, un-importable, steady demand.
- Cement: +64% nominal, +14% real. Compare both against their import-price indexes where available — imports barely discipline these markets.
- Find who benefits via the producers tables (Martin Marietta, Vulcan), then check their margins on their company pages — quarry economics in audited filings.
Data access — use the register's JSON directly
The whole site is static JSON under data/; everything the pages show, you can fetch. No key, no rate limit beyond the host's. Shapes:
| Endpoint | Contents |
|---|---|
data/companies.json | all 1,515 companies: cik, ticker, SIC industry, latest revenue, 5-yr metric arrays (s.rev, s.rd), produces/consumes tags |
data/company/<cik>.json | one company in full: ~30 line items by fiscal year, tags, upstream levels, filing-text mention counts |
data/materials.json | the 64-category taxonomy, 127 flow edges, per-material producer/consumer lists and combined financials |
data/prices.json | 55 monthly price series (2015–present) with FRED/BLS ids and units, plus 17 import-price series under imports |
data/inflation.json | nominal and CPI-deflated change per material over 1y/5y/full horizons |
data/correlations.json | 1,485 pairwise Pearson r values on YoY price changes |
data/agg/<id>.json | provenance for any aggregate: components, values, exclusions (ids look like material.steel.revenue) |
Example — pull the register and rank materials by real 5-yr price change in ~6 lines of Python:
import json, urllib.request
BASE = "https://rememberlenny.github.io/material-tracker/data/"
inf = json.load(urllib.request.urlopen(BASE + "inflation.json"))
rows = [r for r in inf["rows"] if r["real5"] is not None]
for r in sorted(rows, key=lambda r: -r["real5"])[:10]:
print(f'{r["name"]:30s} {r["real5"]:+.1%} real over 5 yrs [{r["label"]}]')
Reading the data honestly
- "All producers combined" overstates markets. It sums each producer's whole-company revenue, including unrelated segments. Use it for order-of-magnitude scale only.
- Tags are curated estimates from SIC rules plus a hand-maintained override list. The filing-text mention counts on company pages exist precisely so you can sanity-check them.
- Correlation ≠ causation. Most commodity pairs co-move because of shared macro drivers (energy, construction cycles, the dollar).
- FY2025 totals dip partly because not all fiscal years are filed yet.
- PPI series are indexes, not prices. Percent changes are comparable across series; levels are not.
Full detail, source APIs and reproduction steps: Methodology.