The STR analyzer underwrites vacation rentals where revenue is driven by nightly rate and how many nights you book, not a fixed lease. It works whether you're listing on Airbnb, VRBO, or going direct.
Inputs explained
- ADR (Average Daily Rate): your average nightly price across the year.
- Occupancy %: booked nights ÷ available nights. AirDNA is your friend here.
- Cleaning fee: pass-through; tracked separately so it doesn't inflate ADR.
- Platform fees: 3% (host) to 14% (host-only) depending on platform.
- Utilities, internet, supplies: STRs pay these; LTRs usually don't.
- STR-specific insurance: proper short-term-rental coverage, not a standard landlord policy.
How the math works
- Annual revenue = ADR × 365 × occupancy, or the sum of peak and off-peak revenue when seasonality is configured.
- RevPAR = annual room revenue ÷ 365 (equivalent to ADR × occupancy at the annualized level).
- Cleaning is a pass-through: only the net cost (cleaner pay − guest fee, when negative) hits OpEx.
- OpEx includes taxes, insurance, HOA, utilities, wifi, permits, reserves (maintenance and capex as % of revenue), Airbnb service fee, co-host / PM %, and net cleaning cost. Vacancy is already baked into occupancy, so no separate vacancy reserve.
- NOI = annual revenue − OpEx (excludes debt service).
- Cash flow = NOI − annual debt service.
- Cash-on-cash = annual cash flow ÷ total cash invested (down + closing + rehab + furnishing).
Reading the results
Cash-on-cash
≥ 12%
STRs should beat LTRs
RevPAR
> market median
ADR × occupancy
Stress test
55% occ.
Still cash-flow positive
