# Source snapshot: us-inflation-components story

Retrieved **8 November 2026** by [`fetch.mjs`](fetch.mjs) (from the download folder: `npm ci && node us-inflation-components-src/fetch.mjs`). These are small extracts plus the raw files they came from, not a DataPressr dataset: no `datapackage.json`. [`calculate.mjs`](calculate.mjs) checks the two extracts' hashes and writes every number quoted in the post to `statistics.json`; `../us-inflation-components-make-charts.mjs` builds the desktop and `-mobile.svg` charts from `contributions-monthly.csv` and `statistics.json`.

**Edition check (8 November 2026).** The latest CPI release is for **September 2026**, published by BLS at 8:30 a.m. ET on Wednesday 14 October 2026 (embargo line of the archived release, <https://www.bls.gov/news.release/archives/cpi_10142026.htm>, snapshotted below). The next release, for October 2026, is scheduled for 10 November 2026 (<https://www.bls.gov/schedule/news_release/cpi.htm>). The API's latest observation is September 2026 for every series used. BLS's own rounded headline figures in the release match `statistics.json`: all items 3.7%, all items less food and energy 2.6%, energy 20.4%, gasoline 34.2% over the 12 months to September. **Re-checked 12 November 2026** against the October 2026 release (10 November, <https://www.bls.gov/news.release/archives/cpi_11102026.htm>) and the API: every index value in `cpi-u-nsa-indexes.csv` is unchanged; the API adds October 2026 only, and BLS publishes no 12-month change for October 2026 for all items, energy, food or core (October 2025 still missing), so September 2026 remains the latest 12-month window and the extracts were not re-fetched.

## Publisher and licence

- **Publisher:** US Bureau of Labor Statistics (BLS), Consumer Price Index program.
- **Licence:** public domain. BLS copyright page (<https://www.bls.gov/opub/copyright-information.htm>): "everything that we publish, both in hard copy and electronically, is in the public domain, except for previously copyrighted photographs and illustrations. You are free to use our public domain material without specific permission, although we do ask that you cite the Bureau".

## Access: what worked

- `api.bls.gov` Public Data API **v1** (no registration key; limits 25 series and 10 years per request, 25 requests per day): a plain `POST` with a JSON body works with no special headers.
- `www.bls.gov` and `download.bls.gov` return **HTTP 403 ("Access Denied")** to plain `curl`, and also to `curl` with only a browser User-Agent. They answer **200** when the request carries a browser User-Agent *and* the usual browser headers (`Accept`, `Accept-Language`, `Sec-Fetch-Mode: navigate`, `Sec-Fetch-Site: none`, `Sec-Fetch-Dest: document`, `Upgrade-Insecure-Requests: 1`). `fetch.mjs` sends these and pauses 1.5 s between requests.
- The bulk flat files at `download.bls.gov/pub/time.series/cu/` (dated 19 October 2026) were reachable the same way but not used: `cu.data.2.Summaries` alone is 12 MB, while the API returns only the eight series needed.

## Raw files (in `raw/`)

| File | Source URL | Bytes | SHA-256 |
|---|---|---|---|
| `bls-api-v1-cpi-u.json` | `POST https://api.bls.gov/publicAPI/v1/timeseries/data/` with series `CUUR0000` + `SA0`, `SAF1`, `SA0E`, `SACL1E`, `SAH1`, `SASLE`, `SA0L1E`, `SETB01`; years 2017–2026 | 83,503 | `8d8cc15336c46a515ca5e65abae4d76e831c907eba37116ea87c47ecb5912122` |
| `bls-cpi-release-2026-10-14.htm` | <https://www.bls.gov/news.release/archives/cpi_10142026.htm> | 1,373,525 | `b9f981390c08f4a530d839495fce582124015b979bac0398bfcc35ffde0544e4` |
| `ri-2017.txt` | `2010-2019_RI_archive/2017.txt` inside <https://www.bls.gov/cpi/tables/relative-importance/ri-archive-2010-2019.zip> | 31,204 | `d9a80db0c0f373a63bec8fb3477efaec3659f72c58b3826a458e779cc033b631` |
| `ri-2018.txt` | same ZIP, `2018.txt` | 31,204 | `8590809225dd69d8510cc20253270abfd4d0d04958e3e4a7104f4e62009f494e` |
| `ri-2019.txt` | same ZIP, `2019.txt` | 31,376 | `07489c0100a826507fb7827d61af1906269f85fdaaff2eff83ecae1f7d42a517` |
| `ri-2020.htm` | <https://www.bls.gov/cpi/tables/relative-importance/2020.htm> | 196,127 | `d168fd60a9eaa1ac4ae1b74df9be43caec4007e709e5d68af4f394531109203a` |
| `ri-2021.htm` | `…/relative-importance/2021.htm` | 225,391 | `4772dd70b038d62f9ac6c090b3b55fa3b1252bf4998bad51ea81283a32ca106f` |
| `ri-2022.htm` | `…/relative-importance/2022.htm` | 89,282 | `c2b1e9041293622d73f4885d9fb659e9e4ecd284cbffb2e20b15c2555d86d639` |
| `ri-2023.htm` | `…/relative-importance/2023.htm` | 89,321 | `258ca8f8b17c2ed4576f87d8a317e0a29f081b747c4001d5da44272e81953b1e` |
| `ri-2024.htm` | `…/relative-importance/2024.htm` | 89,303 | `8fe82f0309b57bf5eace623f225f205e6ca7faa8a74b25e90a2885a6b59686f7` |
| `ri-2025.htm` | `…/relative-importance/2025.htm` | 98,690 | `69520f7e21198fef3f1dc86518e91d9ed730fcab3018e8619737cb0d2d35acd8` |
| `ri-old-weights-2021.htm` | `…/relative-importance/old-weights-2021.htm` | 211,647 | `5ab810faad9ac475711b98900fc2073235e4766804da66c0df71757500d6909e` |
| `ri-old-weights-2022.htm` | `…/relative-importance/old-weights-2022.htm` | 85,864 | `f98a9a2f1c169fc05389b6bc394e4960fbcfffba9dc6e2dbe123a3b73a8b79e0` |
| `ri-old-weights-2023.htm` | `…/relative-importance/old-weights-2023.htm` | 85,844 | `60d784d5754da9a9702f91e3ca5de15146ca0d151fc4ac3ba95bc362eb239b71` |
| `ri-old-weights-2024.htm` | `…/relative-importance/old-weights-2024.htm` | 88,829 | `c753159be27f37dd42bc7f1c379a2b438a4796079a6452487b927f5504fa3cf5` |
| `ri-old-weights-2025.htm` | `…/relative-importance/old-weights-2025.htm` | 92,989 | `c186001aedf5cabb8f05100e0a09e8ef023e396dd1feeb2674df9659dbe1ff2a` |

The 2010–2019 ZIP itself (989,431 bytes, SHA-256 `b431e65e275a2654db5af3460c03e240662d26a321b66c87d1d8001b9370994d`) is not kept; only the three tables used are extracted from it.

Re-fetching gives a different hash for `bls-api-v1-cpi-u.json` (the response carries a `responseTime` field) and, after 10 November 2026, more months; the extracts below were byte-identical across two fetches on 8 November 2026. BLS pages may also change their HTML around unchanged tables.

## Extracts (written by `fetch.mjs`, hash-checked by `calculate.mjs`)

| File | Rows | Columns | SHA-256 |
|---|---|---|---|
| `cpi-u-nsa-indexes.csv` | 929 (8 series × 117 months, Jan 2017–Sep 2026, less 7 missing October 2025 values) | `series_id`, `item`, `month`, `index` (1982–84 = 100, as published) | `a8905cd9429ebccf27905df71edb08b13a3bb93784dcef223e11854759c5620d` |
| `relative-importance-december.csv` | 92 | `table` (`basis` or `old`), `december`, `weights` (expenditure years), `basis_for_year`, `series_id`, `item`, `relative_importance` (CPI-U, % of all items), `source_file` | `4211c071c96271dd4b643d1c3c17244204cb1bf5ae02d397cbf3438ef26b3b3d` |

## Derived (written by `calculate.mjs`)

| File | Contents | SHA-256 |
|---|---|---|
| `contributions-monthly.csv` | 92 months, Jan 2019–Sep 2026 except Oct 2025: 12-month % changes (all items, core, energy, gasoline) and contributions in percentage points (energy, food, other goods, shelter, other services, gasoline, everything except energy), plus the residual | `ab05afbe2e46ae66f3d38ccc1cf5f91c0705acee10fa84c8cb6bc254d570111e` |
| `statistics.json` | every number in the post, plus method checks | `eed810d490871ab9aa75e939e951f4be8b3ffe1baa210a1cf3210659a61d0f63` |

## Context documents cited, not snapshotted

- BLS, "Relative importance and weight information for the Consumer Price Indexes", section "How to estimate the contribution of a component to the overall price change", <https://www.bls.gov/cpi/tables/relative-importance/home.htm> (the method used).
- BLS, "2025 Federal government shutdown impact on the Consumer Price Index: frequently asked questions", <https://www.bls.gov/cpi/additional-resources/2025-federal-government-shutdown-impact-cpi-faq.htm> (October 2025 gap; rents carried forward; "Effects of the carry-forward imputation method utilized in October 2025 will resolve in April 2026"; no 12-month changes for October 2026 where October 2025 is missing).
- US Energy Information Administration, "Crude oil and petroleum product prices increased sharply in the first quarter of 2026", Today in Energy, 7 April 2026, <https://www.eia.gov/todayinenergy/detail.php?id=67424> (military action in the Middle East on 28 February; Strait of Hormuz effectively closed to most shipping).
