Methodology
Menu Pricing Planner methodology
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
foodCostPerPortionExTax = ingredient cost / saleable portionsWhere
- saleablePortions
- Saleable portions (operational units)Source: Business record
- foodCostPerPortionExTax
- Food Cost Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
loadedCostPerPortionExTax = (ingredient + labour + overhead) / saleable portionsWhere
- saleablePortions
- Saleable portions (operational units)Source: Business record
- loadedCostPerPortionExTax
- Loaded Cost Per Portion Ex Tax (currency units, ex tax)Source: Calculated output
targetPriceExTax = selected cost basis / selected target rateWhere
- 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
roundedPriceExTax = target price rounded up to the entered incrementWhere
- targetPriceExTax
- Target Price Ex Tax (currency units, ex tax)Source: Calculated output
- roundedPriceExTax
- Rounded Price Ex Tax (currency units, ex tax)Source: Calculated output
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
achievedFoodCostRate = food cost per portion / rounded priceWhere
- 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
grossProfitPerPortionExTax = rounded price โ food cost per portionWhere
- 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
contributionPerPortionExTax = rounded price โ loaded cost per portionWhere
- 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
achievedContributionMargin = contribution per portion / rounded priceWhere
- 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
priceAtTargetMinusFivePointsExTax = selected cost basis / target shifted down five percentage pointsWhere
- 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
priceAtTargetPlusFivePointsExTax = selected cost basis / target shifted up five percentage pointsWhere
- 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
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
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
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
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
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
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
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
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
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
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
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
- : Initial public release of the Menu Pricing planner and methodology.
Related reading
Guides to interpret the decision and its assumptions.
- Restaurant Economics: From Menu Price to Operating Profit
Trace menu price through contribution, operating capacity and period costs without confusing a dish margin with operating profit.
Read guide