Skip to main content

Methodology

Menu Pricing Planner methodology

Turn ingredient yield, batch labour and overhead into a rounded menu price and contribution per portion.

Educational only: Business decision support, not accounting, tax or legal advice.

Privacy: Calculations run locally; Margin101 does not receive your commercial inputs.

Update policy: Reviewed when formulas or official dependencies change.

Scope: Market-neutral small-business planning using your own assumptions.

1. Formulas and units

Food Cost Per Portion Ex Tax
foodCostPerPortionExTax = ingredient cost / saleable portions

Where

saleablePortions
Saleable portions (operational units)Source: Business record
foodCostPerPortionExTax
Food Cost Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
Loaded Cost Per Portion Ex Tax
loadedCostPerPortionExTax = (ingredient + labour + overhead) / saleable portions

Where

saleablePortions
Saleable portions (operational units)Source: Business record
loadedCostPerPortionExTax
Loaded Cost Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
Target Price Ex Tax
targetPriceExTax = selected cost basis / selected target rate

Where

taxRate
Indirect tax rate (decimal rate)Source: Business record
targetRate
Target rate (decimal rate)Source: Business record
targetPriceExTax
Target Price Ex Tax (currency units, ex tax)Source: Calculated output
Rounded Price Ex Tax
roundedPriceExTax = target price rounded up to the entered increment

Where

targetPriceExTax
Target Price Ex Tax (currency units, ex tax)Source: Calculated output
roundedPriceExTax
Rounded Price Ex Tax (currency units, ex tax)Source: Calculated output
Rounded Price Inc Tax
roundedPriceIncTax = rounded price ร— (1 + entered tax rate)

Where

taxRate
Indirect tax rate (decimal rate)Source: Business record
roundedPriceExTax
Rounded Price Ex Tax (currency units, ex tax)Source: Calculated output
roundedPriceIncTax
Rounded Price Inc Tax (currency units, ex tax)Source: Calculated output
Achieved Food Cost Rate
achievedFoodCostRate = food cost per portion / rounded price

Where

taxRate
Indirect tax rate (decimal rate)Source: Business record
foodCostPerPortionExTax
Food Cost Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
roundedPriceExTax
Rounded Price Ex Tax (currency units, ex tax)Source: Calculated output
achievedFoodCostRate
Achieved Food Cost Rate (decimal rate)Source: Calculated output
Gross Profit Per Portion Ex Tax
grossProfitPerPortionExTax = rounded price โˆ’ food cost per portion

Where

foodCostPerPortionExTax
Food Cost Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
roundedPriceExTax
Rounded Price Ex Tax (currency units, ex tax)Source: Calculated output
grossProfitPerPortionExTax
Gross Profit Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
Contribution Per Portion Ex Tax
contributionPerPortionExTax = rounded price โˆ’ loaded cost per portion

Where

loadedCostPerPortionExTax
Loaded Cost Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
roundedPriceExTax
Rounded Price Ex Tax (currency units, ex tax)Source: Calculated output
contributionPerPortionExTax
Contribution Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
Achieved Contribution Margin
achievedContributionMargin = contribution per portion / rounded price

Where

roundedPriceExTax
Rounded Price Ex Tax (currency units, ex tax)Source: Calculated output
contributionPerPortionExTax
Contribution Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
achievedContributionMargin
Achieved Contribution Margin (decimal rate)Source: Calculated output
Price At Target Minus Five Points Ex Tax
priceAtTargetMinusFivePointsExTax = selected cost basis / target shifted down five percentage points

Where

targetPriceExTax
Target Price Ex Tax (currency units, ex tax)Source: Calculated output
priceAtTargetMinusFivePointsExTax
Price At Target Minus Five Points Ex Tax (currency units, ex tax)Source: Calculated output
Price At Target Plus Five Points Ex Tax
priceAtTargetPlusFivePointsExTax = selected cost basis / target shifted up five percentage points

Where

targetPriceExTax
Target Price Ex Tax (currency units, ex tax)Source: Calculated output
priceAtTargetPlusFivePointsExTax
Price At Target Plus Five Points Ex Tax (currency units, ex tax)Source: Calculated output

Money inputs and outputs use the currency selected in the scenario without changing the canonical methodology. Rates, margins, utilisation and buffers are entered as percentages and converted to decimal values for calculation.

2. Worked example

Input assumptions

The worked rows below come directly from the exact engine and visible default fixture.

