How to Read Nutrition Labels (and When the App Gets It Wrong)

Every recipe app shows macros. Few admit how approximate those numbers
are. This post is the version of the story we tell friends, not the
version in the marketing page.

If you are tracking macros seriously — for health, performance, or
medical reasons — you should understand where the numbers come from,
how accurate they are, and when to second-guess them.

## How nutrition labels work

The numbers on a packaged-food label come from one of three sources:

1. **Lab analysis** of a representative sample of the product.
2. **Calculated values** from a database like the USDA FoodData Central,
using the ingredient list and known nutrient profiles.
3. **Averaged values** from industry standards for the food category.

FDA rounding rules allow significant slack. Calories can be rounded to
the nearest 5 (under 50) or 10 (over 50). Anything under 5 calories can
be listed as 0. A product claiming "0g trans fat" can contain up to
0.49g per serving. Serving sizes are often set to keep numbers looking
better, not to match what people actually eat.

## How recipe apps calculate macros

Recipe apps, including ours, do not run lab analysis. We sum the
macros of each ingredient using a nutrition database. Specifically:

- **USDA FoodData Central** for whole foods — fruits, vegetables, raw
meat, grains.
- **Brand-specific labels** scraped or licensed for packaged goods.
- **Interpolation** for ingredients not in either, using the closest
match.

This works well enough for most cooking. It also has known limits.

## Where the database falls apart

### Produce varies by season and origin

A winter tomato has roughly 60% the lycopene of a summer tomato, and
noticeably less sugar. USDA gives you one number. Apples range 40 to 95
calories depending on variety and size. "Medium apple" is a fiction.

### Brand variation is huge

Two store-brand peanut butters can differ by 20 calories per serving.
If your recipe uses 1/2 cup of peanut butter, that is 80 calories of
uncertainty right there. We use a generic peanut butter value when the
brand is not specified — your actual jar may differ.

### Cooking changes nutrients

Raw spinach and cooked spinach have different nutrient density per
gram, because water leaves. Most databases list both, but apps often
pick the wrong one. If your recipe says "2 cups spinach" and we used
the raw value when you meant cooked-down-to-two-cups, the vitamin K is
wrong by 5x.

### Oils absorbed during frying

When you fry food, it absorbs some of the oil. How much depends on
temperature, breading, food shape, and timing. The range is 5 to 25% of
the oil used. Recipe apps typically assume a middle value. Your actual
absorption could be half or double.

### Reductions concentrate everything

Reduce a pan of wine and stock by 75% and the salt, sugar, and acid
triple in concentration per serving. If the app calculated macros on
the pre-reduction volume, it is wrong in the direction of
underestimating sodium.

## How wrong is "wrong"?

For most home cooks, our numbers are within 10 to 15% of lab values.
For packaged-food-heavy recipes with specified brands, 5 to 8%.
For heavily reduced sauces, deep-fried items, or produce-heavy recipes
with generic "1 medium" quantities, 20 to 30% is realistic.

That is accurate enough to plan a balanced week. It is not accurate
enough to dose insulin.

## When to trust the app, and when not to

Trust the app for:

- General macro targets (hit roughly 150g protein, roughly 2000 cals).
- Comparing recipes to each other (recipe A is definitely higher-protein
than recipe B).
- Avoiding major category mistakes (a keto cap, a sodium limit).

Do not fully trust the app for:

- Medical dosing (insulin, renal diets, specific micronutrient targets).
- Exact sodium below 300mg per serving.
- Reductions, frying, or wide-category items like "cheese" with no brand.

For those, use a weighed-and-labeled approach: measure the exact
ingredients you used, from their exact labels, and sum them by hand or
with a dedicated lab-grade tracker.

## What we are doing about it

Inside Recipe Manager's nutrition panel, we show confidence alongside
each macro. Green means the ingredient was matched to a specific brand
or a well-characterized USDA entry. Yellow means we interpolated.
Red means we flagged a known weak spot — heavy reduction, deep fry,
ambiguous produce size.

You can also override any ingredient with a specific brand label from
your pantry. Once you do, the saved version uses your exact numbers
for that ingredient forever.

See the nutrition feature in-app, or browse /explore for recipes with
high-confidence macros that are safe to lean on.

The honest summary: nutrition labels are estimates, nutrition databases
are estimates, and our numbers are estimates of estimates. They are
useful, and they are not the truth. Treat them accordingly.