The Cart Index · Folsom, CA Published weekly Data & code on GitHub ↗
A weekly grocery price index · Folsom, California

The Cart
Index

Every Monday morning, one economics student records what the same fixed basket costs at three Folsom grocery stores — Walmart, Target, and Safeway — item by item, straight from each retailer's own published store prices. National CPI tells you what food costs on average, months later. This tells you what it costs here, this week — measured, not estimated.

·—
— wk/wk Base week = 100
Pilot phase complete (Jul 6 – Aug 17). The official index publishes its first reading Monday, Aug 24, 2026.

01 — The number

Grocery inflation, measured on foot

The index is a weighted average of price changes across five food categories, benchmarked to the first week of the official series (= 100). Weights are fixed, BLS-style food-at-home category weights, published in the page source, so a move in this line means the same thing a CPI move does — just for Folsom, and weekly instead of monthly.

weeks in official series
observations in index
items in basket
stores, every week

The official series begins Aug 24, 2026 (= 100). The seven weeks of Jul 6 – Aug 17 were a pilot used to finalize the collection protocol; pilot observations are published in the raw CSV, flagged pilot, and excluded from the index — details in the revision log.

02 — The spread

The cheapest full cart

The exact same basket, rung up at each store this week. The gap between the cheapest and priciest cart is real money a family keeps by driving five extra minutes.

What the spread is worth to you

Based on this week's percentage gap between the priciest and cheapest cart, applied to your own grocery budget.

back in your pocket per year
— per week, at this week's spread

03 — The shelf

On the shelf this week

Average shelf price across all tracked stores for each basket item, with the week-over-week move. These are the tags shoppers actually see.

04 — The method

How it's measured

1

Fixed basket

The same named products, at the same stores, every week. Each item is defined by a written specification — brand tier, cut, package size, and price type — so every observation is like-for-like. Out-of-stock items carry the prior week's price forward (standard index imputation) and are never substituted. Full specifications are in the README.

2

Collected consistently

Prices recorded every Monday morning from each retailer's own website or app, with the exact Folsom store location selected. Prices are recorded as displayed for that store, including free loyalty-program pricing where the retailer shows it (Safeway for U); clip-to-activate coupons and paid-membership prices are never used.

3

Weighted like the CPI

Category price relatives are combined with BLS-style food-at-home weights (a Laspeyres index), so the composite behaves like a true price index, not a raw price average.

4

Published open

Every observation lives in a public CSV on GitHub. Anyone can audit the math, rebuild the index, or extend it to their own city.

REVISION LOG — 2 entries

2026-08-22Collection protocol adopted; official series defined. A written protocol now fixes every item specification: brand tier, cut, and package size for both meat items; per-banana pricing (the only unit all three stores display); normalization of Safeway’s 22 oz loaf to a 20 oz equivalent; and the price-type rule under which Safeway prices are its free-membership (for U) prices. Ground beef is priced from the store-brand 1 lb 80/20 tray; chicken breast from each store’s value-pack tier, the only tier stocked at all three, so part of any cross-store chicken gap reflects pack size rather than store pricing — this affects cart levels, not the index. The official series begins with the first collection under this protocol, Monday, Aug 24, 2026 = 100.

2026-08-21Jul 6 – Aug 17 designated the pilot phase; panel set at three stores. During those seven weeks the meat items were not selected under a written specification, so those observations are not like-for-like week to week. They remain published in the CSV, flagged pilot, and are excluded from the index; the index previously shown here, computed from all pilot data with base week Jul 6, is superseded and not comparable to the official series. Target banana rows were corrected from an inferred per-pound figure to the observed per-each price. The pilot panel also included Bel Air, removed to avoid a potential conflict of interest for the author (see the README); its 98 pilot observations remain published at archive/belair.csv.

This is an independent student research project. It is not affiliated with, endorsed by, or informed by any retailer's internal data — every price is the retailer's own publicly listed price for its named Folsom store. Store names can be anonymized on request.