Visitor Levy for Airbnb hosts
Airbnb's own reports mix several different figures together — gross earnings, host payout, cleaning fees, Airbnb's service fee. The Visitor Levy is calculated on exactly one of them. Get this wrong and every booking's levy is wrong.
Gross accommodation amount, not payout amount
The levy is calculated on the accommodation portion of what the guest was charged — before Airbnb deducts its host service fee, not the amount that lands in your bank account. Airbnb's transaction history export usually has both figures somewhere, often under different column names depending on which report you download ("Earnings", "Gross earnings", "Amount paid by guest", "Payout"), and it's easy to map the wrong one.
When you import a CSV, the column mapper checks whether a column you've mapped to the accommodation amount looks like it's actually a net payout figure (one already reduced by fees or commission) rather than the gross accommodation amount — and warns you before you proceed, rather than silently calculating the levy on the wrong number. It's a heuristic based on the column header text, so it's not infallible: if your export only has a payout column and no gross figure, check Airbnb's separate earnings summary or transaction detail for the true gross amount.
Cleaning fees aren't automatically excluded
Under Edinburgh's confirmed scheme (and the same principle almost certainly applies wherever else a scheme goes live), the levy is charged on the accommodation amount only — Airbnb's service fee and genuinely optional extras are excluded from the taxable base. Cleaning fees are classified rather than assumed either way: map your export's cleaning fee column to "Cleaning fee" rather than folding it into accommodation, so the engine can tell a mandatory changeover charge (included in the levy base) apart from a genuinely optional one (excluded). If your export doesn't say which applies, the fee is excluded for now and the booking is flagged for review rather than calculated on a guess — see cleaning fees and the Visitor Levy for the full detail.
Stay dates vs payout dates, and the booking cutoff
Airbnb payout reports are organised around when you were paid, not when the guest actually stayed — those can be weeks apart, and payouts can be split across multiple dates for a single reservation. The levy calculation needs the actual check-in and check-out dates of the stay, not a payout date.
Where a scheme has a booking cutoff date (a transitional rule exempting bookings made before the levy started), the calculation also needs your booking date or first payment date — this is separate from the stay dates, and both matter for getting the right figure.
Long stays and the night cap
Most confirmed schemes cap the number of chargeable nights per stay — Edinburgh's is 5. A two-week Airbnb booking doesn't get charged levy on all 14 nights; only the first 5 are eligible, and where only a total accommodation amount is available (rather than a per-night breakdown), that total is pro-rated down to the capped nights automatically. You don't need to do this math yourself — every calculation, whether from a single booking or a full import, runs through the same engine.
Importing your Airbnb export
Download a transaction or reservation report as CSV from Airbnb, and import it directly — there is no live Airbnb account connection or API integration; this is a straightforward spreadsheet import. Column headers are matched against a set of known Airbnb export formats and a mapping is suggested automatically; you confirm or adjust it before anything is calculated. The file itself is parsed in your browser — only the sanitised, levy-relevant fields (dates, amounts, currency) are sent to your account, never guest names, emails or phone numbers.
Your quarterly workflow
- 1. Import your Airbnb export for the quarter (or as bookings come in).
- 2. Confirm the column mapping — check any net-payout warning carefully.
- 3. Review Return Readiness for flagged bookings or missing data before you file.
- 4. Lock the quarter and record what you filed and paid, as your own record — Visitor Levy Calculator prepares the figures, it doesn't submit anything to the council on your behalf.
Try it with one booking first
Use the free calculator to see how a single Airbnb stay's figures translate into a levy amount — no account or import needed.