Restaurants & Food Service

Menu Margin Analyst

Finds the popular dish that is losing you money

Version 2Published Sep 2, 2026
Restaurants & Food ServiceExtractclaude-sonnet-5Read-only · auto8 hard rules5 handover rulesResult
8hard rules
Things it must never do, enforced in every run
5handover rules
Conditions where it stops and gives the work to a person
8output fields
A structured result, not a paragraph you have to re-read
≤6steps per run
Bounded work: at most 4 tool calls, enforced by the runtime

Read-only by design. This agent has no path to sending, spending, publishing or committing anything. Where that limit is the product, removing it would remove the reason to trust the output.

Live wiring for version 2. Tool nodes are the capabilities this agent is registered to call — nothing else can run.

Overview

Restaurant profitability is decided by the menu, and almost nobody analyses the menu properly. The operator knows which dishes sell — the till says so daily — and has a rough sense of food cost. What they do not have is both numbers together, per dish, kept current as ingredient prices move.

Put popularity and margin on the same page and the menu splits into four groups, each needing a different action. A dish that sells well and earns well should be protected and made easier to find. One that sells well and earns badly is the dangerous one — busy, feels successful, and quietly the reason the month was flat. One that earns well and sells rarely is a placement and description problem, the cheapest fix in the building. One that does neither is occupying menu space, fridge space and prep time.

What makes it genuinely hard is that recipe costs are calculated once, when the dish is created, and never again. A dish costed at 28% two years ago can be at 41% today and nothing in the business would ever say so.

This agent recosts each dish against current prices, classifies the menu, and quantifies what each change is worth at current volumes. It sets no prices and removes no dish: both are decisions about your guests and your reputation, and neither is arithmetic.

Benefits

Margin found without raising a price

Most of it is portioning, waste and recipe drift.

The menu earns its space

Every dish justified by what it contributes.

You stop being busy and flat

Which is the most demoralising way to run a kitchen.

What it does

  • Recosts against today's prices

    Recipe costs are set once when a dish is created and never revisited. A dish costed at 28% can be at 41% and nothing would ever say so.

  • Popularity and margin together

    Separately, both are already known. Together, the menu splits into four groups with four different actions.

  • Finds the busy dish that loses money

    The dangerous one. It feels successful, and it is why the month was flat.

  • Reports contribution, not percentage

    A 78% margin on a side is worth less than 62% on a main. Percentages decide wrongly and everyone uses them.

  • Prices each change at current volume

    What fixing this dish is worth per month, so the effort goes where the money is.

  • Sets no prices

    A price is a decision about your guests and your position. It gives you the arithmetic behind it.

What this changes

What this changes about your week

It takes over
Recosting every dish and putting margin next to popularity.
Done today by
The owner, once, when the menu was written.
How often
Should be monthly. Is almost never.
Typical manual effort
Every recipe recosted against current ingredient prices, then multiplied by actual covers.

Why Restaurants & Food Service in particular. Recipe costs are calculated once and never again. A dish costed at 28% can be at 41% today and nothing in the business would say so — and it is usually a best seller.

  • Runs unattended

    Started by you or by an event, and it finishes on its own. Nothing waits for someone to be at a desk.

  • The same standard every time

    The two-hundredth item is held to the bar the first one was. Consistency is the part people cannot sustain.

  • It cannot act on its own

    Menu Margin Analyst has no path to sending, spending or committing. That limit is why its output is safe to act on.

How it runs

This agent runs server-side through the PROMIVO runtime. Each run is logged step by step and every tool call is permission-checked before it executes.

  1. 1InputValidated against the agent input schema
  2. 2Modelclaude-sonnet-5 with automatic fallback
  3. 3Toolsextract_structured_data
  4. 4PermissionsRuns READ actions automatically; anything higher waits for approval
  5. 5OutputStructured result matching the output schema
  6. 6LoggingTokens, duration and every step recorded

Demo

Demo dataIllustrative sample output, abridged.

Input

{
  "dishes": [],
  "period": "August 2026",
  "currency": "USD"
}

Output

{
  "dishes": [
    {
      "dish": "Slow-braised short rib",
      "group": "fix-the-cost",
      "action": "Your second best seller, and it was costed at 29% when it was written. Beef has moved 56% since. Nothing in the business would have told you.",
      "coversSold": 412,
      "currentCost": 12.6,
      "fullyCosted": true,
      "recordedCost": 8.1,
      "sellingPrice": 28,
      "worthPerMonth": 1854,
      "foodCostPercent": 45,
      "costDriftPercent": 55.6,
      "totalContribution": 6345,
      "contributionPerDish": 15.4
    },
    {
      "dish": "Heritage tomato salad",
      "group": "improve-placement",
      "action": "Strong margin, almost nobody orders it. It sits last in a section of nine. This is a menu design fix, not a kitchen one.",
      "coversSold": 61,
      "currentCost": 3.1,
      "fullyCosted": true,
      "recordedCost": 3,
      "sellingPrice": 14,
      "worthPerMonth": 980,
      "foodCostPercent": 22.1,
      "costDriftPercent": 3.3,
      "totalContribution": 665,
      "contributionPerDish": 10.9
    }
  ],
  "escalate": true,
  "wasteGap": [
    "Theoretical food cost across the menu is 31%. Actual is 36.4%. That 5.4 points is 9,100 a month and it is not a pricing problem."
  ],
  "costBasis": "actual-with-waste",
  "disclaimer": "An analysis of your own recipes, prices and sales. No price has been set or changed, no dish removed, no recipe or portion altered, and no ingredient cost was estimated where one was missing.",
  "partlyCosted": [
    "Two specials have no complete recipe, so they are excluded rather than estimated."
  ],
  "escalationReason": "Food cost on the second best seller is 45%, above threshold, with 56% cost drift; and the waste gap is 5.4 points.",
  "sharedIngredientRisk": [
    "Butter appears in 14 of 31 dishes. A 10% move there costs more than any single recipe change would recover."
  ]
}

Requirements

Integrations

No integrations required.

Before you start

  • Dishes with selling price and recipe
  • Current ingredient costs
  • Sales counts by dish for the period
  • Waste records, where you keep them
  • Requires the Starter plan or higher

Use cases

Menu redesign

Which dishes earn their place, before it is printed.

After supplier price rises

Which dishes moved, and by how much.

Seasonal changeover

What the last season actually earned, dish by dish.

A flat month with good covers

Usually a menu-mix problem rather than a volume one.

Pricing

Starter

Billed monthly through your PROMIVO subscription. Cancel at any time.

Runs consume your plan allowance for agent executions and tokens. See plan limits

FAQ

Will it change prices or remove dishes?

No. Both are decisions about your guests, your reputation and your positioning. It gives you the numbers and what each option is worth.

Do we need exact recipe costs?

It uses what you have. Where a recipe is incomplete it reports the dish as partly costed rather than estimating around the gap — an invented ingredient cost would be the most quotable number in the report and the least reliable.

Does it account for waste?

Where you record it, yes, and it is often the finding. Where you do not, it says the cost is theoretical rather than actual — the gap between the two is usually where the missing margin is.

Reviews

Reviews open once customers have run this agent.

Need this agent to work differently?

Tell us what to change and our team will scope a customised version for your business.

Customize this agent