{{ resultsReady ? 'Food cost per serving' : 'Check recipe inputs' }}
{{ resultsReady ? money(values.per_serving) : '—' }}

{{ summaryLine }}

Target price{{ resultsReady ? money(values.target_price) : '—' }} BasisFood only · USD

{{ summaryAnnouncement }}

Recipe ingredient and portion inputs

{{ fieldIssue('recipe_name') }}

{{ fieldIssue('servings') }}

Ingredients:
Use edible recipe quantities after trim or cooking loss. Purchase and recipe amounts must share a measurement dimension.

{{ fieldIssue('ingredients') }}

{{ fieldIssue('ingredients.' + index) }}

{{ fieldIssue('ingredients.' + index + '.name') }}

{{ fieldIssue('ingredients.' + index + '.price') }}

{{ fieldIssue('ingredients.' + index + '.pack') }}

{{ fieldIssue('ingredients.' + index + '.quantity') }}

{{ fieldIssue('ingredients.' + index + '.units') }}

{{ fieldIssue('ingredients.' + index + '.yield_percent') }}

{{ unitNotice }}

{{ params.target_percent }}%
Share of selling price allocated to food. The 25% example is a scenario, not a recommended industry target.
%

{{ fieldIssue('target_percent') }}

Adds a cost allowance after preparation yield. Zero leaves the recipe cost unchanged.
%

{{ fieldIssue('waste_percent') }}

Leave blank to cost the recipe without comparing an existing price.

Price comparison unavailable: enter a price from $0.01 to $1,000,000, or clear this optional field. Recipe costing remains available.

{{ exportStatus.cost_card }}

{{ computation.normalizedInputs.recipe_name }}
{{ row[0] }}{{ money(row[1]) }}

{{ computation.normalizedInputs.servings }} servings · {{ percent(computation.normalizedInputs.target_percent) }} target food cost · {{ percent(computation.normalizedInputs.waste_percent) }} extra cost allowance.

How this cost is built

Each line uses pack price × usable recipe quantity ÷ (pack quantity × yield fraction), in matching units. Ingredient costs are added, then the extra waste allowance is applied. Divide by finished servings for portion cost, then by the target fraction for a selling-price estimate.

Food only: excludes labor, packaging, overhead, sales tax and profit requirements. The amount left after food is not net profit. No yield byproduct credits or mass-to-volume density assumptions are included. Money is displayed to cents; CSV keeps calculation precision. A zero-cost recipe has no meaningful target margin.

Method: BC Cook Articulation Committee, BCcampus (2015, CC BY 4.0). Reviewed September 9, 2026.

Yield testing and edible-portion costStandard recipe and portion costing

{{ exportStatus.ingredientLedger }}

IngredientPack price (USD)Pack quantityUsable quantityUnitYield (%)Purchased quantity neededTrim quantityLine cost (USD)Yield uplift (USD)Cost share (%)Copy
{{ row.name }}{{ money(row.pack_price) }}{{ number(row.pack) }}{{ number(row.quantity) }}{{ row.unit }}{{ percent(row.yield_percent) }}{{ number(row.purchased) }}{{ number(row.trim) }}{{ money(row.cost) }}{{ money(row.yield_uplift) }}{{ percent(row.share_percent) }}

{{ exportStatus.priceComparison }}

ScenarioPrice (USD)Food cost (%)Left after food (USD)Margin after food (%)Copy
{{ row.name }}{{ money(row.price) }}{{ percent(row.food_cost_percent) }}{{ money(row.after_food) }}{{ percent(row.margin_percent) }}

{{ exportStatus.ingredient_costs }}

Chart unavailable. The ingredient ledger still contains every cost.

Trimming a cheaper ingredient can erase its price advantage. Recipe food cost measures the cost of supplying the usable ingredients in a batch, then divides that cost among finished portions. It supports supplier comparisons, checks on portion size, and menu-price reviews when ingredient prices change.

