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?

  1. Open the Context Tool and enter 50 billion.
  2. 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.
  3. 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?

  1. Search "TSLA" from the home page, or open Tesla's company record directly.
  2. Read the produces / consumes tags (batteries, automobiles ← steel, aluminum, lithium, semiconductors…).
  3. 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.
  4. 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.
  5. 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.

  1. Open the steel record: direct inputs (iron ore, coking coal, scrap) and what it feeds (autos, buildings, appliances…).
  2. Toggle the price chart between nominal and real (CPI-deflated) — a price that "went up 30%" since 2015 may be flat in real terms.
  3. Check the import price index panel — what U.S. importers pay, which the domestic PPI misses.
  4. Review strongest price co-movements (scrap, iron ore… plus macro fellow-travelers — note the correlation-is-not-causation warning).
  5. See producers vs consumers: 13 tracked steelmakers vs the far larger revenue base of steel consumers, and the price-vs-producer-revenue indexed chart.
  6. Jump to the dependency graph with steel selected to see the whole neighborhood at once.

4. Separate real price moves from inflation

  1. Open the Inflation scorecard. Every priced material is shown nominal and CPI-deflated over 1y / 5y / full-window horizons.
  2. 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.
  3. 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

  1. Open Industries — every SEC industry classification with member count, combined revenue, capex, R&D and shareholder returns.
  2. 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.
  3. Cross-reference with the correlations page to see whether the industry's input prices move together.

6. Explore the physical economy as a graph

  1. Open the Dependency Graph. Columns are tiers: raw → intermediate → end products.
  2. Click semiconductors: everything upstream lights up green (silicon wafers, industrial gases, equipment), downstream red (consumer electronics, data centers, autos).
  3. 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.

  1. Wherever you see an aggregate — in the Context Tool, on an industry page, on a material record — follow its breakdown link.
  2. 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).
  3. 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?

  1. Spot the spike on the price heat board (switch to the 1-month or 1-year window).
  2. 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.
  3. Check the co-movement table: a crude-oil spike rarely travels alone — refined fuels, chemicals and freight usually move with it.
  4. 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).

  1. 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.
  2. Pass-through is already in: refined fuels +86% y/y — the strongest 1-yr move on the whole heat board.
  3. Notably, natural gas is down ~6% over the same year — this is an oil shock, not a broad energy shock.
  4. 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.

  1. 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).
  2. Yet the 18 tracked data-center builders (AMZN, GOOGL, MSFT, META, ORCL…) spent ≈$262B of capex in FY2024see exactly who. That's about four times the combined capex of all 32 tracked oil producers.
  3. 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.

  1. Sand, gravel & crushed stone: +88% nominal since 2015, +31% in real terms — heavy, local, un-importable, steady demand.
  2. Cement: +64% nominal, +14% real. Compare both against their import-price indexes where available — imports barely discipline these markets.
  3. 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:

EndpointContents
data/companies.jsonall 1,515 companies: cik, ticker, SIC industry, latest revenue, 5-yr metric arrays (s.rev, s.rd), produces/consumes tags
data/company/<cik>.jsonone company in full: ~30 line items by fiscal year, tags, upstream levels, filing-text mention counts
data/materials.jsonthe 64-category taxonomy, 127 flow edges, per-material producer/consumer lists and combined financials
data/prices.json55 monthly price series (2015–present) with FRED/BLS ids and units, plus 17 import-price series under imports
data/inflation.jsonnominal and CPI-deflated change per material over 1y/5y/full horizons
data/correlations.json1,485 pairwise Pearson r values on YoY price changes
data/agg/<id>.jsonprovenance 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

Full detail, source APIs and reproduction steps: Methodology.