🎣 See your first-year STR deduction, free. No signup, no card. Tax-ready books your CPA files from.
Home · Blog · Field Notes
2026-07-28 STR TAX · SCHEDULE E 9 min read

The 'Gross Rent' Trap in PMS Exports (Why Your Schedule E Line 3 Is Probably Wrong)

Every property management system I've used (Hospitable, Guesty, Hostaway, OwnerRez, Lodgify) has a column literally labeled "Gross Revenue" or "Gross Rent" in its reservations export. It's a lie. Not maliciously, but consistently. What that column actually holds is net of the platform's service fee. Real Schedule E Line 3 lives higher up the CSV. If you've been importing "gross revenue" from your PMS straight to your books, your Line 3 is under-reported, probably by 12-20% of your true top line, and your expenses are under-reported by the exact same amount.

What Schedule E Line 3 actually asks for

Schedule E Instructions for Line 3 (Rents received) are short and unambiguous: report the total gross rents received during the year. Not net. Not deposits-only. Not what hit your bank. The gross amount the property earned, before any fee, before any withholding, before any passthrough.

For long-term rentals this is obvious: the tenant pays $2,500, you write $2,500 on Line 3. For STRs it gets weird fast, because the guest doesn't pay you directly. Airbnb (or Vrbo, or Booking.com) collects the full amount from the guest, subtracts its host service fee, then deposits the remainder to you. That deposit is not what belongs on Line 3.

What belongs on Line 3 is the amount the guest actually paid for the stay (the nightly rate × nights + your cleaning fee + your pet fee + any extra charges) before the platform took its cut. (What you paid the cleaner is a Line 7 expense and, at $2,000 or more in 2026, a 1099-NEC obligation; the two numbers are unrelated.) The service fee they charged you belongs on Line 11 (Management fees) as a deductible expense. Both entries are separately reportable. Netting them out on Line 3 is imprecise, and it changes your tax return.

⚠️ Why "just report what you deposited" is wrong

Reporting only your deposit understates both Line 3 (revenue) AND Line 11 (deductible management expense). The net income is the same, but gross is what the form asks for, and it is the number the IRS can match: a platform's 1099-K reports gross payments with no adjustment for its fees (Form 1099-K instructions). In any year personal use makes the property a residence under §280A(d), Line 3 is also the ceiling on your deductions under §280A(c)(5). And it is the revenue figure a lender or an examiner reads next to your logged hours.

What "gross revenue" in your PMS export actually means

Every PMS I've imported into a bookkeeping tool exports a column called some version of "Gross Revenue," "Gross Rent," "Amount," or "Total." In every case I've checked, that column is already net of the platform service fee. Here's what's actually there vs. what you'd assume:

PMSColumn labeledWhat it actually contains
HospitableGross RevenueNet of Airbnb/Vrbo host fee, includes cleaning & occupancy tax
GuestyTotal PayoutWhat was wired to you: net of platform fee AND net of Guesty fee
HostawayGross RentNet of channel service fee, includes cleaning
OwnerRezAmountSometimes gross, sometimes net, depending on which report you export
LodgifyRevenueNet of channel service fee for OTA bookings; gross for direct
Airbnb direct exportEarningsNet. This is literally the payout column, not gross

The math varies by platform. Airbnb's host service fee is 15.5% of the subtotal for most US hosts in 2026 (it was about 3% under the split fee Airbnb retired for software-connected hosts in October 2025). Vrbo's traveler fee model means the platform fee shows up differently. Booking.com's commission is 15-18% and comes off before your payout. Hospitable, Guesty, and Hostaway all pass through what the OTA sent them, minus their own PMS fee if applicable. The exact percentage matters less than the pattern: every "gross" column is already at least one layer of fee deducted from the guest's actual payment.

