Back to all articles
Swiss mountain lake in the morning, deep blue water, a farmhouse with red shutters on the shore

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?

ComponentWhere it runsWho operates itTax data abroad
Website and applicationmachine in a Swiss data centremeno
Database and sign-insame machineme, open-source Supabaseno
Uploaded documentsSwiss object storagethe Swiss provider's storage serviceno
Text recognition for scans and photossame machineme, Tesseractno
Language model that reads documentsSwiss infrastructurea Swiss providerno
Tax calculationsame machinemeno
Website analyticsown server in Switzerlandme, Plausible Community Editionno tax data, no personal data
Nightly backupsSwiss object storageme, encrypted before it is storedno
PaymentEU and United StatesStripepayment data only, never documents
"Sign in with Google", optionalGoogleGoogleno 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

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.

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