Every few months I get the same message from another operator: “wait, how much accommodation tax am I supposed to be charging in [city]?” And every time, the honest answer is “it depends which city, which band, and whether you’re calculating off the room rate or the total price.” That inconsistency across Japan is annoying enough that we ended up writing code to solve it for ourselves — and then decided to open-source it.

TL;DR

  • Japan has no single national accommodation tax — it’s levied locally, by individual prefectures, cities, and towns, and each sets its own rules. Most fixed-tier taxes are calculated per guest per night, while percentage-based jurisdictions calculate against the locally defined accommodation charge instead — Kutchan, for example, charges 3% of the accommodation charge starting 2026-04-01.
  • Some jurisdictions use flat banded amounts (Tokyo, Osaka Prefecture), others use brackets that scale with room rate (Kyoto), and some use a straight percentage instead.
  • Some OTA or reservation-site prepayments may not include Japanese accommodation tax; where the platform doesn’t collect and remit the relevant local tax for a listing, the operator has to collect and remit it separately under the local rules.
  • A common mistake is using a base amount that doesn’t match the local definition of the accommodation charge — Osaka Prefecture includes mandatory cleaning fees, while Tokyo and Kyoto use tax-exclusive room-only or room-plus-service-charge definitions that exclude meals and taxes.
  • japan-stay-tax is an open-source library that encodes these jurisdiction-by-jurisdiction rules with source-dated data, reducing how much operators and developers have to reimplement — but rates change, so verify official sources before filing or remitting.

What Problem Does Accommodation Tax Create for Operators?

The problem is that “accommodation tax” isn’t one tax — it’s a patchwork of local ones. Tokyo currently taxes hotel and ryokan stays: no tax under ¥10,000 a night, ¥100 for ¥10,000 to under ¥15,000, and ¥200 at ¥15,000 and up. That’s set to change from 2027-04-01, when Tokyo expands the tax to hotels, ryokan, simple lodgings, and minpaku, and switches to a flat 3% of the accommodation charge with no tax below ¥13,000 — so minpaku hosts in Tokyo, currently untaxed, become subject to it from that date. Kyoto generally taxes all lodging guests, including minpaku guests, though school trips and certain preschool overnight stays are exempt; since 2026-03-01 its bands run from ¥200 for stays under ¥6,000 up to ¥10,000 for stays of ¥100,000 or more. Osaka Prefecture — not just Osaka City — uses bands too, with its own tax-free floor and rate steps that differ from Tokyo’s. On top of that, some jurisdictions, like Kutchan in Hokkaido, levy a flat percentage of the accommodation charge instead of a fixed amount per band, and new municipalities keep adopting the tax — this isn’t a fixed list you can memorize once and forget.

If you run one property in one city, you can probably keep the rule in your head. The trouble starts when you run properties in more than one city, or when a city updates its bands, or when someone new joins your team and doesn’t know the local quirks yet.

Why Is This So Easy to Get Wrong?

It’s easy to get wrong because you can’t assume the OTA has handled it. Some OTA or reservation-site prepayments may not include Japanese accommodation tax at all; where the platform doesn’t collect and remit the relevant local tax for a given listing, it’s the registered special collector — usually the operator — who has to collect it from the guest and remit it to the local jurisdiction, on their own schedule, using their own calculation. That means the calculation logic often lives in your spreadsheet, your PMS, or your head — not in the platform, and it’s worth confirming per platform and property rather than assuming either way.

A common mistake we’ve seen (and made ourselves, early on) is using a base amount that doesn’t match the local definition of the accommodation charge. It’s not a single rule: Osaka Prefecture explicitly includes mandatory cleaning fees in the taxable amount, while Tokyo and Kyoto define it as a tax-exclusive room-only or room-plus-service-charge figure that excludes meals and taxes. Get the base wrong for the jurisdiction you’re in and you’ve either over-collected from guests or under-remitted to the local authority — both are bad conversations to have later.

How Does japan-stay-tax Work?

It works by encoding each jurisdiction’s accommodation tax structure — flat, banded, or percentage — into a single open-source library, so the calculation is defined once and reused instead of re-derived per jurisdiction, per person, per spreadsheet. Instead of hand-coding “if Tokyo, check thresholds A/B/C” logic every time you build a booking flow or reconcile a monthly filing, you call the library and it applies the right structure for that jurisdiction.

It’s on GitHub: github.com/benstaydev/japan-stay-tax. It’s open source, so if you’re a developer building a booking engine, PMS integration, or internal reconciliation tool for Japanese short-term rentals, you can pull it in directly rather than reimplementing city rules from scratch.

Who Should Use This Tool?

Anyone writing code that touches Japanese accommodation tax is the direct audience — developers building booking systems, channel managers, or finance tooling for hosts and property managers who operate across multiple cities. If you’re a solo host with one listing in one city, you may genuinely be fine just knowing your local rule by heart; that’s a completely reasonable outcome, and we’d rather say that plainly than oversell a library you don’t need.

Where it stops being optional, in our experience, is the moment you cross a second city, hand tax calculation off to someone else on your team, or build any kind of automated pricing or invoicing flow — that’s where a manually maintained rule set quietly goes stale.

What Does It Not Do?

It calculates the tax structure — it doesn’t file or remit anything on your behalf. japan-stay-tax handles the “how much, based on which city’s rule” part of the problem. Actually collecting the tax from guests, tracking it against your bookings, and remitting it to each municipality on their schedule is still a separate operational process. We built it to remove the “which band applies here” guesswork, not to replace your filing workflow entirely.

FAQ

Q: Does every city in Japan charge an accommodation tax?

No. Accommodation tax is optional and set at the prefecture, city, or town level, not nationally. Some jurisdictions have adopted it, others haven’t, and new ones add it periodically — there’s no single national rate or rule.

Q: Is the accommodation tax included in what OTAs like Airbnb pay me?

Not necessarily. Some OTA or reservation-site prepayments may not include Japanese accommodation tax. Where the platform doesn’t collect and remit the relevant local tax for a listing, the registered collector — usually the operator — needs to collect it from the guest and remit it separately, based on the applicable jurisdiction’s structure. Confirm this per platform and property rather than assuming either way.

Q: What’s the most common mistake operators make with this tax?

Applying the wrong base amount for the jurisdiction — for example, leaving out cleaning fees where a jurisdiction like Osaka Prefecture requires them to be included, or including cleaning fees and meals in places like Tokyo or Kyoto that exclude them.


This post is for informational purposes only and does not constitute legal or tax advice. Please consult a qualified professional for your specific situation.