About FullCarts
Name the shrinkers. Cite the evidence.
FullCarts is a public, evidence-based record of consumer-product shrinkflation. Every event we publish ties back to a verifiable source — a Reddit post, a news article, a retailer API response, a USDA record — with the original payload archived so the proof survives even when the source disappears.
What we count
We publish a shrinkflation event when we have evidence that a specific product's package shrank without a corresponding price drop. We also track restorations (when a product's size is increased back) and skimpflation (when the recipe quietly gets cheaper — less protein, more filler, swapped fats). Every event has at minimum a brand, product name, before/after size with units, an observed date, and at least one source URL.
Counted
- Package size reductions (oz, g, ml, count)
- Recipe changes from USDA cross-release diffs
- Stretchflation — bag inflation hiding less product
- Restorations and upsizings
Not counted
- Anecdotal complaints with no measurable size delta
- Pricing changes alone (no size change documented)
- Promotional sizes (limited-time bigger packs)
- Single-source claims without an image or article
Methodology
From raw source to public event
Six steps, all automated and audited. Every published event can be traced back to the exact raw payload it was extracted from.
01
Ingest
Daily scrapers pull from Reddit, news, retailer APIs, and OFF. Every fetch lands in raw_items as immutable evidence — no edits, no overwrites. If the source ever takes its post or article down, we still have the canonical payload.
02
Extract
Claude Haiku reads each new raw_item and extracts structured claims: brand, product name, before size, after size, observed date, change description, confidence sub-scores. Image-only Reddit posts get a vision pass.
03
Auto-decline
Junk gets discarded daily — text-only Reddit complaints with no image, news rows with no brand or no measurable size change, off-catalog OFF rows that aren't shrinkflation. Keeps the review queue clean.
04
Auto-approve
Claims that pass strict filters (image required, CPG-unit allowlist, overall confidence ≥ 90, sub-score floors) flow through without manual review. Everything else lands in the pending queue for a human.
05
Promote
Approved claims are matched to a canonical product_entity (or create one), produce a pack_variant (UPC-keyed), generate before/after variant_observations, and publish a published_changes row with the full evidence trail.
06
Dedupe
Syndicated news coverage of the same event collapses into a single published_changes row keyed on (entity, before size, after size). The contributing sources stack into evidence_count + the public source list you see on each event.
Where the data comes from
8 active sources
Every claim is grounded in at least one of these. Cross-referencing across multiple sources is how we tell a real event from a one-off anecdote.
Community evidence
Reddit
r/shrinkflation, r/CasualUK, r/UnitedKingdom and similar subs. User-submitted photos of old vs new packaging are some of the strongest evidence we have — every claim we extract from a Reddit post points back to the original post with the image archived to our storage so the proof survives even if the post is later removed.
Visit ↗ (opens in new tab)
News coverage
Google News + GDELT
We crawl Google News RSS and the GDELT v2 Document API for every article mentioning shrinkflation, package downsizing, or related terms. News outlets often cite specific products and quote brand responses, which lets us cross-check Reddit evidence against journalist reporting.
Visit ↗ (opens in new tab)
Product catalog
Open Food Facts
A crowdsourced product database with photos, package weights, and ingredients for over 3 million products. We use it to discover products we don't yet track, to verify package sizes against an independent source, and to surface historical size observations.
Visit ↗ (opens in new tab)
Retailer-direct
Kroger + Walmart APIs
Weekly polls of Kroger's product API and Walmart's open store API give us real-time package sizes and per-unit prices for every UPC we have an active variant for. This is how we catch shrinks the moment a new bag hits the shelf.
Visit ↗ (opens in new tab)
Skimpflation
USDA FoodData Central
USDA publishes a quarterly database of branded-food nutrition labels. We compare each quarter's release against earlier ones to spot products whose recipe changed — less protein, more added sugar, swapped fats. That's skimpflation: a smaller package is the obvious shrink; a worse recipe is the quiet one.
Visit ↗ (opens in new tab)
Government-grade
BLS R-CPI-SC
The Bureau of Labor Statistics' Research CPI excluding product Size Changes is the only official US measure of shrinkflation. BLS counts how many CPI-tracked items shrank between quarterly surveys — we plot it alongside our own count so you can see whether our catch list moves with the government's.
Visit ↗ (opens in new tab)
Macro context
FRED · Food CPI
The St. Louis Fed's FRED API gives us the official Food-at-Home CPI series. We surface it as the third line on the /insights chart so the shrinkflation count is always read against the inflation backdrop. If food prices are flat but shrinks are accelerating, the story is different than if both are rising in lockstep.
Visit ↗ (opens in new tab)
SKU history
Wayback Machine
When a Reddit post mentions a specific product page, we hit the Internet Archive's CDX API to pull historical snapshots of that page. That gives us a defensible before/after for size and price even when the retailer has since updated the listing.
Visit ↗ (opens in new tab)
Press & corrections
Journalists, researchers, and brand reps who want to dispute or clarify an event are all welcome to reach out. We publish corrections in-line on the affected event with the original claim preserved for transparency.