Purchased ingredient quantity
10 purchased quantity units
Purchased ingredient cost
80 currency units/planning period, ex tax
Ingredient quantity used
2 purchased quantity units used in recipe batch
Usable yield
0.9 proportion of purchased quantity remaining usable
Batch labour cost
30 currency units/planning period, ex tax
Batch overhead allocation
10 currency units/planning period, ex tax
Saleable portions
10 whole product units
Indirect tax rate
0 proportion of ex-tax menu price charged as indirect tax
Price rounding increment
0.5 currency units/menu item, ex tax
Pricing target
0 declared input unit
Target rate
0.3 proportion of ex-tax menu price retained as gross profit

Calculation and outputs

  1. foodCostPerPortionExTax

    foodCostPerPortionExTax = ingredient cost / saleable portions
    Purchased ingredient quantity
    10 purchased quantity units
    Purchased ingredient cost
    80 currency units/planning period, ex tax
    Ingredient quantity used
    2 purchased quantity units used in recipe batch
    Batch labour cost
    30 currency units/planning period, ex tax
    Saleable portions
    10 whole product units
    loadedCostPerPortionExTax
    5.777778 money
    achievedFoodCostRate
    0.296296 percent

    Engine result: 1.777778 money

  2. loadedCostPerPortionExTax

    loadedCostPerPortionExTax = (ingredient + labour + overhead) / saleable portions
    Purchased ingredient quantity
    10 purchased quantity units
    Purchased ingredient cost
    80 currency units/planning period, ex tax
    Ingredient quantity used
    2 purchased quantity units used in recipe batch
    Batch labour cost
    30 currency units/planning period, ex tax
    Batch overhead allocation
    10 currency units/planning period, ex tax
    Saleable portions
    10 whole product units

    Engine result: 5.777778 money

  3. targetPriceExTax

    targetPriceExTax = selected cost basis / selected target rate
    Purchased ingredient cost
    80 currency units/planning period, ex tax
    Usable yield
    0.9 proportion of purchased quantity remaining usable
    Batch labour cost
    30 currency units/planning period, ex tax
    Indirect tax rate
    0 proportion of ex-tax menu price charged as indirect tax
    Pricing target
    0 declared input unit
    Target rate
    0.3 proportion of ex-tax menu price retained as gross profit
    foodCostPerPortionExTax
    1.777778 money
    loadedCostPerPortionExTax
    5.777778 money
    achievedFoodCostRate
    0.296296 percent
    priceAtTargetMinusFivePointsExTax
    7.111111 money
    priceAtTargetPlusFivePointsExTax
    5.079365 money

    Engine result: 5.925926 money

  4. roundedPriceExTax

    roundedPriceExTax = target price rounded up to the entered increment
    Price rounding increment
    0.5 currency units/menu item, ex tax
    Pricing target
    0 declared input unit
    Target rate
    0.3 proportion of ex-tax menu price retained as gross profit
    targetPriceExTax
    5.925926 money
    roundedPriceIncTax
    6 money
    priceAtTargetMinusFivePointsExTax
    7.111111 money
    priceAtTargetPlusFivePointsExTax
    5.079365 money

    Engine result: 6 money

  5. roundedPriceIncTax

    roundedPriceIncTax = rounded price ร— (1 + entered tax rate)
    Usable yield
    0.9 proportion of purchased quantity remaining usable
    Indirect tax rate
    0 proportion of ex-tax menu price charged as indirect tax
    Price rounding increment
    0.5 currency units/menu item, ex tax
    Target rate
    0.3 proportion of ex-tax menu price retained as gross profit
    targetPriceExTax
    5.925926 money
    roundedPriceExTax
    6 money
    achievedFoodCostRate
    0.296296 percent
    priceAtTargetMinusFivePointsExTax
    7.111111 money
    priceAtTargetPlusFivePointsExTax
    5.079365 money

    Engine result: 6 money

  6. achievedFoodCostRate

    achievedFoodCostRate = food cost per portion / rounded price
    Purchased ingredient cost
    80 currency units/planning period, ex tax
    Batch labour cost
    30 currency units/planning period, ex tax
    Price rounding increment
    0.5 currency units/menu item, ex tax
    foodCostPerPortionExTax
    1.777778 money
    loadedCostPerPortionExTax
    5.777778 money
    targetPriceExTax
    5.925926 money
    roundedPriceExTax
    6 money
    roundedPriceIncTax
    6 money
    grossProfitPerPortionExTax
    4.222222 money
    contributionPerPortionExTax
    0.222222 money
    priceAtTargetMinusFivePointsExTax
    7.111111 money
    priceAtTargetPlusFivePointsExTax
    5.079365 money

    Engine result: 0.296296 percent

  7. grossProfitPerPortionExTax

    grossProfitPerPortionExTax = rounded price โˆ’ food cost per portion
    Purchased ingredient cost
    80 currency units/planning period, ex tax
    Batch labour cost
    30 currency units/planning period, ex tax
    Price rounding increment
    0.5 currency units/menu item, ex tax
    foodCostPerPortionExTax
    1.777778 money
    loadedCostPerPortionExTax
    5.777778 money
    targetPriceExTax
    5.925926 money
    roundedPriceExTax
    6 money
    roundedPriceIncTax
    6 money
    achievedFoodCostRate
    0.296296 percent
    contributionPerPortionExTax
    0.222222 money
    priceAtTargetMinusFivePointsExTax
    7.111111 money
    priceAtTargetPlusFivePointsExTax
    5.079365 money

    Engine result: 4.222222 money

  8. contributionPerPortionExTax

    contributionPerPortionExTax = rounded price โˆ’ loaded cost per portion
    Purchased ingredient cost
    80 currency units/planning period, ex tax
    Batch labour cost
    30 currency units/planning period, ex tax
    Price rounding increment
    0.5 currency units/menu item, ex tax
    foodCostPerPortionExTax
    1.777778 money
    loadedCostPerPortionExTax
    5.777778 money
    targetPriceExTax
    5.925926 money
    roundedPriceExTax
    6 money
    roundedPriceIncTax
    6 money
    achievedFoodCostRate
    0.296296 percent
    grossProfitPerPortionExTax
    4.222222 money
    priceAtTargetMinusFivePointsExTax
    7.111111 money
    priceAtTargetPlusFivePointsExTax
    5.079365 money

    Engine result: 0.222222 money

  9. achievedContributionMargin

    achievedContributionMargin = contribution per portion / rounded price
    Price rounding increment
    0.5 currency units/menu item, ex tax
    foodCostPerPortionExTax
    1.777778 money
    loadedCostPerPortionExTax
    5.777778 money
    targetPriceExTax
    5.925926 money
    roundedPriceExTax
    6 money
    roundedPriceIncTax
    6 money
    grossProfitPerPortionExTax
    4.222222 money
    contributionPerPortionExTax
    0.222222 money
    priceAtTargetMinusFivePointsExTax
    7.111111 money
    priceAtTargetPlusFivePointsExTax
    5.079365 money

    Engine result: 0.037037 percent

  10. priceAtTargetMinusFivePointsExTax

    priceAtTargetMinusFivePointsExTax = selected cost basis / target shifted down five percentage points
    Purchased ingredient cost
    80 currency units/planning period, ex tax
    Batch labour cost
    30 currency units/planning period, ex tax
    Pricing target
    0 declared input unit
    Target rate
    0.3 proportion of ex-tax menu price retained as gross profit
    foodCostPerPortionExTax
    1.777778 money
    loadedCostPerPortionExTax
    5.777778 money
    targetPriceExTax
    5.925926 money
    achievedFoodCostRate
    0.296296 percent
    priceAtTargetPlusFivePointsExTax
    5.079365 money

    Engine result: 7.111111 money

  11. priceAtTargetPlusFivePointsExTax

    priceAtTargetPlusFivePointsExTax = selected cost basis / target shifted up five percentage points
    Purchased ingredient cost
    80 currency units/planning period, ex tax
    Batch labour cost
    30 currency units/planning period, ex tax
    Pricing target
    0 declared input unit
    Target rate
    0.3 proportion of ex-tax menu price retained as gross profit
    foodCostPerPortionExTax
    1.777778 money
    loadedCostPerPortionExTax
    5.777778 money
    targetPriceExTax
    5.925926 money
    achievedFoodCostRate
    0.296296 percent
    priceAtTargetMinusFivePointsExTax
    7.111111 money

    Engine result: 5.079365 money

