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.
US national average prices, 2017–18, per edible gram.
Price per pound, per serving and per gram of protein
| Food, as eaten | Cost of 30 g protein | Protein per $1 | Price per lb | One serving | Calories per 30 g protein |
|---|---|---|---|---|---|
| Chicken thighs (roasted, skin not eaten) | $1.03 | 29 g | $3.83 | 3 oz (85 g): $0.72, 21 g protein | 217 |
| Chicken breast (roasted, skin not eaten) | $1.05 | 29 g | $4.81 | 3 oz (85 g): $0.90, 26 g protein | 160 |
| Pork chops (cooked, lean only) | $1.15 | 26 g | $4.87 | 3 oz (85 g): $0.91, 24 g protein | 183 |
| Ground beef (cooked) | $1.50 | 20 g | $5.81 | 3 oz (85 g): $1.09, 22 g protein | 306 |
| Tofu | $2.51 | 12 g | $2.72 | 3 oz (85 g): $0.51, 6 g protein | 255 |
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
- Calories that come with the protein. Every 30 g of protein comes with 255 calories from tofu and 160 to 306 from meat.
- Which tofu. USDA's general tofu entry, used for the price, has 7 g of protein per 3.5 oz (100 g). Extra-firm tofu has 10 g (USDA SR Legacy, FDC ID 174290). At the same price per pound, 30 g of protein from it would cost $1.80 instead of $2.51.
- Edible weight, not shelf weight. Every price here is per gram of food as you eat it: a chicken thigh is priced for the meat without bone or skin, and ground beef is priced by its cooked weight. Foods that lose weight in cooking or carry bones are not made to look cheaper than they are.
- The year. These are 2017–18 prices. Store brands, sales and region move any single price, so a food that is close to another in this table can swap places at your store.
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.