The amount bought is the as-purchased quantity, often shortened to AP. The edible portion, or EP, is the usable amount left after the preparation being costed. Usable yield expresses how much of the purchased amount remains. An 80% yield means that 1 kg purchased provides 800 g usable, so the cost per usable kilogram is higher than the invoice price per kilogram.

For the same usable ingredient, these hypothetical purchases show why purchase price alone can give the wrong comparison.

Illustrative purchase prices and yields compared on the cost of one usable kilogram.
Purchase option Price per purchased kg Usable yield Cost per usable kg
Produce requiring trim $4.00 USD 80% $5.00 USD
Ready-prepared equivalent $4.80 USD 100% $4.80 USD

The ready-prepared option has a higher purchase price but a lower ingredient cost for the same usable weight. Preparation labor could change the full production-cost comparison further, but it is a separate expense. The yield assumption must describe the ingredient and preparation actually used, rather than a convenient percentage copied from another recipe.

Food consumed and cash spent on supplies are also different amounts. At full usable yield, half a pack used in a batch contributes half the pack's cost, even when a whole pack must be bought. The unused remainder is not automatically a cost of that recipe or a waste loss.

Ingredient yield is different from the number of finished servings. A batch divided into more equal portions has a lower cost per portion because each portion is smaller. Producing more portions of the original size requires more ingredients. A useful cost record therefore describes both the ingredient quantities and the portion count those quantities actually produce.

Complete dish costing includes accompaniments, sauces, cooking oil and garnishes as well as the main ingredient. A separate allowance can represent additional service waste or uncertainty, but losses already included in preparation yields should not be charged again.

Food cost percentage is the share of selling price assigned to food. It is not a markup percentage added to ingredient cost. For an unchanged portion cost, a lower target food cost percentage requires a higher selling price. That price remains a food-cost scenario, not proof of profitability: the money left after food must still cover non-food expenses and the business's profit requirements.

How to Use This Tool:

Gather current supplier prices and usable ingredient quantities for one batch. The opening Carrot soup recipe has illustrative prices. All money is in USD, with no currency conversion.

  1. Enter a Recipe name and the Finished servings made by your ingredient quantities. Changing servings divides the same batch; it does not scale ingredients.
  2. Open each ingredient or choose Add ingredient. Enter the whole purchase-pack price and quantity, the usable recipe quantity and its usable yield. Purchase and usable amounts must both measure mass, volume or item count.
    Changing between compatible units converts the amount. Crossing mass, volume or count clears it. Enter the new quantity and match the other unit to the same measurement dimension.
  3. Choose Target food cost as the share of selling price assigned to food. The initial 25% is a scenario, not an industry recommendation. Under Advanced, add an Extra waste allowance only for loss not already covered by yield. Enter a before-tax Current selling price (USD) for comparison, or leave it blank.
  4. Check Food cost per serving and the quantities and costs in the Ingredient ledger against invoices and measured yields. Check recipe inputs means a required field needs correction; incomplete recipes produce no partial total. An invalid current selling price removes only its comparison and can be corrected or cleared. Load example recipe replaces an unreadable saved recipe and all settings with the soup example.

Interpreting Results:

Cost before yield loss values the usable quantities as though every ingredient had 100% yield. Yield-loss cost uplift is the extra cost caused by the entered preparation losses. That uplift is already included in the Usable ingredient subtotal; adding it to the subtotal again would double-count it.

A result can be available even when an ingredient has no assigned cost. New ingredient rows begin with zero price and zero usable quantity, and both values are allowed. Before relying on the total, check zero-cost lines and compare the largest costs with your invoices and measured yields.

Target selling price per serving is the price implied by your chosen food-cost share. In Price comparison, both Left after food and Margin after food subtract the allowance-adjusted portion cost, but neither is net profit. Labor, packaging, overhead, sales tax and profit requirements are not calculated. Use the comparison alongside a separate review of those expenses; these are planning estimates, not financial or accounting advice.