Example

The worked rows below come directly from the exact engine and visible default fixture.

Food Cost Per Portion Ex Tax
1.78 currency units
Loaded Cost Per Portion Ex Tax
5.78 currency units
Target Price Ex Tax
5.93 currency units
Rounded Price Ex Tax
6 currency units
Rounded Price Inc Tax
6 currency units
Achieved Food Cost Rate
29.6%
Gross Profit Per Portion Ex Tax
4.22 currency units
Contribution Per Portion Ex Tax
0.22 currency units
Achieved Contribution Margin
3.7%
Price At Target Minus Five Points Ex Tax
7.11 currency units
Price At Target Plus Five Points Ex Tax
5.08 currency units

The exact engine-derived outputs are shown in the labelled rows below.

Interpretation

Use the rounded price as a cost-protection boundary, then test whether portion, value and market positioning support it.

3. Validation and boundary checks

  • All values must be finite and inside the visible validation boundaries.
  • Rates are entered as percentages and calculations retain decimal precision.
  • Money and operational records use one consistent period and basis.
Purchased ingredient quantity minimum
purchasedQuantity โ‰ฅ 0.01 purchased quantity units โ€” A lower value is rejected before calculation.
Purchased ingredient quantity maximum
purchasedQuantity โ‰ค 100,000,000 purchased quantity units โ€” A higher value is rejected before calculation.
Purchased ingredient cost minimum
purchasedCostExTax โ‰ฅ 0 currency units/planning period, ex tax โ€” A lower value is rejected before calculation.
Purchased ingredient cost maximum
purchasedCostExTax โ‰ค 10,000,000 currency units/planning period, ex tax โ€” A higher value is rejected before calculation.
Ingredient quantity used minimum
quantityUsed โ‰ฅ 0 purchased quantity units used in recipe batch โ€” A lower value is rejected before calculation.
Ingredient quantity used maximum
quantityUsed โ‰ค 100,000,000 purchased quantity units used in recipe batch โ€” A higher value is rejected before calculation.
Usable yield minimum
usableYieldRate โ‰ฅ 0 proportion of purchased quantity remaining usable โ€” A lower value is rejected before calculation.
Usable yield maximum
usableYieldRate โ‰ค 1 proportion of purchased quantity remaining usable โ€” A higher value is rejected before calculation.
Batch labour cost minimum
batchLabourExTax โ‰ฅ 0 currency units/planning period, ex tax โ€” A lower value is rejected before calculation.
Batch labour cost maximum
batchLabourExTax โ‰ค 10,000,000 currency units/planning period, ex tax โ€” A higher value is rejected before calculation.
Batch overhead allocation minimum
batchOverheadExTax โ‰ฅ 0 currency units/planning period, ex tax โ€” A lower value is rejected before calculation.
Batch overhead allocation maximum
batchOverheadExTax โ‰ค 10,000,000 currency units/planning period, ex tax โ€” A higher value is rejected before calculation.
Saleable portions minimum
saleablePortions โ‰ฅ 1 whole product units โ€” A lower value is rejected before calculation.
Saleable portions maximum
saleablePortions โ‰ค 1,000,000 whole product units โ€” A higher value is rejected before calculation.
Indirect tax rate minimum
taxRate โ‰ฅ 0 proportion of ex-tax menu price charged as indirect tax โ€” A lower value is rejected before calculation.
Indirect tax rate maximum
taxRate โ‰ค 1 proportion of ex-tax menu price charged as indirect tax โ€” A higher value is rejected before calculation.
Price rounding increment minimum
roundingIncrement โ‰ฅ 0 currency units/menu item, ex tax โ€” A lower value is rejected before calculation.
Price rounding increment maximum
roundingIncrement โ‰ค 10,000,000 currency units/menu item, ex tax โ€” A higher value is rejected before calculation.
Pricing target minimum
targetMode โ‰ฅ 0 โ€” A lower value is rejected before calculation.
Pricing target maximum
targetMode โ‰ค 1 โ€” A higher value is rejected before calculation.
Target rate minimum
targetRate โ‰ฅ 0 proportion of ex-tax menu price retained as gross profit โ€” A lower value is rejected before calculation.
Target rate maximum
targetRate โ‰ค 1 proportion of ex-tax menu price retained as gross profit โ€” A higher value is rejected before calculation.

