Commodity prices, before and after inflation
Every price on this site comes from a published government or multilateral statistical series, and is stored exactly as published. The one derived input is CPI: where BLS never published a month, its index is interpolated between neighbours so that real prices stay continuous. Those months are named below and flagged in exports.
This is the single most common confusion in commodity data, so it is worth stating plainly. A retail price is what an end customer pays, including taxes and every margin along the way: the gasoline and diesel series here are retail. A benchmark price is a wholesale market quote for a standardised contract at a specific delivery point: WTI crude at Cushing, natural gas at the Henry Hub, copper on the LME. Benchmarks move first and move further; retail prices absorb them slowly and never fall as far, because tax and distribution costs do not shrink when the commodity does.
A useful sanity check: Henry Hub gas is quoted per million Btu at a pipeline hub, and is nothing like the per-therm price on a household utility bill. Comparing the two is a category error, not a discovery.
The site restates a nominal price in the dollars of a base year you choose:
Real price(t) = Nominal price(t) × CPI(base period) ÷ CPI(month of t)The deflator is CPI-U, All Items, U.S. city average, not seasonally adjusted, BLS series CUUR0000SA0. This is the overall all-items index, deliberately not a commodity-specific CPI component. The question the site answers is “how much of everything else could this money have bought”, which is an all-items question. Deflating gasoline by the gasoline CPI would divide a price by a near-copy of itself and flatten the trend the page exists to show.
Each monthly observation is deflated by the CPI for that same month. There is no carrying a neighbouring month forward and no nearest-match. Where BLS never published a month at all, its CPI is filled by linear interpolation between the two published months around it, and that month is listed below.
A base year contains twelve CPI months, so “CPI in 2026” is ambiguous. It is resolved one documented way: the BLS-published annual average for that year (period M13 in the BLS file). We never average the months ourselves for a complete year. The current year has no annual average until it ends; for that case the site uses the mean of the months published so far and labels it, for example, “2026 dollars (8 months so far)”, so a partial figure is never passed off as a full-year one.
Labels always name the base period: “2026 dollars”, never the vague “today’s dollars”. Nominal values are stored exactly as published and are never overwritten by adjustment; switching back to nominal reproduces the source numbers precisely.
Gasoline is quoted in dollars per gallon, gold per troy ounce, wheat per metric ton and natural gas per million Btu. Putting those on one money axis produces a chart where the copper line is a flat ceiling and everything else is a flat floor. Technically drawable, completely uninformative. So when the selected series do not share a unit, the chart switches to an index:
Index(t) = Price(t) ÷ Price(start of range) × 100Each series is set to 100 at its own first observation inside the selected range, and the chart names the date from which every drawn series has data. A series with no observation in the range is not drawn at all, rather than drawn flat at 100, which would read as “unchanged”. The index is recomputed from scratch whenever the range moves. It compares relative performance, never price levels.
These are separate ideas and the site keeps them apart. Observation frequency is how often the source reports a price. Refresh frequency is how often this site checks for new observations.
Every series here is an official monthly series published by the source, so no aggregation is applied: the monthly aggregation column below reads “none” for all nine. The pipeline does implement calendar-month averaging (an unweighted mean of the observations falling inside each calendar month) and tests it, so a daily or weekly source can be added later as a configuration change. If that ever happens, this page will show “calendar-month average” for the affected series.
The current refresh mode is manual: data is updated by running one command. Nothing on this site calls an external API when you open the page; the browser reads static files produced by that command.
| Series | What it measures | Unit | Geography | Frequency | Aggregation | Range | Source ID |
|---|---|---|---|---|---|---|---|
| WTI crude | The U.S. benchmark price for a barrel of light sweet crude oil, quoted at the Cushing, Oklahoma pipeline hub. A wholesale market price, not what anyone pays at a pump. | dollars per barrel | Cushing, Oklahoma (U.S. benchmark) | monthly → monthly | none | Jan 1986 – Aug 2026488 obs | U.S. Energy Information AdministrationRWTC |
| U.S. gasoline | The average price a U.S. city driver pays for a gallon of regular gasoline, taxes included. EIA’s longest continuous monthly retail gasoline series.City average, taxes included. Levels run slightly above EIA’s all-areas retail survey because the sample is urban-weighted. | dollars per gallon | United States (city average) | monthly → monthly | none | Jan 1976 – Jul 2026607 obs | U.S. Energy Information AdministrationMER T9.4, Unleaded Regular Gasoline, U.S. City Average Retail Price |
| Copper | Grade A copper cathode on the London Metal Exchange, the reference price for industrial copper worldwide. | dollars per metric ton | World (LME) | monthly → monthly | none | Jan 1960 – Aug 2026800 obs | World Bank Commodity Price Data (the Pink Sheet)Copper |
| New England gasoline | Average pump price for regular gasoline across New England (EIA refining district PADD 1A), taxes included.From EIA’s retail price survey (all formulations). The U.S. series here is the city-average measure, so the two are close but not methodologically identical. | dollars per gallon | New England (PADD 1A) | monthly → monthly | none | Apr 1993 – Aug 2026401 obs | U.S. Energy Information AdministrationEMM_EPMR_PTE_R1X_DPG |
| Gold | London bullion market gold price per troy ounce. Before 1968 the price was fixed by international agreement rather than set by a market.Fixed at $35 an ounce under Bretton Woods until 1968. The earliest observations record an official price, not a market-clearing one. | dollars per troy ounce | World (London) | monthly → monthly | none | Jan 1960 – Aug 2026800 obs | World Bank Commodity Price Data (the Pink Sheet)Gold |
| Coffee | International Coffee Organization indicator price for mild Arabica coffee, the higher-grade bean behind most speciality roasts. | dollars per kilogram | World | monthly → monthly | none | Jan 1960 – Aug 2026800 obs | World Bank Commodity Price Data (the Pink Sheet)Coffee, Arabica |
| Wheat | U.S. hard red winter wheat, free on board at Gulf ports. The workhorse bread wheat of the world export market. | dollars per metric ton | United States (Gulf FOB) | monthly → monthly | none | Jan 1960 – Aug 2026800 obs | World Bank Commodity Price Data (the Pink Sheet)Wheat, US HRW |
| U.S. diesel | Average U.S. retail price for a gallon of on-highway diesel fuel, taxes included. The number that moves freight costs. | dollars per gallon | United States | monthly → monthly | none | Jan 1995 – Jul 2026379 obs | U.S. Energy Information AdministrationMER T9.4, On-Highway Diesel Fuel Price |
| Natural gas | Spot price for natural gas delivered at the Henry Hub in Louisiana, the North American benchmark. A wholesale price, well below what shows up on a utility bill. | dollars per million Btu | Henry Hub, Louisiana (U.S. benchmark) | monthly → monthly | none | Jan 1997 – Aug 2026356 obs | U.S. Energy Information AdministrationRNGWHHD |
EIA’s API v2 requires a registered key on every endpoint, but EIA also publishes the same collections as spreadsheets on its public data browser with no authentication. The pipeline reads those, so the project builds from a clean checkout with no credentials and no secret can reach the repository or the browser bundle. An EIA_API_KEY environment variable is supported as an optional cross-check and is never required.
U.S. regular gasoline comes from EIA’s Monthly Energy Review Table 9.4 rather than the petroleum history file, because MER 9.4 carries a continuous monthly series back to 1976 where the retail history file begins only in August 1990. Answering “is gasoline expensive compared with earlier decades” needs the early-1980s peak. The cost of that choice is that MER publishes roughly a month behind, which is why gasoline and diesel can show one month less recent data than crude oil and natural gas.
The World Bank Pink Sheet lives at a content-hashed, date-stamped path that rotates when the workbook is republished. A hard-coded path keeps returning a perfectly valid file while serving an increasingly old vintage, which is the worst kind of failure because nothing looks broken. The pipeline therefore reads the current link from the commodity-markets landing page on every run, and reports it in the run log if it has to fall back to a pinned path.
CPI comes from the BLS published time-series flat file rather than the public API, because the API returns at most ten years per request while these series start in 1960. The flat file carries CUUR0000SA0 from 1913 in a single request.
The price axis does not start at zero. Anchoring a fifty-year price series at zero spends most of the plot area on empty space and visually flattens exactly the moves the page is about. The axis is always labelled in currency and units, so the level is never ambiguous. Where a month has no usable value the line breaks rather than drawing straight through the gap.
Series colours were checked with a colour-blindness simulator against both the light and dark page surfaces; the worst adjacent pair separates at ΔE 9.2 (light) and 9.1 (dark) under protanopia and deuteranopia. Because some non-adjacent pairs in a nine-colour set are closer than that, comparison mode is capped at five series and every line is additionally identified by a distinct marker symbol and a direct label at its right end. A data table under the chart carries the same values for anyone who cannot use the graphic.
The header shows two clocks, because they are routinely different and only one of them is useful on its own. “Data through August 2026” is the newest observation actually held. “Checked” is when a source was last reached successfully. A source can be perfectly reachable while serving last quarter’s numbers, so the status indicator is driven by the worse of the two and the label always describes the data rather than the request.
Priced In is an educational historical-data tool. It reports published price series and restates them in the dollars of a year you choose. It is not investment advice, not a forecast, and not a recommendation to buy or sell anything. Price series are revised by their publishers from time to time; always cite the original source for research.