Junk food is not cheaper than real food. It is cheaper than some real food
Prices from the June 2026 BLS release. Updated August 2026.
“Healthy food costs more” is one of those claims everyone repeats and nobody prices out. It gets used to explain obesity, food deserts, and the entire American diet, usually with no numbers attached at all.
So I priced it out, using the same source as the protein comparison : https://americankitchentales.com/ the Bureau of Labor Statistics average price series, which underlies the Consumer Price Index and covers 75 urban areas. The question here is the inverse of the protein one. Not how many grams of protein a dollar buys, but how many calories.
The answer is more interesting than either side of the argument expects.
Is junk food cheaper than real food? The numbers

Junk food cost per calorie chart: cost per 1,000 calories for 10 US foods, June 2026 BLS data
What this actually shows
The junk food argument is half right, and it is the less interesting half.
Potato chips and chocolate chip cookies do beat potatoes, eggs, ground beef and chicken breast on calories per dollar. If your comparison set is snack food versus meat and fresh produce, snack food wins, and the people making that argument are not lying.
But both of them lose badly to flour, beans and bread. Flour is seven times cheaper per calorie than potato chips. Not seven percent. Seven times. Dried beans are more than twice as cheap. The cheapest calories in the American supermarket are not in the snack aisle, they are in a paper sack of flour that costs about fifty cents.
So the honest version of the claim is narrower than the slogan: processed snacks are cheaper than meat and fresh vegetables, and more expensive than staple carbohydrates. Which means the price gap being used to explain the American diet is real, but it does not point where people think it points.
Two results that surprised me
Potatoes are expensive calories. They have a reputation as the poverty food of last resort, and per pound they are the second cheapest thing on this list. But a potato is about four fifths water, so a pound of potatoes carries roughly 350 calories against flour’s 1,650. Per calorie, potatoes cost eight times what flour costs. The reputation comes from an era when people bought fifty pound sacks, not from anything true about the potato itself.
Butter is cheap calories. At $1.17 per thousand calories it sits between beans and bread, which is not where most people would guess a $3.82-per-pound product lands. Fat is nine calories per gram against four for carbohydrate and protein, and that ratio does most of the work here.
The caveat that matters more than usual
Calories per dollar is a genuinely bad thing to optimize on its own. Run it to its conclusion and the answer is to eat flour and butter, which is a recipe for scurvy rather than a grocery strategy.
This table is only useful next to the protein table. Read together they explain the actual shape of a cheap diet: staple carbohydrates supply the calories, dried beans and eggs supply the protein, and the expensive items on both lists are the same items. Chicken breast is the most expensive calorie here and the third most expensive protein there. Ground beef is second worst on both. The foods that look bad on one table generally look bad on the other, which is a more useful finding than either table alone. The second caveat is the same one as last time. Everything is priced on raw purchased weight, because that is what you hand over money for. Beans and flour gain water when cooked, potatoes and meat lose some. Adjusting for that moves the numbers around without changing the order.
Run it yourself
- Pull the price from FRED.Search “Average Price” plus the food. Free, monthly, no account needed.
- Get calories per 100 grams from USDA FoodData Central, using the raw or as-purchased form.
- Multiply by 4.536 for calories per pound.
- Divide price by that number, multiply by 1,000.
Use one month for every food. Mixing months is how most published versions of this comparison end up wrong.
