{
  "slug": "event-staffing-ratio",
  "title": "Event Staffing Calculator",
  "heading": "Event Staffing Calculator",
  "category": "other",
  "url": "https://www.revenuelab.fyi/toolbox/event-staffing-ratio",
  "summary": "Servers, bartenders, and support staff needed — plus labor cost.",
  "description": "Industry ratios put one server per 20 guests for buffet service and one per 10 to 12 for plated, with a bartender per 75 guests. This applies those ratios and prices the shift including overtime.",
  "formula": "Staff = ceil(guests ÷ ratio); cost = Σ(staff × hours × rate) with overtime past 8 hours.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=event-staffing-ratio",
  "inputs": [
    {
      "id": "guests",
      "label": "Guests",
      "kind": "number",
      "hint": null,
      "default": 200,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "service",
      "label": "Service style",
      "kind": "select",
      "hint": null,
      "default": "plated",
      "options": [
        {
          "value": "plated",
          "label": "Plated (1 server / 12)"
        },
        {
          "value": "buffet",
          "label": "Buffet (1 server / 20)"
        },
        {
          "value": "cocktail",
          "label": "Cocktail (1 server / 30)"
        }
      ]
    },
    {
      "id": "hours",
      "label": "Shift length",
      "kind": "number",
      "hint": null,
      "default": 8,
      "unit": "hours",
      "min": 1,
      "max": null
    },
    {
      "id": "serverRate",
      "label": "Server hourly rate",
      "kind": "number",
      "hint": null,
      "default": 28,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "barRate",
      "label": "Bartender hourly rate",
      "kind": "number",
      "hint": null,
      "default": 35,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "captains",
      "label": "Captains / leads",
      "kind": "number",
      "hint": null,
      "default": 1,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "captainRate",
      "label": "Captain hourly rate",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "total",
      "label": "Total staff needed",
      "format": "number",
      "hint": null,
      "primary": true
    },
    {
      "id": "servers",
      "label": "Servers",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "bartenders",
      "label": "Bartenders",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "cost",
      "label": "Labor cost for the event",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "perGuest",
      "label": "Labor cost per guest",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Guests: 200",
      "Service style: Plated (1 server / 12)",
      "Shift length: 8 hours",
      "Server hourly rate: 28 $",
      "Bartender hourly rate: 35 $",
      "Captains / leads: 1",
      "Captain hourly rate: 45 $"
    ],
    "outputs": [
      "Total staff needed: 21",
      "Servers: 17",
      "Bartenders: 3",
      "Labor cost for the event: $5,008",
      "Labor cost per guest: $25.04"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter guests.",
      "Enter service style.",
      "Enter shift length (hours).",
      "Enter server hourly rate ($).",
      "Enter bartender hourly rate ($).",
      "Enter captains / leads.",
      "Enter captain hourly rate ($).",
      "Read your total staff needed 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": 120,
        "service": "plated",
        "hours": 4.8,
        "serverRate": 17,
        "barRate": 21,
        "captains": 1,
        "captainRate": 27
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "guests": 200,
        "service": "plated",
        "hours": 8,
        "serverRate": 28,
        "barRate": 35,
        "captains": 1,
        "captainRate": 45
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "guests": 320,
        "service": "plated",
        "hours": 12.8,
        "serverRate": 45,
        "barRate": 56,
        "captains": 2,
        "captainRate": 72
      }
    }
  ],
  "limitations": [
    "Estimates assume standard, average conditions — local rules, pricing, and materials vary.",
    "Results are rounded for readability; add a buffer before ordering, booking, or committing.",
    "Double-check anything with a real cost attached against a local quote."
  ],
  "faq": [
    {
      "q": "How many bartenders do I need?",
      "a": "One per 75 guests keeps lines short for a full bar. Move to one per 50 if you are serving craft cocktails or the bar is the only drink source."
    },
    {
      "q": "Is overtime always time and a half?",
      "a": "Rules vary by state and by whether staff are employees or contracted through the caterer. This applies a 1.5× multiplier past 8 hours as a planning default."
    }
  ],
  "related": [],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Event Staffing Calculator (https://www.revenuelab.fyi/toolbox/event-staffing-ratio)"
}