{
  "slug": "catering-quote-calculator",
  "title": "Catering Quote Calculator",
  "heading": "Catering Event Quote Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/catering-quote-calculator",
  "summary": "Build a per-head catering price from food, labor, rentals, and margin.",
  "description": "Catering pricing has more moving pieces than a la carte menu pricing because labor, delivery, rentals, and service staff all scale with the event rather than sitting in fixed overhead. This calculator builds a quote from the ground up: per-head food cost, staffing hours needed for the guest count, rental and delivery flat fees, then applies your target margin to land on a per-head price and total event quote. A common mistake is pricing catering at the same food-cost percentage as the dining room — catering typically needs a higher margin, often 35-45% gross margin versus 65-70% for standard dine-in, because of the added labor for setup, service, and breakdown that a plate at the restaurant doesn't require. Always quote a guest-count range with a minimum guarantee, since catering costs (especially rentals and staffing) don't shrink proportionally if the final headcount drops.",
  "formula": "Per-head price = (food cost/head + labor cost/head + (fixed costs ÷ guests)) ÷ (1 − target margin %).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=catering-quote-calculator",
  "inputs": [
    {
      "id": "guests",
      "label": "Guest count",
      "kind": "number",
      "hint": null,
      "default": 100,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "foodPerHead",
      "label": "Food cost per head",
      "kind": "number",
      "hint": null,
      "default": 9,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "staffHours",
      "label": "Total staff hours needed",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "staffRate",
      "label": "Blended staff pay rate",
      "kind": "number",
      "hint": null,
      "default": 24,
      "unit": "$/hr",
      "min": 0,
      "max": null
    },
    {
      "id": "fixedCosts",
      "label": "Rentals + delivery + misc fixed",
      "kind": "number",
      "hint": null,
      "default": 400,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "targetMargin",
      "label": "Target gross margin",
      "kind": "number",
      "hint": null,
      "default": 40,
      "unit": "%",
      "min": 5,
      "max": 70
    }
  ],
  "outputs": [
    {
      "id": "pricePerHead",
      "label": "Price per head",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "totalQuote",
      "label": "Total event quote",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "costPerHead",
      "label": "Total cost per head",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "laborTotal",
      "label": "Total labor cost",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Guest count: 100",
      "Food cost per head: 9 $",
      "Total staff hours needed: 20",
      "Blended staff pay rate: 24 $/hr",
      "Rentals + delivery + misc fixed: 400 $",
      "Target gross margin: 40 %"
    ],
    "outputs": [
      "Price per head: $29.67",
      "Total event quote: $2,967",
      "Total cost per head: $17.80",
      "Total labor cost: $480"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter guest count.",
      "Enter food cost per head ($).",
      "Enter total staff hours needed.",
      "Enter blended staff pay rate ($/hr).",
      "Enter rentals + delivery + misc fixed ($).",
      "Enter target gross margin (%).",
      "Read your price per head 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": {
        "guests": 60,
        "foodPerHead": 5.3999999999999995,
        "staffHours": 12,
        "staffRate": 14,
        "fixedCosts": 250,
        "targetMargin": 24
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "guests": 100,
        "foodPerHead": 9,
        "staffHours": 20,
        "staffRate": 24,
        "fixedCosts": 400,
        "targetMargin": 40
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "guests": 160,
        "foodPerHead": 14.4,
        "staffHours": 32,
        "staffRate": 38,
        "fixedCosts": 650,
        "targetMargin": 64
      }
    }
  ],
  "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": "Why does catering need higher margin than dine-in?",
      "a": "Catering carries costs the dining room doesn't: transport, setup and breakdown labor, equipment rental, and the risk of a one-off event with no repeat-customer relationship to fall back on if something goes wrong. A 35-45% gross margin is standard versus 65-70% typical for in-restaurant sales."
    },
    {
      "q": "Should I quote a flat price or per-head with a minimum?",
      "a": "Per-head with a stated minimum guest count protects you when headcounts shrink close to the date, since your fixed costs (delivery, rental minimums, base staffing) don't shrink with a few fewer guests. Most caterers lock the guaranteed minimum 48-72 hours before the event."
    },
    {
      "q": "How do I estimate staff hours for an event?",
      "a": "Rule of thumb for plated service: 1 server per 15-20 guests plus kitchen staff scaled to menu complexity, each working the full event window plus 1-2 hours setup and 1 hour breakdown. Buffet service needs fewer servers but more setup/breakdown labor."
    },
    {
      "q": "What if the client wants a tasting before booking?",
      "a": "Charge for it, typically $25-75 per person credited toward the final invoice if they book. Free tastings are a common way caterers erode margin before the contract is even signed."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/banquet-beo-cost",
    "https://www.revenuelab.fyi/toolbox/recipe-yield-scaling",
    "https://www.revenuelab.fyi/toolbox/food-cost-percentage"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Catering Quote Calculator (https://www.revenuelab.fyi/toolbox/catering-quote-calculator)"
}