{
  "slug": "menu-engineering-margin",
  "title": "Menu Engineering Margin Calculator",
  "heading": "Menu Engineering Margin Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/menu-engineering-margin",
  "summary": "Classify a dish as Star, Plowhorse, Puzzle, or Dog by margin and popularity.",
  "description": "Menu engineering is the classic Kasavana-Smith method for deciding what to promote, reprice, or cut. Every item gets scored on two axes: contribution margin in dollars (price minus plate cost) versus the average margin across your menu, and unit sales versus average popularity. Stars are high margin and high popularity — protect and feature these. Plowhorses are popular but low margin — they drive traffic but you need to either raise price slightly or cheapen the recipe without hurting quality. Puzzles are high margin but low popularity — reposition on the menu, rename, or feature as a special to build volume. Dogs are low margin and low popularity — cut them unless they serve a strategic purpose. This calculator runs one item against your menu averages and tells you which quadrant it lands in, plus the dollar margin gap versus your average performer, so you know exactly how much room there is to adjust price or cost.",
  "formula": "Contribution margin = price − plate cost. Compare to menu average margin and average units sold to place in quadrant.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=menu-engineering-margin",
  "inputs": [
    {
      "id": "itemPrice",
      "label": "Item price",
      "kind": "number",
      "hint": null,
      "default": 16,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "itemCost",
      "label": "Item plate cost",
      "kind": "number",
      "hint": null,
      "default": 5,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "itemUnits",
      "label": "Units sold last period",
      "kind": "number",
      "hint": null,
      "default": 240,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "avgMargin",
      "label": "Menu average margin",
      "kind": "number",
      "hint": null,
      "default": 9,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "avgUnits",
      "label": "Menu average units sold",
      "kind": "number",
      "hint": null,
      "default": 180,
      "unit": null,
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "quadrant",
      "label": "Menu quadrant",
      "format": "raw",
      "hint": null,
      "primary": true
    },
    {
      "id": "margin",
      "label": "Contribution margin",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "marginGap",
      "label": "Margin vs. menu average",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "popIndex",
      "label": "Popularity index (100=avg)",
      "format": "number",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Item price: 16 $",
      "Item plate cost: 5 $",
      "Units sold last period: 240",
      "Menu average margin: 9 $",
      "Menu average units sold: 180"
    ],
    "outputs": [
      "Menu quadrant: Star",
      "Contribution margin: $11.00",
      "Margin vs. menu average: $2.00",
      "Popularity index (100=avg): 133"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter item price ($).",
      "Enter item plate cost ($).",
      "Enter units sold last period.",
      "Enter menu average margin ($).",
      "Enter menu average units sold.",
      "Read your menu quadrant on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "itemPrice": 9.6,
        "itemCost": 3,
        "itemUnits": 144,
        "avgMargin": 5.3999999999999995,
        "avgUnits": 108
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "itemPrice": 16,
        "itemCost": 5,
        "itemUnits": 240,
        "avgMargin": 9,
        "avgUnits": 180
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "itemPrice": 25.6,
        "itemCost": 8,
        "itemUnits": 384,
        "avgMargin": 14.4,
        "avgUnits": 288
      }
    }
  ],
  "limitations": [
    "Results are estimates before tax, fees, and inflation unless an input explicitly covers them.",
    "Rates are treated as fixed for the whole period — variable-rate products will drift from this projection.",
    "This is educational maths, not financial advice. Check anything contractual with the lender or your accountant."
  ],
  "faq": [
    {
      "q": "What do I do with a Plowhorse?",
      "a": "Plowhorses are your volume drivers so don't kill them. Instead shave the plate cost with a cheaper garnish or portion tweak, or nudge price up 5-8% — customers rarely notice small increases on popular items they already love."
    },
    {
      "q": "How many units count as 'popular' enough?",
      "a": "Use your own menu average as the bar, not an outside benchmark. An item selling above the mean units-per-period for its category counts as popular; below it counts as low popularity, regardless of the absolute number."
    },
    {
      "q": "Should Dogs always be cut?",
      "a": "Not automatically. Some Dogs are cross-utilization items (an ingredient also used in a Star dish) or accommodate dietary restrictions that keep a table from walking. Cut Dogs that add prep complexity with no strategic payoff first."
    },
    {
      "q": "How often should I run this analysis?",
      "a": "Quarterly for a stable menu, monthly during a new-menu rollout or after a big price change, so you catch shifts in customer behavior before a full season's sales data buries the signal."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/food-cost-percentage",
    "https://www.revenuelab.fyi/toolbox/prime-cost-calculator",
    "https://www.revenuelab.fyi/toolbox/recipe-yield-scaling"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Menu Engineering Margin Calculator (https://www.revenuelab.fyi/toolbox/menu-engineering-margin)"
}