{
  "slug": "deposit-cancellation-policy-calculator",
  "title": "Vendor Deposit & Cancellation Policy Calculator",
  "heading": "Deposit & Cancellation Policy Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/deposit-cancellation-policy-calculator",
  "summary": "Model refund amounts and retained revenue under a tiered cancellation policy.",
  "description": "A tiered cancellation policy (full refund early, partial refund mid-window, no refund close to the date) protects vendors from lost bookings while giving clients fair notice-based terms. This calculator takes the total contract value, deposit percentage, and days-before-event at cancellation, then applies your tiered refund schedule to show exactly what the client gets back and what you keep — useful for setting policy and for handling a real cancellation request consistently.",
  "formula": "Refund % determined by days-before-event tier; refund amount = contract value × refund %; retained = contract value − refund.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=deposit-cancellation-policy-calculator",
  "inputs": [
    {
      "id": "contractValue",
      "label": "Total contract value",
      "kind": "number",
      "hint": null,
      "default": 4500,
      "unit": "$",
      "min": 100,
      "max": null
    },
    {
      "id": "depositPct",
      "label": "Deposit required",
      "kind": "number",
      "hint": null,
      "default": 30,
      "unit": "%",
      "min": 5,
      "max": 100
    },
    {
      "id": "daysBefore",
      "label": "Days before event at cancellation",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": null,
      "min": 0,
      "max": 365
    },
    {
      "id": "tier1Days",
      "label": "Full-refund cutoff (days before)",
      "kind": "number",
      "hint": null,
      "default": 180,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "tier2Days",
      "label": "Partial-refund cutoff (days before)",
      "kind": "number",
      "hint": null,
      "default": 60,
      "unit": null,
      "min": 0,
      "max": null
    },
    {
      "id": "tier2Pct",
      "label": "Partial refund in tier 2",
      "kind": "number",
      "hint": null,
      "default": 50,
      "unit": "%",
      "min": 0,
      "max": 100
    }
  ],
  "outputs": [
    {
      "id": "refundAmount",
      "label": "Refund owed to client",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "retained",
      "label": "Vendor retains",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "deposit",
      "label": "Non-refundable deposit",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "refundPct",
      "label": "Refund tier applied",
      "format": "percent",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Total contract value: 4500 $",
      "Deposit required: 30 %",
      "Days before event at cancellation: 45",
      "Full-refund cutoff (days before): 180",
      "Partial-refund cutoff (days before): 60",
      "Partial refund in tier 2: 50 %"
    ],
    "outputs": [
      "Refund owed to client: $0",
      "Vendor retains: $4,500",
      "Non-refundable deposit: $1,350",
      "Refund tier applied: 0%"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter total contract value ($).",
      "Enter deposit required (%).",
      "Enter days before event at cancellation.",
      "Enter full-refund cutoff (days before).",
      "Enter partial-refund cutoff (days before).",
      "Enter partial refund in tier 2 (%).",
      "Read your refund owed to client 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": {
        "contractValue": 2700,
        "depositPct": 20,
        "daysBefore": 27,
        "tier1Days": 110,
        "tier2Days": 35,
        "tier2Pct": 30
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "contractValue": 4500,
        "depositPct": 30,
        "daysBefore": 45,
        "tier1Days": 180,
        "tier2Days": 60,
        "tier2Pct": 50
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "contractValue": 7200,
        "depositPct": 50,
        "daysBefore": 72,
        "tier1Days": 290,
        "tier2Days": 95,
        "tier2Pct": 80
      }
    }
  ],
  "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 is the deposit always non-refundable in this model?",
      "a": "The deposit compensates the vendor for turning away other bookings on that date the moment the contract is signed — that opportunity cost is real regardless of when a cancellation happens, which is why nearly every wedding vendor contract treats the deposit as earned immediately."
    },
    {
      "q": "What cancellation windows are typical in the industry?",
      "a": "A common structure is full refund of the remaining balance (not the deposit) for cancellations 6+ months out, 50% refund of the balance for cancellations 2-6 months out, and no additional refund inside 60 days, since replacing a booking that close to the date is very unlikely."
    },
    {
      "q": "Should the policy change based on how easily the date can be rebooked?",
      "a": "Yes — Saturdays in peak season (May, June, September, October in most US markets) are far more likely to rebook than an off-season weeknight, so some vendors offer a partial refund if they successfully rebook the date, on top of the standard tiered schedule."
    },
    {
      "q": "Is this legally binding just because it's in the contract?",
      "a": "State laws vary on deposit and refund enforceability, and this calculator is not legal advice — have an attorney review your actual contract language, especially around what happens if the vendor cancels rather than the client, force majeure events, and state-specific consumer protection rules."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/wedding-planner-fee-model-calculator",
    "https://www.revenuelab.fyi/toolbox/wedding-vendor-profit-margin-calculator",
    "https://www.revenuelab.fyi/toolbox/venue-rental-breakeven-bookings"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Vendor Deposit & Cancellation Policy Calculator (https://www.revenuelab.fyi/toolbox/deposit-cancellation-policy-calculator)"
}