Methodology & sources · updated weekly
Where every number comes from
One rule holds everywhere on this site: each figure traces back to a public U.S. government series you can pull yourself. This page names all of them by ID, shows the arithmetic, and admits the judgment calls. The full monthly table is at the bottom as a CSV. No account, no paywall.
The math
Three lenses, two formulas
Every price on the site can be read three ways. At the pump is the sticker: the dollars people handed over that month, untouched. In today’s dollars multiplies that sticker by CPI-now ÷ CPI-then, using CPI-U, all items, not seasonally adjusted. The base is Aug 2026, the latest published month, and it moves with each BLS release; “today’s dollars” should mean today, so real figures shift by a fraction every month and we let them. In minutes of work divides the sticker by the average hourly wage of production & nonsupervisory workers, times 60.
Worked example, Jan 1980: $1.13 at the pump. $4.87 in Aug 2026 dollars. 10.3 minutes of work per gallon. Same gallon, three answers.
The inputs
Every series, by ID
These tables are not copied onto this page by hand. The build reads them from the same registry file our fetcher uses, so what you see here is what the pipeline pulled, by definition. Paste any ID into the agency’s own site and you get our raw input.
The spine: crude, pump, prices, pay
| Series | ID | From | Since |
|---|---|---|---|
| WTI posted/spot price (FRED compilation, monthly) | WTISPLC | FRED | 1980-01 |
| WTI Cushing spot, monthly avg | PET.RWTC.M | EIA | 1986-01 |
| WTI Cushing spot, weekly avg (for pass-through timing) | PET.RWTC.W | EIA | 1986-01 |
| Unleaded regular, U.S. city avg (BLS average price) | APU000074714 | BLS | 1980-01 |
| U.S. regular retail, weekly (EIA) | PET.EMM_EPMR_PTE_NUS_DPG.W | EIA | 1990-08 |
| U.S. on-highway diesel, weekly (EIA) | PET.EMD_EPD2D_PTE_NUS_DPG.W | EIA | 1994-03 |
| CPI-U all items, NSA | CUUR0000SA0 | BLS | 1980-01 |
| Avg hourly earnings, production & nonsupervisory, SA | CES0500000008 | BLS | 1980-01 |
The diesel ripple
| Series | ID | From | Since |
|---|---|---|---|
| PPI: long-distance truckload | PCU484121484121 | BLS | 2003-12 |
| PPI: long-distance LTL | PCU4841224841221 | BLS | 1992-06 |
| PPI: truck transportation (industry aggregate) | PCU484---484--- | BLS | 2003-12 |
| PPI: No. 2 diesel fuel | WPU057303 | BLS | 1980-01 |
| PPI: farm products | WPU01 | BLS | 1980-01 |
| PPI: processed foods & feeds | WPU02 | BLS | 1980-01 |
| PPI: final demand foods | WPUFD4111 | BLS | 2009-11 |
| CPI: food at home, NSA | CUUR0000SAF11 | BLS | 1980-01 |
| Avg price: whole milk, per gal | APU0000709112 | BLS | 1995-07 |
| Avg price: whole milk, per 1/2 gal (1980-1997 only; splice with ap_milk over 1995-97 overlap) | APU0000709111 | BLS | 1980-01 |
| Avg price: eggs grade A large, per dozen | APU0000708111 | BLS | 1980-01 |
| Avg price: white bread, per lb | APU0000702111 | BLS | 1980-01 |
| Avg price: ground beef, per lb | APU0000703112 | BLS | 1984-01 |
The scoreboard
| Series | ID | From | Since |
|---|---|---|---|
| CPI: shelter | CUUR0000SAH1 | BLS | 1980-01 |
| CPI: rent of primary residence | CUUR0000SEHA | BLS | 1980-01 |
| CPI: owners' equivalent rent | CUUR0000SEHC | BLS | 1983-01 |
| CPI: medical care | CUUR0000SAM | BLS | 1980-01 |
| CPI: college tuition & fees | CUUR0000SEEB01 | BLS | 1980-01 |
| CPI: motor vehicle insurance | CUUR0000SETE | BLS | 1980-01 |
| CPI: new vehicles | CUUR0000SETA01 | BLS | 1980-01 |
| CPI: used cars & trucks | CUUR0000SETA02 | BLS | 1980-01 |
| CPI: food away from home | CUUR0000SEFV | BLS | 1980-01 |
| CPI: electricity | CUUR0000SEHF01 | BLS | 1980-01 |
| CPI: utility (piped) gas | CUUR0000SEHF02 | BLS | 1980-01 |
| CPI: gasoline, all types | CUUR0000SETB01 | BLS | 1980-01 |
| Vehicle miles traveled, monthly, NSA (FHWA via FRED) | TRFVOLUSM227NFWA | FRED | 1980-01 |
| Median sales price of houses sold (Census/HUD via FRED, quarterly) | MSPUS | FRED | 1980-01 |
| 30-yr fixed mortgage rate (Freddie Mac PMMS via FRED; cite Freddie Mac; method break Nov 2022) | MORTGAGE30US | FRED | 1980-01 |
Macro context
| Series | ID | From | Since |
|---|---|---|---|
| Effective federal funds rate, monthly (Board of Governors via FRED) | FEDFUNDS | FRED | 1980-01 |
California
| Series | ID | From | Since |
|---|---|---|---|
| California regular retail, weekly (EIA) | PET.EMM_EPMR_PTE_SCA_DPG.W | EIA | 2000-05 |
| California on-highway diesel, weekly (EIA) | PET.EMD_EPD2D_PTE_SCA_DPG.W | EIA | 1995-07 |
These are EIA’s statewide surveys, which run below metro-area numbers like AAA’s Los Angeles average. We use them because they are public domain and reach back to the 1990s.
A few sources publish once a year, on paper or in spreadsheets, and get keyed in by hand when they land: NCES for sticker tuition, KFF’s Employer Health Benefits Survey for family premiums (1999 on), NAIC for the average HO-3 home premium (2000 on), BEA for new-car transaction prices through 2020 (CPI-extended after), Census and ACS medians to anchor rent, the BLS Consumer Expenditure Survey for household spending by income fifth, and FHWA Highway Statistics for fleet MPG, with 1981–89 computed from the ORNL Transportation Energy Data Book. Each hand-entered number carries its source in the pipeline code beside it.
One number on the site is an estimate from a paper rather than a measurement: the diesel-to-milk pass-through (about 20% total, peaking 4–7 months out) comes from Gafarov, Hasbany & Hilscher, SSRN 5687402, and is labeled a research estimate wherever it appears.
The assembly
How the monthly table is built
- Monthly retail = the plain mean of EIA’s weekly prints that fall in the month. No smoothing anywhere on the site. A series’ first or last month can rest on fewer weeks: August 1990 regular averages only the late-August weeks, because that is when the survey began.
- Two splices. Regular gasoline is the BLS average price series from January 1980 through July 1990, then the mean of EIA’s weekly survey from August 1990 on. WTI is FRED’s WTISPLC for 1980–85 and EIA’s Cushing spot from 1986; the early figures are posted prices, since a liquid spot market only developed mid-decade. Milk splices the discontinued half-gallon series onto the gallon series over their 1995–97 overlap.
- Crude cost per gallon = WTI ÷ 42, because a barrel holds 42 gallons. Charts that show crude against pump prices lock $42/bbl to $1/gal so the two lines are on honest terms. The markup (pump price minus crude cost) lumps refining, distribution, taxes and margin together; EIA suspended the refiner surveys that would split it finer in 2023.
- The mortgage payment on the scoreboard is principal and interest on the median-priced home, 80% loan-to-value, 30-year fixed, at the Freddie Mac survey rate. The quarterly home price applies to its own quarter’s months and the weekly rate averages to monthly. Nothing is interpolated.
- Real columns are recomputed against the newest CPI on every update. A CSV downloaded in March will not match one downloaded in June, by design: the base month moved.
The math, continued
How the spikes section works
The rockets-and-feathers chart regresses each week’s change in retail regular on the prior eight weeks of WTI changes, converted to cents per gallon, with crude rises and crude falls entered as separate variables. Summing the coefficients gives the share of a crude move sitting at the pump after so many weeks. Retail weeks are EIA’s Monday survey; crude weeks average the trading days through that Friday. A Monday price cannot see its own week’s Friday close, so crude enters at lags of one week and longer.
A spike’s climb runs from its peak back to the lowest print of the 52 weeks before it. We count the weeks until half that climb was gone, first crossing, nothing fancier; 2011 re-climbed after crossing, and the number does not hide that. The typical-year curve takes every complete year since 1991, expresses each week as a share of that year’s own average, and draws the median and the middle half across years. The current year is drawn against its average to date, the only average it has yet. Weeks above $4 are counted from the nominal weekly prints; the real-dollar count deflates each week by its month’s CPI first.
The standing bet
What would change our mind
Every chart on this site carries a claim, and a claim that cannot lose is not worth much. Here is how ours could lose, written down before the data comes in.
- The presidents page argues the White House lives inside a 16-cent residual. If the non-crude markup runs more than 15¢ above its fitted level for a full year while refineries are operating normally, the crude-plus-markup model is missing a piece and that page gets rewritten, on the page, with the old claim struck through.
- The diesel ripple leans on a 4-to-7-month pass-through from diesel into food prices. If grocery inflation has not picked up by mid-2027 despite diesel’s record year, the six-month rule gets a printed qualifier about farm prices, which have been pushing the other way all year.
- The spike ladder says 2026 has given nothing back. If the pump closes half the climb by New Year’s, the section rewrites itself from the data, and the “this one is different” framing comes down with it.
- The records are first prints. EIA revises. If the monthly figures land more than a few cents under a weekly record we quoted, the record language gets softened and we will say the revision moved it.
The honest part
Calls you could argue with
We adjust prices with CPI that is not seasonally adjusted and divide by a wage series that is. Mixing them is a compromise. The unadjusted CPI is the price level people faced, and the seasonally adjusted wage is the earnings series BLS features; the two clean pairings both had worse problems. Reasonable people could pick differently.
The wage is an average over production & nonsupervisory workers, about 80% of private employment. An average hides the spread. If you earn less than it, your minutes-per-gallon are worse than ours; a rural commuter burning 30 gallons a week lives in a different chart than the national one. We say this on the site and we mean it.
Weekly and monthly claims are kept in separate ledgers. This week’s print can sit at one percentile of history at the same time the monthly average sits at another; both are true and they answer different questions, so we never swap one in for the other. And all of it is U.S. national averages. A gallon in Los Angeles is a different product from a gallon in Houston; state pages are on the list.
The holes
Missing data stays missing
October 2025 CPI was never published; the appropriations lapse killed the collection, and BLS says the month is gone for good. Our charts show a hole there. We would rather draw a gap than invent a number, so nothing on this site interpolates across it, and the real-dollar columns for that month stay blank in the CSV too.
The same lapse cost October 2025’s household survey outright and two months of the Consumer Expenditure diary, so 2025 spending shares are flagged where we use them. Rent and owners’ equivalent rent were carried forward from spring 2025 into 2026, which makes the April 2026 rent change atypical. BLS also stopped price collection in Lincoln, Provo and Buffalo. Diesel begins in March 1994 because that is when EIA’s survey begins. Every known hole lives in a machine-readable registry the charts consult, so the UI cannot quietly paper over one.
The cadence
What updates, and who writes it
EIA publishes weekly prices Monday around 10 a.m. Eastern, a day later after federal holidays. Our pipeline runs Monday evening, with a second pass midweek to catch revisions, and the site rebuilds from the result; if nothing changed, nothing ships. CPI lands mid-month, wages the first Friday. Revisions overwrite, and we keep dated vintages of every pull.
Full disclosure: one passage on this site is machine-written. The short note under the pump sign is drafted each week by a language model working from a fact sheet the pipeline computes. Every figure in the draft is checked against that sheet before it publishes, and when the check fails, the site prints the plain facts instead. If that note is ever wrong, the fault is ours, not the model’s.
Take it
Download the data
The whole monthly table, Jan 1980 to now, one row per month:
| Column | Meaning |
|---|---|
| month | Calendar month, YYYY-MM |
| wti_usd_bbl | WTI crude, dollars per barrel |
| regular_usd_gal | Regular gasoline, dollars per gallon |
| diesel_usd_gal | On-highway diesel, dollars per gallon; blank before 1994-03 |
| cpi_u_nsa | CPI-U all items, not seasonally adjusted, index |
| avg_hourly_earnings_prod_nonsup | Average hourly earnings, production & nonsupervisory, dollars |
| crude_cost_usd_gal | Crude cost per gallon: WTI ÷ 42 |
| wti_real | WTI in Aug 2026 dollars |
| regular_real | Regular in Aug 2026 dollars |
| diesel_real | Diesel in Aug 2026 dollars |
| regular_work_min_per_gal | Minutes of work to buy a gallon of regular |
| diesel_work_min_per_gal | Minutes of work to buy a gallon of diesel |
| diesel_minus_regular | Diesel price minus regular, dollars per gallon |
The underlying series are public domain U.S. government data. Cite the agencies; FRED compilations ask for a FRED citation, and the mortgage rate should credit Freddie Mac. Our table, charts and cards are free to reuse with a visible link to fuelfigures.com. That is the whole license. Suggested credit line: “U.S. average retail prices, EIA weekly survey. Analysis and charts: FuelFigures.com.” Embed codes and share cards live at /embed.
Spot an error? Say so: @prestonzeller. A correction is worth more to this site than a compliment.