On a gross salary of CHF 100'000, a single person in Switzerland pays roughly 11% total income tax in Zug and roughly 22% in Geneva. Federal, cantonal and communal tax combined. That is a gap of about CHF 10'400 a year on identical pay, before anything else about the two places is taken into account.
In francs: about CHF 11'400 a year in Zug against about CHF 21'800 in Geneva. Those are Eini's own working figures for a single person in an average municipality, not published statistics. The rest of this article explains why the smaller tax bill does not automatically mean the cheaper life.
Which canton has the lowest income tax in Switzerland
Zug, at about 11.4% on CHF 100'000 in our model. Appenzell Innerrhoden (12.4%), Nidwalden (12.8%), Obwalden (13.6%) and Schwyz (13.8%) follow close behind. At the other end sit Geneva (21.8%), Vaud (21.6%), Basel-Stadt, Jura and Neuchâtel (21.4%) and Bern (20.4%). The big population centres land in between: Zurich and St. Gallen at 17.2%, Aargau at 16.8%, Ticino at 19.0%.
Three layers make up that number. Federal income tax is written in one federal law and applies identically in every canton. The canton then taxes the same income on its own scale. The municipality adds a third layer on top. Only the first layer is the same wherever you live, which is why the total bill can nearly double between the cheapest and the most expensive address in the country.
These are indicative values our planner uses, not official statistics. They assume a single person with no children and no unusual deductions, living in an average municipality of each canton.
What the gap actually costs on a CHF 100'000 salary
Tax alone is only half the picture, because the second compulsory cost in Switzerland never touches your payslip. Every adult pays their own health insurance premium, and premiums are cheapest in roughly the same cantons where tax is cheapest. Put the two together and the yearly difference between cantons gets wider, not narrower.
| Canton | Effective tax rate on CHF 100'000 | Monthly health premium | Tax + premium vs Zug, per year |
|---|---|---|---|
| Zug | 11.4% | CHF 348 | — |
| Nidwalden | 12.8% | CHF 338 | + CHF 1'280 |
| Schwyz | 13.8% | CHF 352 | + CHF 2'448 |
| Lucerne | 15.6% | CHF 367 | + CHF 4'428 |
| Aargau | 16.8% | CHF 384 | + CHF 5'832 |
| St. Gallen | 17.2% | CHF 375 | + CHF 6'124 |
| Zurich | 17.2% | CHF 396 | + CHF 6'376 |
| Ticino | 19.0% | CHF 402 | + CHF 8'248 |
| Bern | 20.4% | CHF 396 | + CHF 9'576 |
| Basel-Stadt | 21.4% | CHF 421 | + CHF 10'876 |
| Vaud | 21.6% | CHF 421 | + CHF 11'076 |
| Geneva | 21.8% | CHF 453 | + CHF 11'660 |
Read the last column as the honest headline. A single person earning the same CHF 100'000 hands over about CHF 11'700 more per year in Geneva than in Zug once tax and the premium are counted together — close to a month and a half of gross salary, for the same job.
Why the cheapest tax canton is not the cheapest place to live
Rent moves in the same direction as the tax saving, and it moves faster. A 3.5-room flat runs about CHF 2'400 a month in Zug and about CHF 1'600 in St. Gallen in our working figures. That is CHF 9'600 a year of difference against a tax advantage of CHF 5'800.
Add all three compulsory costs for a single person on CHF 100'000:
- Zug: CHF 11'400 tax + CHF 28'800 rent + CHF 4'176 premium = CHF 44'376
- St. Gallen: CHF 17'200 tax + CHF 19'200 rent + CHF 4'500 premium = CHF 40'900
- Schwyz: CHF 13'800 tax + CHF 20'400 rent + CHF 4'224 premium = CHF 38'424
St. Gallen comes out about CHF 3'500 a year ahead of Zug while charging 5.8 percentage points more tax. Schwyz is nearly CHF 6'000 ahead. The ranking on tax and the ranking on total cost are simply not the same list.
The same correction applies in Romandie. Geneva at CHF 21'800 tax, CHF 31'200 rent and CHF 5'436 premium totals CHF 58'436 a year. Lausanne, in a canton taxed almost identically, totals CHF 51'852 — about CHF 6'600 less, almost entirely because of rent. If Geneva is where you actually live, our Geneva grocery budget guide covers the food side of the same arithmetic.
Rule of thumb: one percentage point of tax on CHF 100'000 is CHF 1'000 a year. CHF 100 a month of rent is CHF 1'200 a year. Rent is the faster-moving number, so a canton comparison built on tax rates alone will point you in the wrong direction more often than not.
Groceries add a third, smaller layer. The average Swiss household spends about CHF 636 a month on food and non-alcoholic drinks, and that is not identical everywhere either — see which Swiss cantons have the cheapest groceries.
Why your municipality matters as much as your canton
Canton figures are averages, and nobody lives in an average. Your cantonal tax is worked out on a base amount, which the canton multiplies by its own rate. Your municipality then applies a further multiplier to that same base. Two towns twenty minutes apart, in the same canton, on the same salary and the same deductions, produce different bills. In most cantons a church tax is added on top as well if you are registered with a recognised denomination.
That is why the only number worth deciding on is the one for your actual address. The Federal Tax Administration's tax calculator takes canton, municipality, marital status, children and income and returns the federal, cantonal and communal split for that exact combination. It takes about two minutes and it replaces every canton average you will read anywhere, ours included.
Rent behaves the same way inside a single canton. In our working figures a 3.5-room flat is about CHF 2'800 a month in the city of Zurich and about CHF 1'800 in Winterthur: same canton, same 17.2% tax rate, CHF 12'000 a year of difference. That is larger than the entire tax gap between Zurich and Zug. If you are staying in Zurich anyway, our guide to the cheapest supermarkets in Zürich attacks the part of the budget you can still move.
What comes off your salary before tax even starts
For most Swiss residents income tax is not withheld at source. It is billed later, and it is paid out of money that has already had the social contributions taken off. From gross salary, as the employee share:
- AHV/IV/EO: 5.3% of gross, with no upper limit.
- ALV, unemployment insurance: 1.1%, on salary up to CHF 148'200.
- Non-occupational accident insurance: typically around 1.3%, set by your employer.
- BVG occupational pension: charged on the coordinated salary — gross minus a coordination deduction — at an employee rate that rises with age and typically sits around 7–8% in the middle age bands.
Health insurance is the one that catches newcomers out, because it is not deducted from salary at all. Every adult is billed separately by their own insurer, so the CHF 338 to CHF 453 a month in the table above never shows up on a payslip. Over a year that is CHF 4'056 to CHF 5'436 you have to find out of net income. The basic cover you get for it is identical by law at every insurer — only price and service differ. The Federal Office of Public Health premium comparison (Priminfo) lists every premium available at your address.
Two settings move that premium. The franchise, which you choose from CHF 300, 500, 1'000, 1'500, 2'000 or 2'500 — a higher franchise means a lower premium and more risk carried yourself. And the model: standard cover gives free choice of doctor, while family-doctor, HMO and Telmed models trade some of that choice for a lower price. Above the franchise you pay a 10% retention on costs, capped at CHF 700 a year for adults.
Deadline that matters: to change insurer for 1 January, your written notice must reach your current insurer by the end of November. Posted on 30 November and delivered in December is too late — you stay with that insurer for another full year.
How to work out your own number in ten minutes
- Start from gross, not net. Cantons tax taxable income, and every canton defines deductions slightly differently, so a net figure from one canton tells you nothing about another.
- Run your exact municipality, not the canton. Enter the town you would actually live in, with your marital status and number of children. The communal multiplier is doing real work here.
- Look up the premium for that postcode. Premium regions sit inside cantons, so two addresses in the same canton can be billed differently.
- Add twelve months of the rent you would actually pay. Not the canton average — the asking rent for the flat size you need, in the neighbourhood you would accept.
- Add commuting. A monthly local transport pass is about CHF 120 in Zurich and about CHF 85 in St. Gallen in our figures, and a cheap flat an hour out of town can quietly hand the saving back.
- Compare totals, never rates. Tax plus rent plus premium, per year, per canton. That single number is the one that decides where you are better off.
This is general information about how the Swiss system works, not individual advice — your canton, municipality and situation change the numbers.
What Eini is building for this
The tax module is Phase 3 of Eini's roadmap and is being built now. It will take your gross income, your canton and your exact municipality, your marital status and your children, and return a tax analysis with concrete optimisation suggestions. A second mode will read your actual spending by category and flag the deductions you can claim on it. Comparing cantons honestly needs tax, rent and premium in one view, which is where the Housing module in Phase 4 and the Insurance module in Phase 5 join it. Groceries and meal planning are what is live today.
Frequently Asked Questions
Which canton has the lowest taxes in Switzerland
Zug. In Eini's own working figures a single person on CHF 100'000 pays about 11.4% there, against about 21.8% in Geneva. Appenzell Innerrhoden, Nidwalden, Obwalden and Schwyz follow closely. These are indicative planning values rather than published statistics, so check your own case with the Federal Tax Administration's calculator.
How much tax do you pay on a CHF 100'000 salary in Switzerland
Roughly CHF 11'400 to CHF 21'800 a year for a single person, depending on canton and municipality, in Eini's model. Federal tax is identical everywhere; the cantonal and communal layers create the whole spread. Children, marital status and deductions move the figure further, in both directions.
Is it worth moving to a low-tax canton
Only if rent and the health premium do not eat the saving. In our working figures Zug's tax advantage over St. Gallen is CHF 5'800 a year on CHF 100'000, while the rent difference for a 3.5-room flat runs about CHF 9'600 a year the other way. Add tax, rent and premium together and St. Gallen comes out ahead.
Why do two towns in the same canton pay different tax
Because each municipality sets its own multiplier on the cantonal tax base. Federal tax is the same everywhere in Switzerland, the canton applies its own rate, and the commune applies a further multiplier on top. A canton average is therefore only a starting point, never your bill.
Will Eini help with Swiss taxes
A tax module is being built as Phase 3 of Eini's roadmap. It will take your gross income, canton, exact municipality, marital status and children and produce a tax analysis with optimisation suggestions, plus a second mode that reads your spending by category and flags claimable deductions. It is not available yet. Groceries and meal planning are what is live in the app today.
Plan smarter, spend less with Eini.
Real prices from Coop, Migros, Lidl, Aldi, Denner & Aligro. Smart meal plans. Automatic grocery lists.
Download