The true gross, the number Line 3 wants, is usually available in the same CSV, but under a different column. Look for "Total Charged to Guest," "Reservation Total," "Booking Total," or the sum of "Nightly Rate × Nights + Cleaning + Pet Fee + Extras." That's your Line 3.

The audit that surfaced this in my own books

I noticed the pattern late last year when I was cleaning up 2025 books for my own tax filing. One of my properties, Joy On The Lake in Kentucky, had bank deposits from Airbnb/Vrbo/Booking totaling about $20,980 for the year. My Hospitable export showed the "gross revenue" column at $15,467. That $5,500 gap between what actually cleared my bank and what my PMS called "gross" (for a single property) didn't smell right.

When I dug in, the answer was obvious: the Hospitable "gross" column was net of the OTA service fees (Airbnb host fee + Vrbo traveler fee + Booking commission), even though the guest had paid the full amount. The bank deposit was closer to the truth than the "gross" column. Neither was actually the right Line 3 number. Line 3 needed to be even higher, because it also includes the cleaning fee and occupancy tax that Airbnb collected on my behalf but sometimes remitted on my behalf and sometimes didn't (more on that in a minute).

Extending the pattern across all five of my properties, my books had been under-reporting gross rent by roughly $20,000 for the year. My net income was correct-ish (because the missing fee expense was also missing from Line 11), but everything that reads gross (the 1099-K match, the §280A(c)(5) ceiling, revenue next to my logged hours) was working with the wrong input.

The 3-step self-check every STR operator should run

You can catch this in your own books in about 20 minutes per property:

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

Not the summary. The row-per-reservation export with every fee column visible. In Hospitable this is Reports → Reservations → Export CSV. In Guesty and Hostaway you'll find similar under Reports or Analytics.

Step 2 · Sum the "Gross Revenue" (or equivalent) column for one property, one month

Pick a month with at least 4 reservations. Sum the labeled-gross column. Write it down. Call it PMS_GROSS.

Step 3 · Sum the true guest payments from the same reservations

In the same CSV, for the same reservations, sum Nightly rate × Nights + Cleaning fee + Pet fee + Any other guest-paid charge. Do not subtract anything. Include occupancy tax if it's in a separate column. Call this TRUE_GROSS.

If TRUE_GROSS > PMS_GROSS, and it almost certainly will be, the difference is your platform service fee for that month. That fee needs to go on Schedule E Line 11 (Management fees). The true gross needs to be Line 3.

Real numbers from my own Joy On The Lake, June 2025: PMS-labeled gross was $1,842. True guest-paid gross was $2,203. The difference ($361 in Airbnb service fee for the month) belonged on Line 11 and needed to be added back to Line 3. Do this monthly across your portfolio and the correction compounds into thousands of dollars of clean numbers per year.
Waterfall: true guest-paid gross vs the PMS "gross revenue" column Waterfall chart of the Joy On The Lake June 2025 example. The first bar is the true guest-paid gross of $2,203, the number Schedule E Line 3 wants. A floating middle bar subtracts the $361 platform service fee, which belongs on Line 11 as a management-fee deduction. The final bar is $1,842, the column the PMS labels gross revenue, already net of the fee. Importing the labeled column understates Line 3 and loses the Line 11 deduction at the same time. $2,203 TRUE_GROSS what guests actually paid − $361 platform service fee $1,842 PMS "gross" column already net of the fee → Schedule E Line 3 → Line 11 (Management fees) → not a tax line at all Joy On The Lake · June 2025 · one property, one month. Book the gray bar as Line 3 and both green and amber numbers are wrong
The June 2025 example as a waterfall: the "gross revenue" column your PMS exports is the right-hand bar. Line 3 wants the left-hand bar, and the $361 difference is a deduction you're entitled to on Line 11; importing the labeled column loses both at once.

The occupancy-tax passthrough sub-trap

There's a second layer to the same problem that trips even careful operators. When Airbnb, Vrbo, or Booking.com collect a state/local occupancy or lodging tax on a booking, they sometimes remit it directly to the jurisdiction on your behalf, and sometimes just pass the collected amount through to you and expect you to remit. Which behavior applies depends on your specific city and specific platform.

