{
  "slug": "seat-turnover-calculator",
  "title": "Seat Turnover Calculator",
  "heading": "Restaurant Seat Turnover Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/seat-turnover-calculator",
  "summary": "How many times each seat turns during service and the revenue impact.",
  "description": "Seat turnover measures how many times a table (or the dining room as a whole) serves a new party during a service period. It's calculated as covers served divided by seat count, and it's one of the biggest revenue levers in a full-service restaurant because it doesn't require a single new customer walking through the door — just faster table cycles. A casual restaurant might target 1.5-2.5 turns during dinner service; fine dining often runs under 1 turn by design since longer dining experiences justify higher checks; fast casual can turn 4-6+ times. This calculator takes seat count, covers served, and average check to show turnover rate and total revenue, then models the revenue impact of shaving average table time, which is usually the single highest-leverage operational change for a busy dining room with a line out the door on weekends.",
  "formula": "Turnover = covers served ÷ seats. Revenue = covers × average check. Turns/hour = service hours ÷ average table time.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=seat-turnover-calculator",
  "inputs": [
    {
      "id": "seats",
      "label": "Total seats",
      "kind": "number",
      "hint": null,
      "default": 80,
      "unit": null,
      "min": 1,
      "max": null
    },
    {
      "id": "coversServed",
      "label": "Covers served (service period)",
      "kind": "number",
      "hint": null,
      "default": 160,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "avgCheck",
      "label": "Average check per cover",
      "kind": "number",
      "hint": null,
      "default": 28,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "serviceHours",
      "label": "Service window length",
      "kind": "number",
      "hint": null,
      "default": 4,
      "unit": "hours",
      "min": 0.5,
      "max": null
    },
    {
      "id": "avgTableMinutes",
      "label": "Average table time",
      "kind": "number",
      "hint": null,
      "default": 75,
      "unit": "min",
      "min": 10,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "turnover",
      "label": "Seat turns this period",
      "format": "decimal",
      "hint": null,
      "primary": true
    },
    {
      "id": "revenue",
      "label": "Revenue this period",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "maxTurnsPossible",
      "label": "Max turns possible in window",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "upside",
      "label": "Revenue upside if fully turned",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Total seats: 80",
      "Covers served (service period): 160",
      "Average check per cover: 28 $",
      "Service window length: 4 hours",
      "Average table time: 75 min"
    ],
    "outputs": [
      "Seat turns this period: 2",
      "Revenue this period: $4,480",
      "Max turns possible in window: 3.2",
      "Revenue upside if fully turned: $2,688"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter total seats.",
      "Enter covers served (service period).",
      "Enter average check per cover ($).",
      "Enter service window length (hours).",
      "Enter average table time (min).",
      "Read your seat turns this period 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": {
        "seats": 48,
        "coversServed": 96,
        "avgCheck": 16.8,
        "serviceHours": 2.4,
        "avgTableMinutes": 45
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "seats": 80,
        "coversServed": 160,
        "avgCheck": 28,
        "serviceHours": 4,
        "avgTableMinutes": 75
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "seats": 128,
        "coversServed": 256,
        "avgCheck": 44.800000000000004,
        "serviceHours": 6.4,
        "avgTableMinutes": 120
      }
    }
  ],
  "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's a good turnover rate?",
      "a": "Casual dining runs 1.5-2.5 turns per meal period, fast casual 4-6+, and fine dining often stays under 1.5 by design since the model relies on a higher average check rather than volume. Compare to your own concept type, not a universal number."
    },
    {
      "q": "How do I increase turnover without rushing guests?",
      "a": "Speed up the parts guests don't notice: kitchen ticket times, drink refills triggering the check drop, and pre-bussing. Guests rarely feel rushed if the pacing between courses stays natural — the time savings usually comes from service efficiency, not shortening the meal itself."
    },
    {
      "q": "Does higher turnover always mean more revenue?",
      "a": "Only if demand exists to fill the freed-up seats. Turning tables faster on a slow Tuesday just means empty seats sooner; the upside is real primarily during high-demand periods with a wait list, where every minute saved per table converts directly into another seated party."
    },
    {
      "q": "Should I track turnover by meal period?",
      "a": "Yes — lunch, dinner, and weekend brunch have very different table time norms and demand patterns. A blended daily number hides which service period actually has unmet demand worth optimizing for."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/break-even-covers",
    "https://www.revenuelab.fyi/toolbox/reservation-no-show-cost",
    "https://www.revenuelab.fyi/toolbox/labor-cost-percentage"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Seat Turnover Calculator (https://www.revenuelab.fyi/toolbox/seat-turnover-calculator)"
}