About Proofsheet
Proofsheet is a free workbench for people who sell food they make: home bakers working under a state cottage food law, small caterers and food trucks. It answers three questions for every recipe: what does one unit cost me, what should I charge, and what has to be on the label. It runs entirely in your browser; recipes and prices are stored on your device, not on our servers.
How the costing works
- Each ingredient has a purchase price and pack size (for example $18.49 for a 25 lb sack). Recipe quantities in any unit are converted to the pack’s unit, so 2¼ cups of flour is costed as 270 g of the sack.
- Weight ↔ weight and volume ↔ volume conversions use exact US customary definitions (1 lb = 453.59237 g; 1 cup = 236.5882365 mL). Volume ↔ weight uses grams per cup for the ingredient; count ↔ weight uses grams per piece (a large egg is 50 g).
- Batch cost = ingredients (sub-recipes such as frostings bring their own ingredients and labour) ÷ (1 − waste %) + hands-on minutes × hourly rate + overhead. Cost per pack = batch cost ÷ packs + packaging.
- Suggested price = cost ÷ (1 − target margin), or cost × (1 + markup), rounded up to the price step you pick so the margin never falls under target.
- When an ingredient price changes, every recipe that uses it, directly or through a sub-recipe, and every open quote is recalculated and compared with the old margin.
How labels are built
- The ingredient statement lists ingredients in descending order of predominance by weight, computed from the recipe (21 CFR 101.4). Sub-recipes can appear as a compound ingredient, “buttercream (powdered sugar, butter…)”, or be merged into one list.
- The “Contains” line covers the nine major food allergens defined by FALCPA and the FASTER Act (sesame since January 1, 2023), naming the specific tree nut, fish or shellfish. Coconut is not treated as a tree nut, following FDA’s Allergen Q&A guidance, Edition 5 (January 2025).
- Net weight is declared in ounces with grams (21 CFR 101.7), rounded down so a label never overstates the contents.
- The state statement and label checklist come from our 50-state dataset (below). Label sizes for Avery 5160, 5163, 5164, 22806, 22817 were taken from Avery’s product pages, with margins and spacing measured from Avery’s official blank templates (2026-10-17).
Data sources and dates
- Cottage food rules: each state’s statute, regulation or agency page, checked 2026-10-17 to 2026-10-25. 31 of 50 states had their statement, sales cap and permit type confirmed on a primary source; the others carry a visible “not fully verified” note listing what could not be confirmed. Every state page lists its sources.
- Densities: Ingredient Weight Chart — King Arthur Baking, fetched 2026-10-18, scaled to grams per US cup; USDA portion weights where the chart has no entry.
- Nutrition estimates: USDA FoodData Central, SR Legacy (April 2018), per 100 g, for 145 starter ingredients (fetched 2026-10-18); rounding per 21 CFR 101.9(c) and Daily Values from 101.9(c)(8)(iv) and (c)(9).
- Allergens: FDA, “Food Allergies” (content current as of March 11, 2026) and FDA’s food allergen labeling Q&A.
The scripts that rebuild the data (scripts/fetch-density.mjs, scripts/fetch-fdc.mjs, scripts/merge-states.mjs) record the source URL and fetch date inside each data file.
Limits
Proofsheet is a set of calculators and checklists, not legal, tax or food-safety advice. Cottage food rules change, counties add their own requirements, and some details could not be confirmed on a state source; check with your state or county agency before you print a large run. Nutrition Facts panels are estimates from ingredient averages, not lab analysis: small businesses are usually exempt from nutrition labeling, but a panel or nutrition claim on the package removes that exemption (21 CFR 101.9(j)(1)). Ingredient prices in the sample recipes are illustrative.
Contact
Found an out-of-date state rule or a wrong conversion? Join the beta list on any page and reply to any email we send; corrections that include a link to the state’s own source are the quickest to apply.