{
  "slug": "hotel-early-checkin-late-checkout-fee",
  "title": "Early Check-In / Late Checkout Fee Calculator",
  "heading": "Early Check-In & Late Checkout Fee Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/hotel-early-checkin-late-checkout-fee",
  "summary": "Price an early arrival or late departure fee against the housekeeping and occupancy cost it creates.",
  "description": "Guaranteeing an early check-in or late checkout holds a room out of the housekeeping and resale pool for extra hours, which has a real cost when occupancy is high enough that the room could otherwise be turned and resold same-day, or when it compresses the housekeeping schedule and forces overtime. This calculator estimates that cost based on your occupancy level and housekeeping overtime risk, then compares it to your current fee, so front desk teams have a defensible number for what to charge instead of picking a round figure.",
  "formula": "True Cost = (Occupancy % × Opportunity Cost per Hour Held) + Overtime Risk Cost. Compare to Fee Charged.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=hotel-early-checkin-late-checkout-fee",
  "inputs": [
    {
      "id": "adr",
      "label": "ADR",
      "kind": "number",
      "hint": null,
      "default": 160,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "hoursHeld",
      "label": "Extra hours room is held",
      "kind": "number",
      "hint": null,
      "default": 4,
      "unit": null,
      "min": 1,
      "max": 12
    },
    {
      "id": "occupancy",
      "label": "Today's occupancy",
      "kind": "number",
      "hint": null,
      "default": 85,
      "unit": "%",
      "min": 0,
      "max": 100
    },
    {
      "id": "overtimeRisk",
      "label": "Housekeeping overtime cost risk",
      "kind": "number",
      "hint": null,
      "default": 15,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "feeCharged",
      "label": "Fee currently charged",
      "kind": "number",
      "hint": null,
      "default": 30,
      "unit": "$",
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "trueCost",
      "label": "True cost of holding the room",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "opportunityCost",
      "label": "Occupancy-weighted opportunity cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "gap",
      "label": "Surplus / (shortfall) vs fee charged",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "feeCharged",
      "label": "Fee currently charged",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "ADR: 160 $",
      "Extra hours room is held: 4",
      "Today's occupancy: 85 %",
      "Housekeeping overtime cost risk: 15 $",
      "Fee currently charged: 30 $"
    ],
    "outputs": [
      "True cost of holding the room: $37.67",
      "Occupancy-weighted opportunity cost: $22.67",
      "Surplus / (shortfall) vs fee charged: -$7.67",
      "Fee currently charged: $30.00"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter adr ($).",
      "Enter extra hours room is held.",
      "Enter today's occupancy (%).",
      "Enter housekeeping overtime cost risk ($).",
      "Enter fee currently charged ($).",
      "Read your true cost of holding the room 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": {
        "adr": 95,
        "hoursHeld": 2,
        "occupancy": 51,
        "overtimeRisk": 9,
        "feeCharged": 20
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "adr": 160,
        "hoursHeld": 4,
        "occupancy": 85,
        "overtimeRisk": 15,
        "feeCharged": 30
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "adr": 255,
        "hoursHeld": 6,
        "occupancy": 100,
        "overtimeRisk": 24,
        "feeCharged": 50
      }
    }
  ],
  "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 occupancy matter for pricing this fee?",
      "a": "At low occupancy, an early check-in costs the hotel almost nothing since the room wasn't going to sell again that day anyway. At high occupancy near a sellout, holding a room for early arrival has real opportunity cost since a same-day walk-in or late booking might have filled it otherwise — that's why the fee should flex with occupancy, not stay flat year-round."
    },
    {
      "q": "Should this fee be waived for loyalty elites?",
      "a": "Most brand loyalty programs guarantee early check-in or late checkout as a top-tier benefit, subject to availability, precisely because the marginal cost is usually small and the retention value of the perk is high — that's a business decision layered on top of the raw cost math this calculator shows."
    },
    {
      "q": "What's a typical late checkout fee at hotels?",
      "a": "Common ranges are $20-$50 for 2-4 extra hours, or a half-day rate (25-50% of the nightly rate) for checkout extended past early afternoon, scaling up further for holding the room past normal check-in time for the next arriving guest."
    },
    {
      "q": "Does overtime risk apply every time?",
      "a": "Only when the delayed checkout compresses the housekeeping team's turn window for that room before the next guest arrives, which is more likely on high-occupancy days with tight same-day turns. On lower occupancy days this cost is usually near zero and can be left at zero in the calculator."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/hotel-breakeven-occupancy",
    "https://www.revenuelab.fyi/toolbox/housekeeping-labor-cost-per-room",
    "https://www.revenuelab.fyi/toolbox/hotel-adr-occupancy-calculator"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Early Check-In / Late Checkout Fee Calculator (https://www.revenuelab.fyi/toolbox/hotel-early-checkin-late-checkout-fee)"
}