BiomaLearnFoodsNutrition factsNutrientsGuidesAnswersEvidence

Is tofu cheaper than meat?

No. In USDA's 2017–18 national average prices, 30 g of protein cost $2.51 from tofu and $1.03 to $1.50 from meat (chicken thighs $1.03, chicken breast $1.05, pork chops $1.15 and ground beef $1.50). Per pound tofu is cheaper ($2.72 vs $3.83 for chicken thighs), but it has only 7 g of protein per 3.5 oz (100 g) against 25 g.

Prices: USDA Economic Research Service national average prices for 2017–18, the latest set it has published, in dollars of that time, per edible gram (bones, skin you discard and cooking losses already counted). Protein and calories: USDA FNDDS. Today's shelf prices differ, so compare foods with each other rather than with your receipt.

Cost of 30 g protein
Chicken thighs$1.03Chicken breast$1.05Pork chops$1.15Ground beef$1.50Tofu$2.51

US national average prices, 2017–18, per edible gram.

Price per pound, per serving and per gram of protein

Food, as eatenCost of 30 g proteinProtein per $1Price per lbOne servingCalories per 30 g protein
Chicken thighs (roasted, skin not eaten)$1.0329 g$3.833 oz (85 g): $0.72, 21 g protein217
Chicken breast (roasted, skin not eaten)$1.0529 g$4.813 oz (85 g): $0.90, 26 g protein160
Pork chops (cooked, lean only)$1.1526 g$4.873 oz (85 g): $0.91, 24 g protein183
Ground beef (cooked)$1.5020 g$5.813 oz (85 g): $1.09, 22 g protein306
Tofu$2.5112 g$2.723 oz (85 g): $0.51, 6 g protein255

Prices are US national averages for 2017–18 in dollars of that time. Cost of 30 g protein = price per 3.5 oz (100 g) as eaten ÷ grams of protein per 3.5 oz (100 g) × 30.

What changes the answer

More on the cost of protein

Sources

  • Prices: USDA Economic Research Service, Purchase to Plate National Average Prices for NHANES (PP-NAP), 2017/2018 prices, US dollars per 100 edible grams. https://www.ers.usda.gov/data-products/purchase-to-plate/ (dataset accessed 2026-10-12)
  • Protein and calories: USDA FoodData Central, FoodData Central survey (FNDDS) 2024-10-31, the entry with the same food code (accessed 2026-10-14)

Foods on this page

  • Chicken breast: ERS food code 24122131 Chicken breast, baked, broiled, or roasted, skin not eaten, from raw (Includes NS as to skin eaten), price carried over from a closely matching food (ERS method altEC) · nutrients FDC ID 2705956
  • Chicken thighs: ERS food code 24152231 Chicken thigh, baked, broiled, or roasted, skin not eaten, from raw, price carried over from a closely matching food (ERS method altEC) · nutrients FDC ID 2706030
  • Ground beef: ERS food code 21500100 Ground beef, cooked, price carried over from a closely matching food (ERS method altEC) · nutrients FDC ID 2705854
  • Pork chops: ERS food code 22101020 Pork chop, NS as to cooking method, lean only eaten, price carried over from a closely matching food (ERS method altEC) · nutrients FDC ID 2705868
  • Tofu: ERS food code 41420010 Soybean curd (Includes stir fried; bean curd; tofu), matched directly to store sales data · nutrients FDC ID 2707435

How we calculate: cost of 30 g protein = ERS price per 3.5 oz (100 g) as eaten ÷ FNDDS protein per 3.5 oz (100 g) × 30. Protein per $1 = protein per 3.5 oz (100 g) ÷ price per 3.5 oz (100 g). Serving weights come from USDA FNDDS or are plain weights (3 oz cooked meat or fish). Protein powder is left out on purpose: ERS gave every protein powder the same price, carried over from an instant breakfast mix, so a cost per gram for it would not be a real measurement. How we verify.