nightlydata

Short-Term Rental Cleaning Fee Strategy: Baked-In vs Separate

By Daniel Carrow (pen name) guide
Short-Term Rental Cleaning Fee Strategy: Baked-In vs Separate - cover image

The cleaning fee debate inside STR communities misframes the problem. The question is not how much to charge for cleaning. It is how to structure your cleaning cost relative to your nightly rate, and whether that structure works differently across each OTA you run.

For most operators with 5-20 properties, the correct answer changed in 2023 when Airbnb rolled out total price display globally. A strategy built for 2021 is now actively hurting conversion on that channel.

TL;DR: For short-stay properties (average length of stay under 4 nights), fold cleaning costs into the nightly rate and set the separate fee to zero or close to it on Airbnb. Keep a separate fee on Vrbo, where it is displayed cleanly and guests expect it. On Booking.com, check your extranet for how extra charges appear in your market. The only case for a high separate fee on Airbnb is a property with a documented average LOS above 6 nights, where the per-night math already absorbs the cost.


Why the fee amount is the wrong thing to optimize

A $100 cleaning fee on a $600/night beach house is invisible. The same $100 on a $70/night urban studio is the reason the inbox is empty.

The variable that matters is the cleaning fee-to-nightly-rate ratio at your typical LOS. At a 2-night average stay, a $100 fee represents $50/night in additional cost. Guests see this in the total price breakdown and it affects whether they click through at all.

Per a NerdWallet analysis of 1,000 U.S. Airbnb reservations with 2022-2023 check-in dates, the median cleaning fee for a one-night stay was $75, rising to approximately $105 for larger properties with professional cleaning help (cross-referenced via iGMS’s STR operator guide, analysed May 2026). According to AirDNA data cited in the same source, 89% of U.S. STR hosts charge a separate cleaning fee, compared to 52% of UK hosts and 56% of French hosts.

Those medians are not a benchmark to match. They reflect what the average host does, not what high-converting hosts do.


How total price display changed the calculus

Before 2023, a common Airbnb approach was to show a low nightly rate in search, then reveal the cleaning fee at checkout. Guests saw $90/night in results, then discovered $90 plus $150 cleaning plus $35 service fee at the booking screen.

Airbnb’s total price display, confirmed globally since 2023, ended this. Guests now see the full cost per night (including all fees amortized over the stay length) from the search results page. A $90/night listing with a $150 cleaning fee for a 2-night stay shows up in search at $127.50/night total, not $90.

The practical consequence: if a competitor lists at $100/night with no separate cleaning fee, they appear cheaper in search results for short stays, even if your real total cost at 5 nights is similar or lower.

High cleaning fees reduce click-through rates, and click-through rate is a ranking signal in Airbnb’s search algorithm. A listing with consistent CTR above its category peers will outrank a listing that gets skipped before guests see the full offer. The fee structure is not just a pricing decision. It is a visibility decision.


The baked-in approach

Baking cleaning costs into the nightly rate means setting the separate cleaning fee to zero or a token amount (under $30) and raising the nightly rate to cover actual cleaning costs.

For a property with a $100 cleaning cost and a 2-night average LOS, that adds $50 to the effective nightly rate. If the market nightly rate is $120, you price at $170 with no separate fee. In total price display, you look competitive and transparent.

Where this performs well:

Short-stay urban properties. Markets where guests sort by total price. Properties where most bookings are 1-3 nights and cleaning cost per night is already acceptable above $100. Direct booking sites where simplicity and no hidden fees drive repeat visits.

The real trade-off:

Long stays become more expensive in total relative to the separate-fee model. An 8-night booking at $170/night costs $1,360. On the separate-fee model at $120/night plus $100 cleaning, the same guest pays $1,060 total. You lose the long-stay guest by $300.

If your property generates 20% or more of revenue from 7-plus-night bookings, you are leaving measurable money on the table with a pure baked-in approach. A hybrid solves this: baked-in for Airbnb short-stay bookings, separate fee on Vrbo or direct channels where long-stay guests dominate.


The separate fee approach

A separate cleaning fee makes commercial sense when two conditions are met: your average LOS is long enough to amortize it, and your actual cleaning cost is high enough that folding it in would make the nightly rate uncompetitive.

For a 4-bedroom mountain property with $280 in actual cleaning costs (crew time plus supplies), a 6-night average stay, and a $350/night market rate: the $280 cleaning cost adds $46/night to a baked-in rate, pushing the headline to $396/night. At a 6-night booking, the total price per night is what guests compare. The separate fee of $280 on a $350/night base produces nearly the same total cost across 6 nights while keeping the headline rate at market.