For jurisdictions where the platform remits directly, the tax should not appear on your Schedule E at all; it's not your revenue and it's not your expense. For jurisdictions where the platform passes it to you, the tax appears on your Line 3 (as gross rent received) AND on Line 16 or Line 19 as taxes-paid (when you remit to the city). It's a wash to net income but has to be reported on both sides.

The IRS has been increasingly focused on this in STR audits because it's a common way to accidentally understate gross rents. See the FAQ on rental real estate issues. If you're in Florida, Tennessee, or Colorado (states with active state-level lodging tax enforcement), this is worth checking with your CPA.

How to fix it

There are two paths, depending on how much manual work you're up for.

Manual (works but takes hours per property per year)

  • Export the reservation-level CSV from your PMS monthly
  • Compute true gross rent per reservation (nightly × nights + all guest-paid fees)
  • Split platform service fee into Line 11
  • Split occupancy tax collected into a passthrough tracker per jurisdiction
  • Reconcile against your bank deposits monthly to catch any missing cash movement
  • Reflect all of the above in your bookkeeping software (QuickBooks, Xero, or a spreadsheet)

Automated (what RentReel does out of the box)

When you upload any PMS CSV into RentReel, the parser doesn't trust the "gross revenue" column. It re-computes gross from the underlying nightly-rate + fee columns, treats the OTA service fee as a Line 11 management expense automatically, and splits occupancy tax collected into a passthrough tracker by jurisdiction × month. Your Schedule E Line 3 gets the correct gross, Line 11 gets the fee, and Line 16 gets the remitted lodging tax, all in the right place with the right amounts. Any imbalance vs. your bank deposits gets flagged for review rather than silently dropped.

None of this is tax advice. Always run your final Schedule E by a licensed CPA. But if the gross-vs-net trap has been silently distorting your books, this is one of the easier fixes to make once you know it's there.

Not tax advice

RentReel is bookkeeping software, not a CPA or tax preparer. Every number RentReel produces is an estimate based on data you provide and IRS rules as published. Always have a licensed CPA review your Schedule E before filing.

Frequently asked questions

Is the "gross revenue" column in a PMS export really gross?

Often not. In the exports checked for this post (Hospitable, Guesty, Hostaway, OwnerRez, Lodgify, and Airbnb's own), the column labeled gross was already net of at least the platform service fee. The real guest-paid total usually sits in the same CSV under another name, such as "Total Charged to Guest," or can be rebuilt as nightly rate times nights plus guest-paid fees.

What does Schedule E Line 3 ask for?

Rents received: what the guest paid for the stay before the platform's fee, not the deposit that hit your bank. The platform's service fee goes on its own expense line, Line 8 for commissions or Line 11 for management fees, whichever your CPA uses.

Why is reporting only my Airbnb deposits wrong if net income comes out the same?

Because Line 3 and the expense lines are both short by the fee, and gross is the number the IRS can check. A platform's 1099-K reports gross payments with no adjustment for its fees, so a deposit-based Line 3 will not tie to it. Line 3 is also the ceiling on deductions under §280A(c)(5) in any year personal use makes the property a residence, and it is the revenue a lender underwrites.

How do I check my own books for the gross-vs-net problem?

Take one property and one month. Sum the PMS column labeled gross, then sum nightly rate times nights plus every guest-paid fee for the same reservations. If the second number is higher, the difference is the platform fee. It belongs on an expense line, and the higher number belongs on Line 3.

Related deep dives

Want RentReel to run this check on your books?

Drop a Hospitable, Guesty, OwnerRez, Hostaway, Lodgify, or Airbnb-direct CSV into RentReel and see gross vs. net split the right way, automatically. Start free, no card required · 14 days of everything on Investor ($79/mo).