Data Sources1,133 words, 5 minutes
The CPI basket explained, from the BLS relative importance tables
Shelter is 35.6% of the CPI-U basket for 2026 and energy 6.4%, yet energy supplied 38% of the index's rise from December to August. The weights, and how to use them.
The Consumer Price Index is a weighted average of a few hundred price indexes, and the weights decide what "inflation" means in any given month. The Bureau of Labor Statistics publishes them once a year as relative importances. This article reads the tables for December 2020 through December 2025, sets out the basket the CPI uses in 2026, and applies the BLS's own method to show which components drove the index from December 2025 to August 2026. The answer is lopsided: energy is 6.4% of the basket and supplied 38.1% of the rise. The listing code/cpi-basket-relative-importance.py rebuilds every number, and the 28 rows it keeps from each table are in the dataset. Nothing here is investment advice; it describes a public index.
What a relative importance is
In the BLS's words, the relative importance of a component "is its expenditure or value weight expressed as a percentage of all items". The weights start from consumer spending in a reference period and are then carried forward by price changes, so a component whose prices rise faster than the rest gains relative importance even if nobody changes what they buy. The BLS is explicit that the ratios "cannot be used as estimates of current spending patterns".
The reference period moves. The December 2020 table rests on 2017-2018 spending, December 2021 on 2019-2020, December 2022 on 2021, and December 2025 on 2024: two-year reference periods until the 2021 data, one-year periods since. The December 2025 table, with 2024 weights, is the basket the CPI uses through 2026.
The 2026 basket
| Component | CPI-U | CPI-W |
|---|---|---|
| Food | 13.698 | 14.889 |
| Energy | 6.383 | 8.052 |
| Core goods (commodities less food and energy commodities) | 19.176 | 19.966 |
| Core services (services less energy services) | 60.744 | 57.093 |
| of which: shelter | 35.625 | 33.594 |
| of which: owners' equivalent rent | 26.204 | 21.798 |
| of which: rent of primary residence | 7.840 | 10.697 |
| Transportation | 16.316 | 18.256 |
| Medical care | 8.423 | 7.596 |
Percent of all items, December 2025, from the BLS tables. Food, energy, core goods and core services add to 100 within rounding.
Two things dominate. Shelter alone is 35.625% of the CPI-U, and 26.204 points of it are owners' equivalent rent of residences. Services other than energy are 60.744% of the index, more than three times the weight of core goods.
The CPI-W, which covers urban wage earners and clerical workers, weights the same components differently. It holds 1.669 more points of energy than the CPI-U, 1.199 more of food at home and 1.076 more of gasoline, and it swaps owners' equivalent rent (4.406 points less) for rent of primary residence (2.857 points more).
Five years of moving weights
Across the six December tables, the CPI-U weights moved like this:
- Shelter rose from 33.316 in December 2020 to a peak of 36.191 in December 2023, and stood at 35.625 in December 2025.
- Motor vehicle insurance went from 1.598 to 2.754, up 72%, with a peak of 2.796 in December 2024.
- Used cars and trucks jumped from 2.750 to 4.143 in December 2021 and fell back to 2.759 by December 2025.
- Energy peaked at 7.348 in December 2021, against 6.155 a year earlier and 6.383 now.
- Food away from home fell from 6.347 in the December 2020 table to 5.205 in December 2021, when the weights moved from 2017-2018 spending to 2019-2020 spending, and was 5.373 in December 2025.
Because a relative importance mixes new spending weights with price changes since the weights were set, none of these moves by itself says how households spent their money in a given year. They do say what each component could do to the index.
Who moved the index from December to August
The BLS page gives the method: a component's contribution to the change in all items is its relative importance at the start of the period times its own relative price change, and a period that crosses a weight update has to be split. December 2025 to August 2026 sits inside one weight period, so one step is enough. We pulled the not seasonally adjusted December 2025 and August 2026 indexes for 17 CPI-U series from the BLS API and checked every value against the series pages on data.bls.gov.
ri = tables[2025]
ch = idx[sid][("2026", "M08")] / idx[sid][("2025", "M12")] - 1
c = float(ri.loc[item, "cpi_u"]) * ch # percentage points of the all-items change
ri is the December 2025 table and idx holds the index levels by series and month. Because a relative importance is a percentage of all items, the product comes out in percentage points of the all-items change, and the all-items series itself, with a weight of 100, returns its own percent change.
| Component | Weight, Dec 2025 | Price change | Contribution, points | Share of the rise |
|---|---|---|---|---|
| All items | 100.000 | +3.37% | +3.372 | 100% |
| Energy | 6.383 | +20.14% | +1.286 | 38.1% |
| of which: gasoline | 2.895 | +37.59% | +1.088 | 32.3% |
| Core services | 60.744 | +2.51% | +1.527 | 45.3% |
| of which: shelter | 35.625 | +2.49% | +0.888 | 26.3% |
| of which: motor vehicle insurance | 2.754 | -5.00% | -0.138 | -4.1% |
| Core goods | 19.176 | +1.54% | +0.295 | 8.7% |
| Food | 13.698 | +1.93% | +0.264 | 7.8% |
Food, energy, core goods and core services contribute +3.372 points between them, which matches the all-items change of +3.372% to within 0.0002 of a point: the method is internally consistent.
The shape of the eight months is clear. Energy, with 6.383% of the weight, supplied almost two-fifths of the rise, and gasoline alone, under 3% of the basket, supplied almost a third. Core services supplied 45.3%, most of it shelter. Motor vehicle insurance, one of the fastest-growing weights of the past five years, fell 5.00% and took 0.138 of a point off the index.
What the weights do not tell you
These are not seasonally adjusted changes: the BLS works its own example on the unadjusted indexes (its December 2016 energy index of 193.306 is the unadjusted series), so part of any December-to-August move is ordinary seasonality. The contributions answer "what moved the index", not "what will move it next". The weights lag spending by about two years, which is why the 2026 basket reflects 2024 behaviour. And the October 2025 all-items index was never published: the BLS marks it "Data unavailable due to the 2025 lapse in appropriations", as it does 13 of the 16 components used here (used cars, new vehicles and gasoline do have October values), and motor vehicle insurance also has no November 2025 value. Neither month enters this calculation, which uses December and August only.
The dataset
datasets/cpi-basket-relative-importance.csv has 168 rows: 28 items for each of the six December tables. Run python cpi-basket-relative-importance.py to fetch the tables and the API series and print the contribution table; BLS serves www.bls.gov only to a User-Agent that names the requester and a contact, so set the CONTACT line first.
_README:
item: the component's name exactly as the BLS table prints it (curly apostrophes straightened)december: the table's month, December of 2020 to 2025cpi_u: relative importance in the CPI-U, percent of all itemscpi_w: relative importance in the CPI-W, percent of all items