{
  "slug": "str-cleaning-fee-breakeven",
  "title": "Short-Term Rental Cleaning Fee Breakeven Calculator",
  "heading": "STR Cleaning Fee Breakeven Calculator",
  "category": "financial",
  "url": "https://www.revenuelab.fyi/toolbox/str-cleaning-fee-breakeven",
  "summary": "Find the minimum cleaning fee that covers turnover cost without killing bookings.",
  "description": "Short-term rental hosts often price cleaning fees arbitrarily, either eating the cost themselves or overcharging and tanking conversion. This calculator figures out your true per-turnover cost — cleaner labor, supplies, laundry, and a share of your own coordination time — then compares it to what you're currently charging guests. It also shows the gap per stay and projects the monthly shortfall or surplus at your current booking volume. The goal isn't just to break even on cleaning; it's to know precisely how much of your nightly rate is silently subsidizing turnover costs if the fee is set too low, which distorts your true profit per stay and can make an unprofitable listing look fine on paper.",
  "formula": "True cost = cleaner pay + supplies + laundry + host time × hourly value. Gap = fee charged − true cost.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=str-cleaning-fee-breakeven",
  "inputs": [
    {
      "id": "cleanerPay",
      "label": "Cleaner pay per turnover",
      "kind": "number",
      "hint": null,
      "default": 85,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "supplies",
      "label": "Supplies per turnover",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "laundry",
      "label": "Laundry service per turnover",
      "kind": "number",
      "hint": null,
      "default": 18,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "hostMinutes",
      "label": "Host coordination time",
      "kind": "number",
      "hint": null,
      "default": 20,
      "unit": "min",
      "min": 0,
      "max": null
    },
    {
      "id": "hostRate",
      "label": "Host time value",
      "kind": "number",
      "hint": null,
      "default": 35,
      "unit": "$/hr",
      "min": 0,
      "max": null
    },
    {
      "id": "feeCharged",
      "label": "Cleaning fee charged to guest",
      "kind": "number",
      "hint": null,
      "default": 100,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "turnoversMonth",
      "label": "Turnovers per month",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": null,
      "min": 0,
      "max": null
    }
  ],
  "outputs": [
    {
      "id": "breakevenFee",
      "label": "Breakeven cleaning fee",
      "format": "currency",
      "hint": null,
      "primary": true
    },
    {
      "id": "trueCost",
      "label": "True cost per turnover",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "gap",
      "label": "Surplus / (shortfall) vs charged fee",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "monthlyImpact",
      "label": "Monthly surplus / (shortfall)",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Cleaner pay per turnover: 85 $",
      "Supplies per turnover: 12 $",
      "Laundry service per turnover: 18 $",
      "Host coordination time: 20 min",
      "Host time value: 35 $/hr",
      "Cleaning fee charged to guest: 100 $",
      "Turnovers per month: 12"
    ],
    "outputs": [
      "Breakeven cleaning fee: $126.67",
      "True cost per turnover: $126.67",
      "Surplus / (shortfall) vs charged fee: -$26.67",
      "Monthly surplus / (shortfall): -$320.00"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter cleaner pay per turnover ($).",
      "Enter supplies per turnover ($).",
      "Enter laundry service per turnover ($).",
      "Enter host coordination time (min).",
      "Enter host time value ($/hr).",
      "Enter cleaning fee charged to guest ($).",
      "Enter turnovers per month.",
      "Read your breakeven cleaning fee 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": {
        "cleanerPay": 50,
        "supplies": 7,
        "laundry": 11,
        "hostMinutes": 10,
        "hostRate": 20,
        "feeCharged": 60,
        "turnoversMonth": 7
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "cleanerPay": 85,
        "supplies": 12,
        "laundry": 18,
        "hostMinutes": 20,
        "hostRate": 35,
        "feeCharged": 100,
        "turnoversMonth": 12
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "cleanerPay": 135,
        "supplies": 19,
        "laundry": 29,
        "hostMinutes": 30,
        "hostRate": 55,
        "feeCharged": 160,
        "turnoversMonth": 19
      }
    }
  ],
  "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": "Should the cleaning fee include my own time?",
      "a": "Yes, if you're doing scheduling, quality checks, restocking, or driving supplies. Hosts who ignore their own time often think cleaning is 'break even' when it's actually a hidden hourly wage well below minimum wage once totaled across a portfolio of units."
    },
    {
      "q": "Does a high cleaning fee hurt bookings?",
      "a": "It can, especially for short stays where the fee becomes a large percentage of total cost. Guests fixate on the total price shown at checkout more than the nightly rate, so some hosts fold turnover cost into the nightly rate instead and keep the cleaning fee low or at zero to improve search ranking and conversion."
    },
    {
      "q": "How do I lower true turnover cost without cutting quality?",
      "a": "Standardize the cleaning checklist to cut cleaner time, buy supplies in bulk, and batch laundry across units if you run a portfolio. Switching from linens you own to a rental laundry service breaks even around 15-20 turnovers a month for most short-term rentals."
    },
    {
      "q": "What if my calculated breakeven fee is higher than competitors charge?",
      "a": "That's a signal to either raise the nightly rate and lower the visible cleaning fee, negotiate cleaner rates, or accept a thinner margin per stay. Don't just absorb the loss silently — know the number so it's a deliberate decision, not an accident."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/hotel-breakeven-occupancy",
    "https://www.revenuelab.fyi/toolbox/campground-site-revenue-calculator",
    "https://www.revenuelab.fyi/toolbox/housekeeping-labor-cost-per-room"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Short-Term Rental Cleaning Fee Breakeven Calculator (https://www.revenuelab.fyi/toolbox/str-cleaning-fee-breakeven)"
}