I started hosting on Airbnb last year and quickly discovered that tracking short-term rental income is way more complex than traditional long-term rentals. Between platform fees, occupancy taxes, the 1099-K confusion, and the Schedule E vs C debate, there’s a lot to get right.
Here’s my complete Beancount setup for tracking Airbnb income properly.
The 1099-K Trap: Understanding What Airbnb Reports
This is the most important thing to understand: Airbnb reports GROSS amounts on your 1099-K. This includes:
- The nightly rate
- Cleaning fees (if you charge them)
- Airbnb service fees (that YOU pay!)
- Occupancy taxes collected
If you just report the 1099-K amount as income and don’t deduct the fees, you’ll massively overpay on taxes.
; What Airbnb 1099-K reports vs what you actually received
2025-12-31 custom "1099k-reconciliation" "annual"
; 1099-K Box 1a (Gross Amount)
gross-reported-by-airbnb: 45000.00
; Breakdown of that gross
actual-rental-income: 42000.00
cleaning-fees-received: 3600.00 ; 12 stays * $300
airbnb-host-service-fees: -1350.00 ; 3% of bookings
airbnb-taxes-collected: 0 ; Remitted separately in my area
; What you deposited to bank
net-received: 44250.00 ; Matches bank deposits
; IMPORTANT: Report 45000 as gross, then deduct 1350 as expense
; Don't just report 44250 or IRS will flag mismatch!
My Account Structure
; === SHORT-TERM RENTAL ACCOUNTS ===
; Property: 789 Lake View Dr
; === INCOME ===
2025-01-01 open Income:Rental:STR:789LakeView:Nightly USD
2025-01-01 open Income:Rental:STR:789LakeView:CleaningFees USD
; === PLATFORM FEES (crucial to track separately!) ===
2025-01-01 open Expenses:Rental:STR:789LakeView:PlatformFees:Airbnb USD
2025-01-01 open Expenses:Rental:STR:789LakeView:PlatformFees:VRBO USD
2025-01-01 open Expenses:Rental:STR:789LakeView:PlatformFees:Direct USD
; === OPERATING EXPENSES ===
2025-01-01 open Expenses:Rental:STR:789LakeView:Cleaning USD
2025-01-01 open Expenses:Rental:STR:789LakeView:Supplies USD
2025-01-01 open Expenses:Rental:STR:789LakeView:Utilities USD
2025-01-01 open Expenses:Rental:STR:789LakeView:Insurance USD
2025-01-01 open Expenses:Rental:STR:789LakeView:Repairs USD
2025-01-01 open Expenses:Rental:STR:789LakeView:MortgageInterest USD
2025-01-01 open Expenses:Rental:STR:789LakeView:PropertyTax USD
2025-01-01 open Expenses:Rental:STR:789LakeView:Depreciation USD
2025-01-01 open Expenses:Rental:STR:789LakeView:Linens USD
2025-01-01 open Expenses:Rental:STR:789LakeView:Photography USD
; === OCCUPANCY TAX ===
2025-01-01 open Liabilities:OccupancyTax:789LakeView USD
; === PROPERTY ASSET ===
2025-01-01 open Assets:RealEstate:789LakeView:Building USD
2025-01-01 open Assets:RealEstate:789LakeView:Land USD
2025-01-01 open Assets:RealEstate:789LakeView:AccumDepr USD
2025-01-01 open Assets:RealEstate:789LakeView:Furnishings USD
2025-01-01 open Assets:RealEstate:789LakeView:Furnishings:AccumDepr USD
Recording a Single Booking
Here’s how I record each Airbnb payout:
; Guest: Johnson family, Feb 10-15 (5 nights)
; Listing rate: $200/night
; Cleaning fee: $150
2025-02-18 * "Airbnb" "Payout - Johnson booking Feb 10-15"
Assets:Bank:STR:Checking 1,107.00 USD
; Income components
Income:Rental:STR:789LakeView:Nightly -1,000.00 USD
Income:Rental:STR:789LakeView:CleaningFees -150.00 USD
; Airbnb host service fee (deducted from payout)
Expenses:Rental:STR:789LakeView:PlatformFees:Airbnb 34.50 USD
; Occupancy tax (Airbnb collected and will remit)
; Note: This doesn't affect your payout if Airbnb remits
; But track it if YOU must remit
guest: "Johnson"
checkin: 2025-02-10
checkout: 2025-02-15
nights: 5
gross-booking: 1150.00
airbnb-fee-rate: 3%
net-payout: 1107.00
When YOU Collect Occupancy Tax
In some jurisdictions, Airbnb doesn’t remit occupancy tax. You collect it and must pay it yourself:
; Guest pays you the tax, you hold as liability
2025-03-20 * "Airbnb" "Payout - Smith booking (includes occupancy tax)"
Assets:Bank:STR:Checking 1,250.00 USD
Income:Rental:STR:789LakeView:Nightly -1,000.00 USD
Income:Rental:STR:789LakeView:CleaningFees -150.00 USD
Expenses:Rental:STR:789LakeView:PlatformFees:Airbnb 34.50 USD
Liabilities:OccupancyTax:789LakeView -134.50 USD ; 12% of $1150
note: "Guest paid tax, I must remit quarterly"
; Quarterly remittance
2025-04-15 * "County Tax Authority" "Q1 occupancy tax remittance"
Liabilities:OccupancyTax:789LakeView 403.50 USD
Assets:Bank:STR:Checking -403.50 USD
period: "Q1 2025"
Multi-Platform Tracking
I list on both Airbnb and VRBO. Each has different fee structures:
; Airbnb: 3% host fee
2025-04-10 * "Airbnb" "Payout - Martinez booking"
Assets:Bank:STR:Checking 870.00 USD
Income:Rental:STR:789LakeView:Nightly -750.00 USD
Income:Rental:STR:789LakeView:CleaningFees -150.00 USD
Expenses:Rental:STR:789LakeView:PlatformFees:Airbnb 27.00 USD
; VRBO: 5% host fee
2025-04-15 * "VRBO" "Payout - Williams booking"
Assets:Bank:STR:Checking 855.00 USD
Income:Rental:STR:789LakeView:Nightly -750.00 USD
Income:Rental:STR:789LakeView:CleaningFees -150.00 USD
Expenses:Rental:STR:789LakeView:PlatformFees:VRBO 45.00 USD
; Direct booking (no platform fee, but I process payment)
2025-04-20 * "Stripe" "Direct booking - repeat guest Thompson"
Assets:Bank:STR:Checking 871.00 USD
Income:Rental:STR:789LakeView:Nightly -750.00 USD
Income:Rental:STR:789LakeView:CleaningFees -150.00 USD
Expenses:Rental:STR:789LakeView:PlatformFees:Direct 26.10 USD ; Stripe 2.9%
Cleaning Expenses vs Cleaning Fee Income
Don’t confuse guest-paid cleaning fees with what you pay your cleaner:
; You charge guest $150 cleaning fee
; You pay cleaner $120 per turnover
; Net: $30 profit per booking (taxable)
2025-02-15 * "Airbnb" "Payout includes cleaning fee"
Assets:Bank:STR:Checking xxx USD
Income:Rental:STR:789LakeView:CleaningFees -150.00 USD
; ... other postings
2025-02-16 * "Maria's Cleaning" "Turnover clean - Johnson checkout"
Expenses:Rental:STR:789LakeView:Cleaning 120.00 USD
Assets:Bank:STR:Checking -120.00 USD
booking: "Johnson Feb 10-15"
Year-End Query for 1099-K Reconciliation
This is the most important query - makes sure you can reconcile to your 1099-K:
; Total gross income (should match 1099-K Box 1a)
SELECT
year,
SUM(CASE WHEN account ~ "Income:Rental:STR" THEN -position ELSE 0 END) as gross_income,
SUM(CASE WHEN account ~ "PlatformFees" THEN position ELSE 0 END) as platform_fees,
SUM(CASE WHEN account ~ "Income:Rental:STR" THEN -position ELSE 0 END) -
SUM(CASE WHEN account ~ "PlatformFees" THEN position ELSE 0 END) as net_after_fees
WHERE
(account ~ "Income:Rental:STR" OR account ~ "PlatformFees")
AND account ~ "789LakeView"
GROUP BY year
Schedule E vs Schedule C: Track Your Services
The key question is: do you provide “substantial services”? Track what you offer:
2025-01-01 custom "str-services-provided" "789LakeView"
; Basic landlord services (Schedule E)
heat-and-utilities: TRUE
cleaning-between-guests: TRUE
linens-provided: TRUE
wifi-internet: TRUE
parking: TRUE
; Substantial services that might trigger Schedule C
daily-housekeeping: FALSE ; Key trigger!
meals-provided: FALSE ; Key trigger!
concierge-services: FALSE
guided-tours: FALSE
laundry-service-during-stay: FALSE
; My conclusion
schedule: "E"
reason: "No substantial services - cleaning only between guests"
self-employment-tax: FALSE
Questions I’m still figuring out:
- How do you handle partial refunds when Airbnb keeps their fee?
- Anyone tracking co-host payouts in Beancount?
- Best practices for tracking furnishings depreciation (5 or 7 years)?
The 1099-K reconciliation is the key - if your books don’t match what Airbnb reports, expect IRS questions.