You can make a Nutrition Facts label for your own recipe without a lab: FDA's rule says how the numbers are rounded and how it checks them, not where they come from. The work is six steps. Find your serving size from FDA's reference amount for the food. Weigh every ingredient in a batch. Look up each one per 100 grams in USDA's free FoodData Central, or on your supplier's spec sheet. Add up the batch, then divide by the finished weight, after the water has baked off, to get each nutrient per serving. Round each one the way 21 CFR 101.9 says, and work out the % Daily Value. FDA checks a label by testing 12 packages from a lot: calories, fat, sodium and sugars can't be more than 20% over the label, and fiber and protein can't be under 80% of it. In the example below, a cookie maker works out its chocolate chip cookie label line by line. Below are the steps, the rounding, the example, and a free calculator.
The short version
- Check first whether you need a label at all; small producers often don't.
- Serving size: the reference amount for your food, 30 g for cookies; a cookie of 20 g up to 60 g is one serving.
- Weigh each ingredient in one batch, in grams.
- Look up each ingredient's values per 100 g in USDA FoodData Central, or use the supplier's numbers.
- Batch total ÷ finished batch weight × serving size = each nutrient per serving.
- Calories can come from 4 per gram of protein and carbohydrate and 9 per gram of fat.
- Round each nutrient by FDA's rules, then divide by the Daily Value for the percentage.
- Calories, fat, saturated fat, sodium and sugars must not test more than 20% over the label.
- TaroStack keeps the recipe's weights by version and each batch's actual yield, the two numbers a label rests on. More below.
The steps
| Step | What you do | Where the rule is |
|---|---|---|
| 1. Serving size | Look up your food's reference amount; for pieces, a piece between 67% and 200% of it is one serving | 21 CFR 101.12, 101.9(b) |
| 2. Weigh the batch | Every ingredient, in grams | |
| 3. Values per 100 g | USDA FoodData Central, or your supplier's specification | |
| 4. Per serving | Batch totals ÷ finished weight × serving size | |
| 5. Round | Each nutrient by its own rule | 21 CFR 101.9(c) |
| 6. % Daily Value | The amount ÷ the Daily Value, to the nearest whole percent | 21 CFR 101.9(c)(9), (d)(7) |
Whether you need a label at all is in nutrition label small business exemption: a small producer is often exempt until it makes a claim. The weighing is the same work as costing a recipe, in batch yield formula.
The rounding
| Nutrient | How it's rounded | Daily Value |
|---|---|---|
| Calories | Nearest 5 up to 50, nearest 10 above; under 5 is 0 | |
| Total fat, saturated fat, trans fat | Under 0.5 g is 0; nearest 0.5 g below 5 g; nearest gram above | Fat 78 g; saturated 20 g |
| Cholesterol | Under 2 mg can be 0; 2 to 5 mg "less than 5 mg"; nearest 5 mg | 300 mg |
| Sodium | Under 5 mg is 0; nearest 5 mg up to 140 mg; nearest 10 mg above | 2,300 mg |
| Carbohydrate, fiber, sugars, added sugars, protein | Under 0.5 g can be 0; under 1 g "less than 1 g"; nearest gram | Carbohydrate 275 g; fiber 28 g; added sugars 50 g |
| Vitamin D, calcium, iron, potassium | % Daily Value to the nearest 2% up to 10%, 5% up to 50%, 10% above; under 2% can be 0 | 20 mcg; 1,300 mg; 18 mg; 4,700 mg |
The rules are in 21 CFR 101.9, the reference amounts in 21 CFR 101.12, and the ingredient values in USDA FoodData Central. The % Daily Value can be worked from the rounded amount or the actual one. This is general information, not legal advice.
An example: a chocolate chip cookie
Fox River Cookie Co., a made-up cookie maker in Appleton, Wisconsin, I use in these examples, sells six-cookie packs to a regional grocery chain, and at 130,000 packs a year its buyer wants a Nutrition Facts label. One batch:
| Ingredient | Grams | FoodData Central |
|---|---|---|
| All-purpose flour, enriched | 1,125 | 168894 |
| Butter, salted | 908 | 173410 |
| Granulated sugar | 400 | 169655 |
| Brown sugar | 660 | 168833 |
| Eggs | 400 | 171287 |
| Semisweet chocolate chips | 1,360 | 167976 |
| Salt | 18 | 173468 |
| Baking soda | 12 | 175040 |
The dough weighs 4,883 g; baked, the batch weighs 4,400 g, 110 cookies of 40 g. A 40 g cookie is 133% of the 30 g reference amount, so one cookie is a serving. Each batch total is divided by 110:
| Line | Per cookie, worked out | On the label | % Daily Value |
|---|---|---|---|
| Calories (4-4-9) | 207.1 | 210 | |
| Total fat | 10.85 g | 11g | 14% |
| Saturated fat | 6.57 g | 7g | 35% |
| Trans fat | 0.27 g | 0g | |
| Cholesterol | 31.3 mg | 30mg | 10% |
| Sodium | 154.9 mg | 150mg | 7% |
| Total carbohydrate | 25.26 g | 25g | 9% |
| Dietary fiber | 1.01 g | 1g | 4% |
| Total sugars | 16.23 g | 16g | |
| Added sugars | 16.19 g | Includes 16g Added Sugars | 32% |
| Protein | 2.11 g | 2g | |
| Vitamin D, calcium, potassium | Under 2% of the Daily Value | 0 | 0% |
| Iron | 0.97 mg | 1mg | 6% |
Two details trip people up. The batch is divided by the baked weight, not the dough's: water leaves the oven, the fat and sugar don't. And the chocolate's sugar counts as added sugar, because the chocolate maker added it. Fox River sent one lot to a lab before printing; every result was inside the 120% and 80% rules. How the rest of the label works is in food labeling requirements for small business.
Get the calculator
Download the nutrition label calculator. Three sheets: ingredients, with each one's grams and values per 100 g, totalled for the batch; the label, where you enter the finished weight and serving size and each nutrient comes out rounded with its % Daily Value; and a lab check against the 120% and 80% rules. It's an ordinary Excel file with no macros, and it works in Google Sheets, LibreOffice and Numbers.
Where this stops working
A label is right for one recipe and one yield. Change the chocolate supplier, add 50 g of butter, or let the batch bake drier, and the numbers move. Without the recipe version and the batch weights on record, nobody can say which label matches which cookie.
How TaroStack does it
TaroStack doesn't write nutrition labels. It keeps the two numbers a label rests on.
Recipes by version. The cookie recipe holds every ingredient's weight, and each change is a new version on a date, so you know when the label needs working out again.
The actual yield. Each batch records what it made, and TaroStack shows from your own batch history whether the recipe yields what it claims. If batches come out at 4,250 g instead of 4,400 g, you'll see it.
Which chocolate. Batch records note which lots were consumed, so when a new supplier's chips go in, the batch that used them is on record.
| The job | Recipe card | In TaroStack |
|---|---|---|
| The weights behind the label | A card that's been changed by hand | A recipe version on a date |
| The finished batch weight | Weighed once | Every batch's yield, against the recipe |
| A supplier change | Remembered | The lots each batch used |
Recipes, batches and true cost are on every plan, from $49 a month. The first 30 days are free, with no credit card. If you'd like a hand setting up, ask, and we'll do it with you.
