When we publish a number like "black beans give you 10.4 grams of fiber per dollar," that grocery number comes from a USDA nutrition record divided by a documented shelf price. A fast-food number starts somewhere else: the restaurant chain's published nutrition data and a documented menu-price observation. This page explains both tracks, the math they share, and what happens when we get one wrong.
Two grocery rankings run often enough that we gave them names: the Fiber per Dollar Index (53 foods scored on dietary fiber grams per dollar) and the Protein per Dollar Index (49 sources scored on protein grams per dollar). They use the grocery rules below and a scheduled quarterly price re-audit. Their files sit on the data page.
Where the data comes from
- Grocery nutrition: USDA FoodData Central. The fiber- and protein-per-dollar flagship exports expose FoodData Central IDs and direct record links for 99 of their 102 rows: 81 exact matches and 19 disclosed proxies. A proxy is a close source match, not verification of the exact priced brand, form, or preparation. Three rows sit outside that. The TVP row is sourced to the manufacturer's own label rather than USDA, because FoodData Central publishes no textured vegetable protein record. That leaves 2 rows marked unresolved: frozen shelled edamame, where the available records do not match the priced product closely enough to claim otherwise, and popcorn kernels, where USDA publishes nothing for unpopped kernels so the figure is derived from the air-popped record rather than quoted from it. Both are labelled as such in the CSV rather than quietly rounded up, and unresolved rows do not support an exact record lookup. Other grocery exports may still omit IDs on rows that have not received this row-level matching audit.
- Grocery prices: Bureau of Labor Statistics Average Price data where it exists, cross-checked against Walmart national listings for items BLS doesn't track. We use national figures, not the fancy grocery store two blocks from a marina.
- Restaurant nutrition and prices: nutrition comes from the restaurant chain's published product pages, nutrition PDFs, or nutrition tables. The fast-food CSV records the source and price basis for each menu item. Prices use the chain's online menu where available, or a documented 2026 menu or national price-tracker observation.
- Protein-quality inputs: the quality-adjusted dataset keeps the grocery
protein-per-dollar values as its base, then adds a DIAAS score for each row. The
diaas_sourcefield names the source used for that score. Those entries include individual journal studies, review articles, and the FAO 2013 report. These aren't one source type: the FAO report is an institutional report, and several rows use a cited food proxy that is disclosed in thenotesfield.
The grocery as-purchased rule
Grocery calculations use the food as it sits in your cart, not as it sits on a lab bench. Dry lentils are priced and measured dry. Canned beans are measured drained, because nobody eats the can liquid on purpose. If a grocery study compares cooked values, it says so explicitly and shows the conversion. Mixing "per 100g cooked" with "per 100g dry" is how you get rankings that look impressive and mean nothing, so we don't do it.
Grocery edible-fraction adjustments
A pound of oranges is not a pound of orange. Peels, pits, rinds, and bones come out of the math before anything gets ranked. We apply USDA refuse percentages to adjust the price to the part you actually eat. This matters more than people expect: skipping this step quietly flatters foods with heavy waste, like avocados and winter squash.
Verification status by source class
Grocery studies: the study page states the date and scope of any documented nutrition or price recheck. The July 4, 2026 fiber audit, for example, rechecked the published fiber values against FoodData Central and corrected six affected foods. We don't turn that documented audit into a blanket verification claim for every grocery row.
Restaurant studies: the fast-food study uses chain-published nutrition sources recorded in its CSV. The CSV documents independent second-source checks for 2 of the top 5 items. One additional top-five item was checked against a second endpoint from the same chain, which isn't an independent source. We don't claim independent checks for the other rows.
Protein-quality study: every published DIAAS row exposes its
diaas_method, diaas_score, diaas_source, and any proxy
limitation in notes. A field-level citation documents provenance; it doesn't
mean we independently reproduced the underlying digestibility study.
Who is responsible for the review
David Miller, the site's founder and editor, runs the data checks and documents the sources. He isn't a registered dietitian or medical professional. This methodology is designed to make food-price and nutrient calculations inspectable; it doesn't turn a cost ranking into personal nutrition advice. Claims that depend on health guidance should point to a primary government or clinical source, and readers should use a qualified healthcare professional for decisions specific to them.
This page covers the math and source rules for original research. The editorial standards cover authorship, recipes, explainers, tools, automation, and the sitewide correction process.
Every study ships its raw data
Each data study publishes its comparison rows as a public CSV. Grocery files include the fields their math needs, such as food, nutrient value, package price, edible fraction, and grams per dollar. The fast-food file instead records chain, menu item, protein, observed price, grams per dollar, nutrition source, and price basis. The field sets differ because the inputs differ. The protein-quality file adds DIAAS method, score, field-level source, adjusted value, and proxy notes. No "data available on request." The rows used for the rankings are right there.
- fiber-per-dollar-2026.csv (raw data for the fiber study)
- protein-per-dollar-2026.csv (raw data for the protein study)
- fastfood-protein-per-dollar-2026.csv (raw data for the restaurant study)
- protein-quality-per-dollar-2026.csv (raw data with field-level DIAAS sources)
You're welcome to reuse the data. Our original selection, arrangement, calculations, field descriptions, and explanatory material are available under CC BY 4.0, while third-party source material keeps its own status and terms. The data reuse page has the exact scope and copy-ready attribution.
When we get it wrong
We correct errors publicly, in the study itself, with a dated note. We don't quietly swap numbers and hope nobody noticed.
Real example: on July 4, 2026, an adversarial audit of the fiber per dollar study caught six values that needed correcting. We fixed them, re-ranked the affected foods, and published a correction note in the article. The audit process that caught them is now part of the standard pre-publish checklist.
How often the numbers get refreshed
- Quarterly: scheduled price re-audit for the published cost studies. Grocery shelves and restaurant menus both move, and a per-dollar ranking with stale prices is just a per-nothing ranking.
- Monthly: BLS Price Watch for the staple grocery foods covered by BLS Average Price releases.
The studies this applies to
- Fiber per Dollar: 53 Foods Ranked
- Protein per Dollar: 49 Sources Ranked
- The Fiber per Dollar Calculator (runs on the same verified dataset)
- What 30 Grams of Fiber Costs Per Day
- What 50 Grams of Protein Costs Per Day
- Protein per Dollar Adjusted for Quality
- Fast Food Protein per Dollar
Browse the complete collection and every available download on the research hub.
Questions about the data, or spotted something that looks off? Tell us. Getting corrected beats being wrong.