{
  "slug": "rsvp-attendance-forecast",
  "title": "RSVP Attendance Forecast Calculator",
  "heading": "Wedding RSVP Estimator",
  "category": "other",
  "url": "https://www.revenuelab.fyi/toolbox/rsvp-attendance-forecast",
  "summary": "Project final headcount from invites, distance, and RSVP rate so far.",
  "description": "Local guests attend at far higher rates than out-of-town invitees, and destination weddings drop further. This blends attendance rates by group and reconciles them with the RSVPs already returned.",
  "formula": "Expected = Σ(invited by group × attendance rate), blended with returned RSVPs to date.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=rsvp-attendance-forecast",
  "inputs": [
    {
      "id": "local",
      "label": "Local invitees",
      "kind": "number",
      "hint": null,
      "default": 110,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "outOfTown",
      "label": "Out-of-town invitees",
      "kind": "number",
      "hint": null,
      "default": 70,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "international",
      "label": "International invitees",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "localRate",
      "label": "Local attendance rate",
      "kind": "number",
      "hint": null,
      "default": 85,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "otRate",
      "label": "Out-of-town rate",
      "kind": "number",
      "hint": null,
      "default": 60,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "intlRate",
      "label": "International rate",
      "kind": "number",
      "hint": null,
      "default": 35,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "yesSoFar",
      "label": "Yes RSVPs received",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "returned",
      "label": "Total RSVPs returned",
      "kind": "number",
      "hint": null,
      "default": 0,
      "unit": null,
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "blended",
      "label": "Projected attendance",
      "format": "number",
      "hint": null,
      "primary": true
    },
    {
      "id": "rate",
      "label": "Projected acceptance rate",
      "format": "percent",
      "hint": null,
      "primary": false
    },
    {
      "id": "model",
      "label": "Model estimate (ignoring RSVPs)",
      "format": "number",
      "hint": null,
      "primary": false
    },
    {
      "id": "remaining",
      "label": "Invitations still outstanding",
      "format": "number",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Local invitees: 110",
      "Out-of-town invitees: 70",
      "International invitees: 12",
      "Local attendance rate: 85 %",
      "Out-of-town rate: 60 %",
      "International rate: 35 %",
      "Yes RSVPs received: 0",
      "Total RSVPs returned: 0"
    ],
    "outputs": [
      "Projected attendance: 140",
      "Projected acceptance rate: 72.8%",
      "Model estimate (ignoring RSVPs): 140",
      "Invitations still outstanding: 192"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter local invitees.",
      "Enter out-of-town invitees.",
      "Enter international invitees.",
      "Enter local attendance rate (%).",
      "Enter out-of-town rate (%).",
      "Enter international rate (%).",
      "Enter yes rsvps received.",
      "Enter total rsvps returned.",
      "Read your projected attendance 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": {
        "local": 65,
        "outOfTown": 40,
        "international": 7,
        "localRate": 51,
        "otRate": 36,
        "intlRate": 21,
        "yesSoFar": 0,
        "returned": 0
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "local": 110,
        "outOfTown": 70,
        "international": 12,
        "localRate": 85,
        "otRate": 60,
        "intlRate": 35,
        "yesSoFar": 0,
        "returned": 0
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "local": 175,
        "outOfTown": 110,
        "international": 19,
        "localRate": 100,
        "otRate": 96,
        "intlRate": 56,
        "yesSoFar": 0,
        "returned": 0
      }
    }
  ],
  "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": "What acceptance rate should I assume?",
      "a": "A typical local wedding lands near 80 to 85 percent. Weekend destination events commonly run 55 to 70 percent, and international travel pushes it lower still."
    },
    {
      "q": "When should I finalize catering counts?",
      "a": "Most venues want a final number 7 to 14 days out. Once half your RSVPs are returned, the observed rate is usually a better predictor than any model."
    }
  ],
  "related": [],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — RSVP Attendance Forecast Calculator (https://www.revenuelab.fyi/toolbox/rsvp-attendance-forecast)"
}