
Why TaxWize
Where your tax data actually runs
Which part of TaxWize runs on which machine, who operates it, what leaves Switzerland, and why encrypted means three different things with three different owners.
Updated on 06.09.2026 · 7 min read
The tax documents you upload sit in Swiss object storage. The database, the text recognition for scans and the tax calculation run on a machine in a Swiss data centre. The language model that reads your documents also runs in Switzerland. Since 19.08.2026 the same is true of the website analytics, which used to run in the vendor's EU cloud.
Two things leave the country, and I'll name both here: payment processing through Stripe, and the optional "Sign in with Google" button. Neither of them ever sees your tax documents.
That's the short answer. The longer one is more interesting, because "hosted in Switzerland" costs nothing to write and is a string of separate decisions to actually run.
Every storage unit has an address
A storage unit in Dietikon and one in Ohio look identical from the inside. Same shelving, same padlock, same receipt taped to the wall. The address is the only difference, and you notice it exactly once: when somebody knocks.
Software has the same property, just invisibly. A website looks the same everywhere on earth, and underneath sit real machines in real places, each of them belonging to somebody. So here's a table instead of an adjective.
The questions worth putting to any provider are a separate piece: six questions to ask before you upload your tax documents. This one is only about TaxWize.
Which piece runs where?
| Component | Where it runs | Who operates it | Tax data abroad |
|---|---|---|---|
| Website and application | machine in a Swiss data centre | me | no |
| Database and sign-in | same machine | me, open-source Supabase | no |
| Uploaded documents | Swiss object storage | the Swiss provider's storage service | no |
| Text recognition for scans and photos | same machine | me, Tesseract | no |
| Language model that reads documents | Swiss infrastructure | a Swiss provider | no |
| Tax calculation | same machine | me | no |
| Website analytics | own server in Switzerland | me, Plausible Community Edition | no tax data, no personal data |
| Nightly backups | Swiss object storage | me, encrypted before it is stored | no |
| Payment | EU and United States | Stripe | payment data only, never documents |
| "Sign in with Google", optional | no tax data |
The database row deserves a footnote. Supabase is in that table as software, not as a supplier: it's open source and I run it myself. There's no account at an American company that your tax data flows into.
The analytics row moved recently. Until 19.08.2026 it ran in the vendor's EU cloud. What gets counted there is page views, and tax data was never part of it. I moved it onto a Swiss server of my own anyway, because an exception you have to explain every time costs more than removing it. The host behind the Swiss rows in that table is Infomaniak Network SA, a Swiss company with its registered office in Geneva (that's the name on file with the federal UID register and Zefix, UID CHE-103.167.648), and the full entry with its purpose, location and safeguards is in the subprocessor register in the privacy policy.
And the language model, the one row I don't run myself. It's a third-party, open-weight model. It runs in Switzerland, I don't develop it further, and your content isn't used to train it. Its job ends at reading: every value it proposes can be reviewed, corrected or discarded before any calculation happens, and the calculation itself is a rule set carrying your canton's published rates.
There's also a second, identically built machine for testing. It holds no customer documents, and new versions go there first.
What actually leaves Switzerland
Stripe handles payment and processes data in the EU and the United States. Stripe learns the amount, the currency and your billing details. It never receives your documents or the tax figures read out of them, because payment hangs off a different part of the application than your declaration.
The second exception is a button. "Sign in with Google" is optional and only replaces a password. Skip it, sign in with an email address, and no international provider of mine is involved.
Encrypted means three things
Three different things hide under the word "encrypted" here, with three different people responsible, and this is where I'd rather not take a shortcut.
Between your browser and the server it's TLS. That's standard, and it says nothing about what happens afterwards.
In the backups it's AES-256, applied on the machine itself before the file is copied anywhere, with a key I hold. That's the only layer entirely in my hands.
In the object storage, where your documents sit, the platform encrypts at rest, per the host's own statement. For the live database I lean on that same platform encryption, and that layer I can't verify myself. A real difference from the backup leg, and I'd rather name it than fold it into one word. What doesn't exist here is end-to-end encryption. It couldn't, because the software has to read your figures to compute with them.
Why the rule lives in the build
A sentence on a website is an intention. What's more interesting is what happens when somebody breaks it by accident.
There's one sitting in the code. Back when document reading still ran through an American provider, it was moved to that provider's European address and the old global one was locked out by an automatic check. The check still runs on every new version: if that address reappears in the code, the build fails and nothing ships. It guards one address, not Swiss processing as a whole, since where the requests actually go is a server setting. But it's the kind of rule that holds on the days I forget about it.
There's a contractual side too. TaxWize carries two labels, "swiss hosting" and "swiss made software plus AI". The hosting label commits me to keeping the application, your data and every backup in Swiss data centres under Swiss law. Both rest on my own declaration, with no outside audit behind them. To me that makes them labels, not certifications.
What this way of building costs
Running it yourself means answering for it yourself. The database, the updates, the backups and the restore drill are all on me, and that time isn't going into new cantons.
A large international provider would have more data centres and a security team. Weighting that scale above the location is a defensible call, and I don't think it's wrong. Mine goes the other way: with salary, wealth and family circumstances in the file, who could physically reach it matters more to me than how many data centres stand behind it.
All of this is the position on 24.08.2026. Infrastructure changes, and the current version sits on the security page and the data protection page, both public before you create an account.
TaxWize costs CHF 39 per declaration per tax year, currently with full preparation for seven cantons, and you file with your canton afterwards. If you'd rather just see what your municipality does to the result, the free tax comparison needs no upload and no account.
Sources
- TaxWize, privacy policy, section 7 (subprocessors) and section 12 (cookies): https://taxwize.ch/privacy (retrieved 24.08.2026)
- TaxWize, security page (Swiss infrastructure, AI provenance, backups, labels): https://taxwize.ch/security (retrieved 24.08.2026)
- Plausible Community Edition, self-hosting (AGPLv3, your own server, no data to the vendor): https://plausible.io/self-hosted-web-analytics (retrieved 24.08.2026)
- Plausible Analytics, data policy (legal entity incorporated in Estonia, visitor data processed and stored in the EU on infrastructure owned by European companies): https://plausible.io/data-policy (retrieved 24.08.2026)
- swiss made software, the "plus AI" label and the AI disclosure it requires: https://www.swissmadesoftware.org/about/plus-AI.html (retrieved 24.08.2026)
Frequently asked questions
- Where is my tax data stored when I use TaxWize?
- In Switzerland. The application, the database, the file storage and the nightly backups all sit in a Swiss data centre, and the database is open-source software run in-house rather than a bought cloud service. As of 24.08.2026.
- Do my tax documents ever leave Switzerland?
- No. Two other things do: payment processing through Stripe, which handles data in the EU and the United States, and the optional "Sign in with Google" button. Stripe receives the amount, the currency and your billing details, never your documents or the tax figures read out of them. The Google sign-in carries no tax data either.
- Is my data encrypted at rest?
- In transit, yes, over TLS. The nightly backups are encrypted with AES-256 before they leave the machine, using a key TaxWize holds itself. The stored documents sit in Swiss object storage, which the host states it encrypts at rest. For the live database, TaxWize leans on the hosting platform's encryption. There is no end-to-end encryption, because the software has to read your figures to compute with them.
- Who runs the AI that reads my documents?
- A Swiss provider, on Swiss infrastructure. The language model is a third-party, open-weight model. TaxWize does not develop it further and your content is not used to train it. Text recognition for scans and photos is self-hosted on the same Swiss infrastructure. The tax calculation that follows is a rule set and uses no language model.
- Does the TaxWize website use analytics cookies?
- No. Since 19.08.2026 the analytics software has run on TaxWize's own server in Switzerland, where before it ran in the vendor's EU cloud. It sets no cookies, stores no IP addresses and collects no personal data. That is also why taxwize.ch carries no cookie banner.
Related guides
Keep your deductions in view
TaxWize reads your documents, surfaces deductions that may be relevant, and prepares your tax return for filing. CHF 39 per tax return per tax year.
Explore TaxWize