The risk is one-night bookings. A $280 separate fee on a 1-night stay means the guest pays $280 above the nightly rate. If you do not block 1-night bookings with a minimum LOS restriction, every short booking is either profitable enough to justify that overhead or a signal you are overcharging on cleaning.

On Vrbo specifically:

Vrbo’s display of separate fees is cleaner and more familiar to its user base than Airbnb’s was before total price display. Vrbo guests book longer stays on average. A separate cleaning fee of $100-250 on Vrbo rarely generates the same friction it causes on Airbnb for short stays. Most operators with Vrbo as a primary channel keep a separate fee regardless of their Airbnb structure.


The one-night booking problem

The math on separate cleaning fees becomes a problem when your average LOS is short and your minimum LOS is not set to match.

xychart-beta
  title "Effective cleaning cost per night at a $200 separate fee"
  x-axis ["1 night", "2 nights", "3 nights", "4 nights", "7 nights", "14 nights"]
  y-axis "Cleaning cost per night ($)" 0 --> 210
  bar [200, 100, 67, 50, 29, 14]

A $200 cleaning fee at 1 night represents $200/night in overhead. At 7 nights, it drops to $29/night. At 14 nights, it is $14/night. If your dynamic pricing tool prices 1-night stays at $150 and your cleaning fee is $200, every single-night booking generates a cleaning loss. Dynamic pricing does not fix a structural fee problem. It prices around demand, not around your cost floor.

The correct response is one of two things: set a minimum LOS of 2 or 3 nights (the operational fix) or lower the separate cleaning fee and raise the base nightly rate. Both work. Doing neither and hoping demand justifies it is how operators erode margin across hundreds of bookings.

For more on how LOS and minimum stays interact with dynamic pricing tool settings, see the guide on when dynamic pricing hurts STR operators.


Multi-OTA complexity

The hardest case for cleaning fee strategy is running three or more OTAs with different display mechanics for fees.

Airbnb: total price display active globally, guest service fee (~14%) applied to the cleaning fee line, full fee visible in search total. Vrbo: separate fees displayed as line items, well-understood by leisure guest segment, host fee structure on Vrbo determines the commission treatment of cleaning fees. Booking.com: extra charges are configurable in the extranet but display depends on property type, market, and whether you are on the commission or subscription model. Many Booking.com markets default to all-inclusive pricing expectations. Direct booking sites: fully in your control. Guests expect transparency. Most direct booking tools (Hostfully, OwnerRez) let you show fees clearly without creating friction.

Running a single fee structure across all four channels typically under-optimizes at least two of them. The operational solution is a PMS or channel manager with per-channel fee overrides.

flowchart TD
    A["What is your average LOS?"] --> B["Under 4 nights"]
    A --> C["4 to 6 nights"]
    A --> D["7 or more nights"]
    B --> E["Bake in cleaning cost\nSeparate fee: 0 to 30"]
    C --> F["Moderate separate fee\n50 to 100, watch CTR"]
    D --> G["Separate fee justified\n100 to 250 or more"]
    E --> H{"Multiple OTAs?"}
    F --> H
    G --> H
    H -->|Yes| I["PMS with per-channel override\nAirbnb: baked-in\nVrbo: separate fee"]
    H -->|No - Airbnb only| J["Full baked-in or low separate fee"]

Hostfully Growth and OwnerRez both support per-channel fee overrides without requiring an enterprise plan. Hospitable Professional does not offer channel-level fee customization at the entry tier. See the channel manager vs PMS guide for how these tools compare on pricing configuration flexibility.


Common mistakes by portfolio size

5-10 properties:

The most common mistake at this size is copying a larger operator’s cleaning fee structure without the same inputs. A portfolio company running 50 properties has negotiated cleaning rates with a vendor, market-validated a $150 fee across hundreds of bookings, and a PMS with per-channel overrides. Copying their $150 Airbnb cleaning fee without those foundations typically produces lower CTR and equivalent or worse net cleaning economics.

Start with your actual cleaning cost plus 15-20% margin, check where that lands against the market median ($75-105 in the US per the NerdWallet/AirDNA data above), and run both structures for 60 days on equivalent properties if your portfolio allows it. The conversion difference is measurable.

10-20 properties:

At this size, the multi-OTA question is real. You likely run Airbnb, Vrbo, and possibly Booking.com. Per-channel fee override capability in your PMS becomes worth the extra monthly cost. The PMS comparison for 5-15 STR properties covers which platforms include this without an enterprise tier.

The second mistake at 10-20 properties is not updating the cleaning fee when turnover costs change. If your cleaning vendor raised rates 15% in Q1 2026, the cleaning fee should have gone up or the nightly rate should have been adjusted. Many operators absorb cost increases rather than reprice, then wonder why cleaning margin compressed.

20-plus properties:

At this scale, cleaning fee structure should be set per property type, not as a portfolio-wide default. A 1-bedroom urban apartment has different cleaning economics than a 5-bedroom beach house. Running them on the same fee structure will either undercharge on the large property or suppress conversion on the small one. Your PMS should allow per-listing fee settings. If it does not, that is a tooling constraint worth addressing. For operational decisions at this portfolio size, the guide on scaling STR operations from 10 to 30 properties covers when and how to implement property-level pricing differentiation.


Cleaning fees on direct booking sites

Direct bookings eliminate OTA service fees on the cleaning fee line. On a $200 cleaning fee via Airbnb, the guest pays roughly $228 total (fee plus ~14% service fee on that portion). Via your direct booking site, the $200 cleaning fee is $200.

This price advantage is worth making explicit to returning guests. A guest who booked twice via Airbnb and is now on your email list can see a direct booking for the same property at a lower total cost. The cleaning fee transparency on direct channels is a real conversion argument for repeat bookings.

The direct booking stack guide for STR operators without a marketing team covers the full infrastructure required to make this work at 5-20 properties.


Decision framework before changing your structure

Before setting or changing a cleaning fee:

  1. Calculate actual cleaning cost per turnover, crew time at real hourly rate, supplies, laundry, quality checks. Not an estimate.
  2. Pull your LOS distribution for the past 90 days. What percentage are 1-night, 2-3 nights, 4-7 nights, 7-plus nights?
  3. Check CTR data in your channel reports. If CTR has been declining over 60 or more days without a market-level explanation, fee shock is a primary candidate.
  4. Map each channel: Airbnb (total price display, baked-in advantage for short stays), Vrbo (separate fee OK), Booking.com (check your local display), direct (your choice, lean toward transparency).
  5. If your PMS does not support per-channel fee overrides and you run three or more OTAs, factor the tooling gap into your decision. One-size-fits-all is a constraint, not a strategy.

Tools mentioned

  • Hostfully: PMS with per-channel fee configuration; direct booking site included on Growth and above
  • OwnerRez: direct booking platform with granular fee customization and per-channel pricing
  • Hospitable: entry-tier PMS with cleaning fee settings; channel-level overrides limited on Professional tier
  • PriceLabs, Beyond Pricing: dynamic pricing tools that interact with your base rate; LOS restrictions are set separately in your PMS and should align with your cleaning fee structure before enabling auto-apply

Pricing for all tools analysed from publicly available documentation, May 2026. Verify current terms with each vendor before purchasing.

Frequently asked questions

Does Airbnb charge a service fee on top of my cleaning fee?
Yes. Your cleaning fee is included in the total booking cost and is subject to Airbnb's guest service fee (typically around 14%). This means a $150 cleaning fee generates roughly $21 in additional fees paid by the guest on top. Per Airbnb's total price display, in effect globally since 2023, the fee is visible in the per-night total at the search stage, not only at checkout.
Is it legal to charge high cleaning fees on Airbnb?
Airbnb imposes no hard cap on cleaning fees as of May 2026. You can charge any amount. The constraint is commercial: high cleaning fees relative to nightly rate reduce click-through rates, which factors into Airbnb's search ranking. A $300 cleaning fee on a $90/night property is not a terms violation, but it suppresses your listing's visibility.
Should I bake the cleaning fee into the nightly rate on Airbnb?
For most 5-20 property operators with average stays under 4 nights, yes. Airbnb's total price display means guests see the all-in cost regardless. Baking the cleaning cost into the nightly rate reduces fee shock and improves competitiveness when guests sort by total price. The exception is properties with a documented average LOS above 6 nights, where a separate fee is already well-amortized across the stay.
How do I handle cleaning fees across multiple OTAs?
Use a PMS with per-channel fee overrides. You set a baked-in rate for Airbnb, a separate cleaning fee on Vrbo, and adjust for Booking.com based on your local display. Hostfully and OwnerRez support this. Hospitable's entry tier does not. Without per-channel capability, you are forced to pick one structure that sub-optimizes at least two channels.