Home · Blog · Field Notes
2026-07-29 STR TAX · SCHEDULE E · OCCUPANCY TAX 10 min read

The Occupancy Tax Trap: Why Your STR Bank Deposits Don't Match Your Revenue (And What to Actually Report)

Guest pays $1,000. Airbnb keeps its host service fee. State remits its occupancy tax straight to the state. Your bank shows a deposit of maybe $780. Your PMS shows "gross revenue" of $850. The IRS wants a Line 3 number that's different from both. Every STR operator I know has been burned by this at least once — either over-reporting revenue (and over-paying income tax on money that was never theirs), or under-reporting (and now on the hook if the state comes asking). Here's exactly what to do, per Publication 527 and how each major platform actually behaves.

The three buckets inside every guest payment

Every guest checkout on Airbnb, Vrbo, Booking.com, or your direct-book site is made up of three distinct dollar buckets. Each one has a different tax treatment. Each one lands (or doesn't land) in your bank in a different way. Understanding the three buckets is the whole game.

BucketWhat it isWhose money is it?
1. Base rentNightly rate × nights + pet fees + extra-guest feesYours. Schedule E Line 3.
2. Cleaning feeThe turnover fee you charge the guestYours. Also Schedule E Line 3.
3. Occupancy taxState / county / city lodging tax on the stayNOT yours. Belongs to the taxing jurisdiction. Passthrough.

Bucket 3 is the trap. In tax law it's called a "passthrough" or "in-and-out." The guest paid it, you collected it (maybe), you remit it (maybe), but at no point is it revenue you earned. It never becomes income to you. It should never appear on Schedule E Line 3.

IRS Publication 527 is clear on this — amounts you collect on behalf of a taxing authority and remit are not part of your rental income. But most STR operators put them on Line 3 anyway, because their PMS "gross revenue" column includes them. Then they also deduct the same amount on Line 15 (Taxes) — creating a wash that looks harmless but isn't (more on this in a moment).

Who actually collects and remits — by platform, by state

This is where operators get tripped up: the platform behavior varies wildly by state. Airbnb, Vrbo, and Booking.com each have different agreements with different states about who calculates, collects, and remits occupancy tax. What was true in your state in 2023 may not be true in 2026.

Airbnb

Airbnb automatically collects and remits state and, in many cases, local occupancy tax in a growing list of jurisdictions — currently over 30 US states and hundreds of counties/cities. In those places, the tax bucket never enters your account. Airbnb charges the guest, holds the tax, remits it to the state, and only deposits the base rent + cleaning to you.

In states where Airbnb does not collect (or where they collect state but not local), the tax is either not charged at all (and you're on the hook for it out of your rent) or is passed through to you as a line item and you have to remit it yourself. The distinction is critical: same $1,000 booking, wildly different bookkeeping and remittance obligations depending on which side of the Airbnb-collects line your city sits on.

Vrbo

Vrbo's tax collection coverage is narrower than Airbnb's. In some states they collect and remit; in others they collect but pass to you to remit; in others they don't collect at all. Their "Lodging Tax" line on your reservation report tells you what they charged; whether they remitted it is a separate question you have to check per jurisdiction.

Booking.com

Booking.com generally does not collect and remit occupancy tax in the US. If a booking comes through Booking.com, the state assumes you (the operator) are on the hook for the full tax obligation regardless of whether you collected it from the guest.

Direct-book

If a guest books directly through your website or a friend's referral, no platform is doing anything. You calculate the tax, you charge it, you collect it, you file the return, you remit it. Every property in every jurisdiction you operate in has its own rate and filing cadence (monthly, quarterly, annual — varies).

⚠️ The dangerous state: partial collection

The worst configuration is when Airbnb collects the STATE portion of occupancy tax but not the CITY or COUNTY portion. Common in Florida, Tennessee, and parts of Texas. Your Airbnb payout looks like everything's handled — but you still owe the local jurisdiction. Miss a few quarters and the county sends a bill for the tax + penalty + interest. This is the #1 way operators get surprised.

Why getting Line 3 wrong isn't a "wash"

The most common defense I hear is: "But if I put the occupancy tax on both Line 3 (revenue) and Line 15 (taxes), it nets to zero and my tax bill is the same." That's true for federal income tax. It's not true for anything else on your return that keys off Line 3.

  • §280A personal-use limits. If you use the property personally (even one weekend), your allowable deductions are capped as a fraction of gross rental days. Inflating Line 3 with passthrough tax changes the denominator in that calculation, which can shift how much of your legitimate expenses becomes deductible.
  • Passive-loss cap for non-REPS operators. The $25,000 special allowance under §469(i) phases out based on modified AGI. Inflating Line 3 (via SE tax passthrough) doesn't hit MAGI, but it does show up on lender debt-service-coverage calculations, insurance premium tiers, and self-employment audit thresholds.
  • Material participation reasonableness. If you're claiming REPS or the STR loophole and your Line 3 revenue-to-hours ratio looks weird (very high revenue relative to logged hours), it invites scrutiny. Every extra dollar of fake revenue on Line 3 makes your hours look less credible.
  • State income tax. Most states start from federal AGI. Some pull revenue-side numbers separately. In states with gross-receipts taxes (WA, TX for franchise), inflating Line 3 does increase your tax bill.
  • Audit exposure. If the state comes asking whether you remitted occupancy tax and your Schedule E says you collected $X in taxes but your state filing says $Y and they don't match — that's a paper trail that gets attention.

The clean version is boring and correct: Line 3 = base rent + cleaning + pet fees (buckets 1 and 2), and occupancy tax collected+remitted by the platform never touches your return at all. Occupancy tax you collect+remit yourself goes through a liability account (not revenue, not expense), or on Line 15 only in narrow cases where you paid it out of your own pocket after the fact.

The 4-step reconciliation checklist

Do this once a year (or better, monthly if you close monthly). Per property, per platform.

Step 1 · Pull the reservation-level export from your PMS or platform

Not the summary. Not the payout report. The reservation-level detail export that shows, for each stay: base rent, cleaning fee, service fee, occupancy tax collected, and net payout.

Step 2 · Sum the four columns for the tax year

For each property, add up: base rent · cleaning fee · service fee (platform's cut) · occupancy tax collected.

Step 3 · Categorize on your Schedule E

  • Base rent + cleaning fee → Line 3 (Rents received) — this is your true gross rent.
  • Service fee → Line 11 (Management fees) — deductible expense.
  • Occupancy tax collected AND remitted by platform → nowhere on your return. It was never yours. (You can note it in your books as a memo, but it doesn't touch the income statement.)
  • Occupancy tax collected by platform AND passed to you to remit → hits a Liability account on your balance sheet when received; clears when you remit. Nothing on Line 3, nothing on Line 15.
  • Occupancy tax you collected yourself and remitted → same as above — liability account, in and out.
  • Occupancy tax you owe but the platform never collected (partial-collection states) → still comes out of the rent bucket. Line 15 (Taxes) as an expense if you paid it out of pocket, tracked separately from property tax.

Step 4 · Cross-check bank deposits

Your total bank deposits for the year should reconcile to: base rent + cleaning − service fee − (any tax the platform collected but did NOT remit and instead passed to you) − any refunds − any chargebacks. If your bank total doesn't tie to that math within a few dollars per property, you have a categorization error somewhere.

Where this shows up in RentReel

Every reservation import in RentReel splits the payment into the four buckets automatically — base rent, cleaning, service fee, occupancy tax — and tags each with its correct Schedule E line (or none, in the case of platform-remitted tax). The Tax Passthrough report shows, per jurisdiction, how much occupancy tax was collected on your behalf and by whom, so if the state ever asks "did you remit the $X in occupancy tax you collected in Q3?" you have the answer in one click.

If you're doing this by hand right now in QuickBooks or a spreadsheet, the workflow above is what to codify. If you'd rather have a tool that just does it, that's what we built RentReel for.

See it done on your own reservations

Try RentReel with a real 5-property demo (no signup) — the Schedule E view breaks out base rent, cleaning, service fee, and occupancy tax passthrough per property so you can see the split live.

Related field notes

Disclaimer

RentReel is bookkeeping software, not tax advice. Occupancy tax law is state and municipal, changes frequently, and interacts with your specific facts (residency, LLC structure, aggregate election, primary-vs-secondary use, and the exact remittance agreements between platforms and your jurisdiction). Everything above is the framework I use on my own 5 properties, cross-checked against Publication 527 and the platforms' own published documentation as of 2026. Consult a licensed CPA (ideally one who specializes in short-term rentals) before filing.