Ingredient cost shares and the chart use the yield-adjusted subtotal before extra waste. The chart combines costs beyond the ten largest as Remaining ingredients; the ledger keeps every ingredient for checking.

Technical Details:

Usable-ingredient cost follows an inverse-yield relationship. Supplying a fixed usable amount requires more purchased material as yield falls. The purchase price per unit is held constant, and all of that purchased cost is assigned to the usable ingredient without credits for recovered byproducts.

Usable ingredients and batch cost

For ingredient i, first calculate purchased quantity needed, Ri, then its line cost, Ci. Purchase-pack and usable quantities must be converted to matching units before division.

Ri = Qiyi Ci = Pi×RiAi = Pi×QiAi×yi
Symbols used to calculate purchased quantity and yield-adjusted ingredient cost.
SymbolMeaningUnit or basis
PiPurchase-pack priceUSD for the stated pack
AiPurchase-pack quantitykg, L or each after conversion
QiUsable recipe quantityThe same unit as the pack quantity
yiUsable yield expressed as a fractionEntered yield percentage divided by 100

The remaining ingredient calculations identify the quantity lost, the cost without yield loss and the yield-related cost uplift. Here Ti is trim quantity, C0,i is cost before yield loss, and Ui is yield uplift in USD.

Ti= Ri−Qi C0,i= Pi×QiAi Ui= Ci−C0,i

Trim quantity represents all quantity lost under the entered yield assumption, including cooking loss when that is part of the yield. It is not necessarily recoverable solid trim. The batch's cost before yield loss is the sum of the full-yield line costs. Subtracting it from the usable ingredient subtotal gives the batch's yield-loss cost uplift.

For a hypothetical $8 pack containing 2 kg, a recipe needing 500 g usable at 50% yield requires 1 kg purchased. The line cost is $4, compared with $2 at full yield, giving $2 of yield uplift and 0.5 kg of quantity loss. A 50% yield therefore doubles this ingredient's cost for the same usable quantity; it does not merely add 50%.

Sum the yield-adjusted line costs, apply the extra cost allowance, then divide by servings and the target food-cost fraction. In these equations, S is the usable ingredient subtotal, W is the extra allowance in USD, B is total batch cost, c is cost per serving and pt is target selling price per serving.

S= ∑iCi W= S×w100 B=S+W c=BN pt= ct/100

N is Finished servings, w is the entered Extra waste allowance percentage, and t is the entered Target food cost percentage. Both percentages are divided by 100 before use. The extra allowance increases cost only: it does not increase the ledger's purchased quantities or reduce the serving count. A 10% allowance adds 10% to the subtotal; it is not a physical-loss calculation that divides by 90%.

For a positive ingredient subtotal, each ingredient's cost share, Hi, is its yield-adjusted line cost divided by that subtotal. The extra allowance is not part of this percentage.

Hi= 100×CiS forS>0

Selling-price comparison

For a positive selling price p per serving, food cost percentage F compares portion cost with revenue. The amount left after food, L, is in USD per serving, and the margin after food, M, expresses that remainder as a percentage of price.

F=100×cp L=p−c M=100−F

For a positive-cost batch, the target-price comparison reports the entered target percentage and a margin of 100% minus that percentage. At a 100% target, price equals portion cost and nothing remains after food. A valid current price below portion cost is still compared: food cost exceeds 100%, and both the dollar remainder and margin are negative.

An exactly zero-cost batch produces a $0 target price and dashes for the target food-cost and margin percentages, because that scenario has no positive selling-price denominator. All ingredient cost shares are then shown as 0%. A valid positive current price can still be compared with the zero cost, producing 0% food cost and 100% margin after food, without accounting for any excluded expenses.

Units and quantity basis

Each ingredient's purchase and recipe quantities must both measure mass, both measure volume, or both count items. Different ingredients may use different dimensions. Ledger quantities are expressed in kilograms, litres or individual items using the following factors.