4. Assumptions and source classification

  • Demand, lead times, costs, tax and targets are supplied by the user.
  • No jurisdiction, supplier service level, industry benchmark or forecast is embedded.
  • The engine retains full precision and display formatting never feeds back into calculation.

This planner has no current policy-data dependency. Its commercial assumptions are user supplied. Registered family-level regression suites exercise the shared business-logic engine and worked-result reconciliation.

5. Limitations

  • Results depend on the quality and timing alignment of entered records.
  • The model does not replace inventory, accounting, tax, legal or financial advice.
  • Yield, labour, overhead, target rate, tax rate and rounding increment are editable assumptions; no wage rule, tax treatment, service charge, tip policy or hospitality benchmark is embedded.
  • The result does not assess menu-labelling, food-safety, licensing or delivery-platform obligations.

This is educational decision support, not tax, accounting, legal or financial advice. Check the treatment of your actual transactions under the rules that apply to your business and seek qualified advice where appropriate.

6. Update and evidence policy

Registered family-level suites test formula invariants and example reconciliation; the release ledger records that coverage without claiming a separate oracle for every line of public copy. There is no official threshold or benchmark to refresh for this planner. Commercial inputs remain user-supplied because they vary by business and contract.

Change history

  1. : Initial public release of the Menu Pricing planner and methodology.

Guides to interpret the decision and its assumptions.

Return to the planner