Conversion factors for one input unit to the unit used in the ingredient ledger.
Input unitValue of one unitLedger unit
g0.001kg
kg1kg
oz0.028349523125kg
lb0.45359237kg
mL0.001L
L1L
US tsp0.00492892159375L
US tbsp0.01478676478125L
US fl oz0.0295735295625L
US cup0.2365882365L
US pt0.473176473L
US qt0.946352946L
US gal3.785411784L
each1each
dozen12each

The US volume measures use US customary liquid relationships, not Imperial measures or a different measuring-cup convention. Ounces by weight and fluid ounces are not interchangeable. No ingredient density or item weight is assumed, so a flour weight cannot be paired with a cup quantity, and an egg count cannot be paired with a weight.

Usable quantity and yield must refer to the same preparation stage. The accepted yield range describes unchanged quantity or a loss, not an increase above the purchased quantity. No expansion-yield calculation is provided.

Purchased requirements are proportional amounts, not rounded shopping quantities. They can exceed one pack or include fractions of a pack or an item. There is no whole-pack ceiling, inventory deduction or automatic bulk-price discount. Actual procurement spending may therefore differ from the ingredient cost allocated to the recipe.

Accepted values

All endpoints below are included. Numeric entries must be finite numbers; blank required fields are not treated as zero. Recipe names must contain 1 to 80 characters after surrounding spaces are removed, and ingredient names must contain 1 to 60.

Inclusive input limits for recipe costing and the optional selling-price comparison.
InputMinimumMaximumRequirement
Ingredient rows130Every row must be valid
Finished servings110,000Whole number
Purchase-pack price (USD)01,000,000Decimals allowed
Purchase-pack quantity0.0000011,000,000,000In the selected purchase unit
Usable recipe quantity01,000,000,000In the selected recipe unit
Usable yield (%)0.01100Decimals allowed
Target food cost (%)1100Decimals allowed
Extra waste allowance (%)0100Decimals allowed
Current selling price (USD)0.011,000,000Optional; may be left blank

Pack and usable quantities accept decimals even when the unit is each or dozen. A zero price or zero usable quantity gives a zero line cost, but does not waive the requirements for a valid name, positive pack quantity, compatible units and an allowed yield.

Precision and price rounding

Calculations use unrounded values for line costs, totals and pricing. Money is displayed to cents, while quantities and percentages show up to four decimal places. Rounded line amounts may therefore differ slightly from a displayed total when added by hand. Cent rounding is for display, not a pricing policy that always rounds up or selects a menu-price ending. Re-entering a cent-rounded price can produce a slightly different food-cost percentage. A displayed $0.00 may also represent a small positive cost; the zero-cost percentage rule applies only when the calculated batch cost is exactly zero.

Privacy Notes:

Recipe arithmetic runs in your browser. The page address can carry recipe names, ingredient details and pricing assumptions to restore them, so sharing it may disclose confidential recipe or supplier information. Chart support loads from an external provider when needed; local calculation does not imply a page with no network activity.

Worked Examples:

Carrot soup with a service allowance

The example recipe uses 800 g of usable carrots from a $5, 1 kg pack at 80% yield, 1 L of stock from a $4, 2 L pack, and 100 mL of oil from a $10, 1 L pack. Stock and oil both use 100% yield. Their line costs are $5, $2 and $1, making an $8 ingredient subtotal. Four finished servings with no extra allowance cost $2 each, and a 25% food-cost target gives an $8 target selling price. Adding a 10% Extra waste allowance adds $0.80 without changing the ingredient quantities. The batch becomes $8.80, the portion cost becomes $2.20 and the target price becomes $8.80. At a $10 Current selling price, food cost is 22%, leaving $7.80 per serving and a 78% margin after food. Those are assumed costs and prices to compare, not a recommendation to sell the soup for either amount.

References: