
Why TaxWize
Verified to the franc: the method behind the TaxWize calculation
How TaxWize checks its tax calculation against the cantons' own calculators and portals, franc by franc: the procedure, a worked example, the documented limits, and how you can run the same check yourself.
Updated on 27.07.2026 · 9 min read
"Verified to the franc" means something specific at TaxWize. For every fully covered canton I compute reference cases and put the result against the calculator or tax program of that same canton, line by line: deductions, taxable income and, depending on the canton, the individual tax amounts as well. Which canton anchors what is set out in the table below.
If a figure doesn't match to the franc, it counts as my error until the opposite is shown. The federal income tax gets checked against the Federal Tax Administration's calculator on top of that. The check as it stands covers tax year 2025.
Why my own tests stayed green
A test case whose expected result came out of my own software tests nothing. It records what the software does today, and it stays green even if the calculation was wrong from the start.
That's not hypothetical. An error in the work-expense chain survived several internal checks here without anyone noticing, because the target values I was checking against had come out of my own calculation. It surfaced only once I put the same cases against the cantons' own calculators, and the whole procedure below exists because of that: I wanted to know what else I didn't know.
You don't test a scale by putting the same parcel on it twice either. Two identical answers prove the scale is consistent, not that it's right. You put a calibrated weight on it, and the calibrated weight here is the canton's own calculator: it supplies the answer, I only supply the starting position.
How a check runs
The sequence is the same for every canton, and it's deliberately inconvenient:
- A reference case is defined: an invented but realistic person, with civil status, municipality, gross salary, commute, children, pillar 3a, insurance premiums and property. No customer data, only constructed cases.
- The same entries go into the cantonal calculator or tax program, where the canton itself does the computing.
- The canton's answer is recorded verbatim, line by line: work expenses, flat rates, insurance deduction, pillar 3a, taxable income, the simple state tax, and the cantonal, municipal, church, personal and federal tax. That recording is version-controlled and never touched again.
- My calculation runs on the same starting data and is placed against it, line by line.
- Every deviation stays an open item until I've found the rule behind it in the cantonal law or the official guidance.
The most important sentence in this method is a prohibition: the canton's recorded figure must never be adjusted to my result. The moment you rewrite the reference so a test turns green, you've calibrated the instrument to the measurement, and you may as well skip the procedure.
One calculator per canton
Every canton computes differently, so every canton checks itself. As of tax year 2025:
| Canton | Reference | What it anchors |
|---|---|---|
| Aargau | the canton's eTAX environment | deduction chain and taxable income |
| Bern | TaxMe-Online | deduction chain and taxable income |
| Lucerne | the canton's tax program | deduction chain, taxable income, cantonal and municipal tax |
| Solothurn | the canton's tax program | deduction chain, taxable income, cantonal and municipal tax |
| Schwyz | the canton's tax calculator | tax amounts including wealth tax |
| Zug | the canton's tax calculator | tax amounts including wealth tax |
| Zurich | ZHprivateTax and the official tax calculator | deduction chain, taxable income and all tax amounts |
| Federal | the Federal Tax Administration's calculator | federal income tax |
Not every cantonal calculator accepts the same inputs, and that is what makes an anchor strong or weak. Where a canton offers a full tax program, I can check the whole chain, from the documents through the deductions to the tax bill. Where a canton offers only a tax calculator that already expects taxable income as its input (currently Schwyz and Zug), that calculator anchors the tax amounts, and I recompute the deduction chain separately against the cantonal tax law and the official guidance. That's a weaker anchor, and I write it down as one instead of letting it disappear inside a blanket statement.
Chasing one franc in Zurich
The simplest reference case in the canton of Zurich, tax year 2025: single, resident in the city of Zurich, gross salary CHF 78'000, commute by public transport at CHF 2'400, no children, no property, no church tax.
The canton's own tax program produces a taxable income of CHF 65'517. My calculation has to return exactly that. Not CHF 65'520, and not CHF 65'518.
CHF 65'518 is what I reported for a while. The gap came from a rounding rule: Zurich computes the flat rate for other work expenses as 3 % of net salary and rounds the result up to the next whole franc. I found that rule in no official guide. What put me onto it was running the same case through the cantonal program again and again with salaries shifted by single francs, comparing the answers until only one explanation survived. Since then the case matches to the franc.
One franc on CHF 65'517 is 0.002 %, which in tax terms is nothing. As a signal it still counts: if a single franc shows up, a misapplied deduction certainly will.
Before you reuse these numbers: they are guide values for tax year 2025 and describe this one constructed case. Tariffs, deductions and municipal multipliers are set anew every year, and your canton publishes the current ones.
How do I know the check isn't simply always green?
A check that never fails is decoration. I control for that with counter-tests: I deliberately change one small thing in the calculation and expect the check to fail immediately. One franc on the commute has to be enough. I switched the Zurich rounding rule described above back off as a test, at which point the calculation returned CHF 65'518 again and the comparison against the canton's CHF 65'517 went red. A green result only means something once I know the same check would have gone red over a single franc.
When a rule has no cantonal reference
Then I don't compute it on my own authority, which sounds like a weak selling point and is the second half of the same attitude. Someone who moves to or away from Switzerland during the year is liable to tax for only part of the year, and the annual deduction limits are then reduced pro rata. That reduction attaches to the tax period, not to the length of the employment, and the two are not the same thing. For this case the cantonal program offers no mode I could calibrate against, so the pro-rata reduction is exactly what I leave uncomputed as long as I can't evidence it. In the canton of Zurich, TaxWize detects the situation and tells you that the annual limits are still applied at their full-year value, and that those figures are worth checking with the tax office. In the other covered cantons I don't yet ask for the tax period; if you moved in or out during the year, the capped deductions there are worth a look before you file.
Software that shows a number in every situation is more convenient. It just isn't more honest.
What "verified" does not mean
For the claim to be worth anything, it has to be clear where it stops. Seven points, and all seven apply:
- It is not a guarantee for your tax return. What is verified is the calculation on reference cases, not your personal situation.
- It says nothing about entries I do not have. A deduction you do not enter, and that appears in none of your documents, shows up in no calculation, however precise that calculation is.
- It does not replace the assessment. Only the assessment issued by your cantonal tax office is binding. What TaxWize shows is a projection.
- It applies per canton and per tax year. The statement covers the seven fully covered cantons and the tax year the check was made for. For a new tax year the parameters are reset and the cases are recomputed.
- It concerns the calculation, not the reading of your documents. For reading them TaxWize uses AI, hosted in Switzerland, and every extracted value is put in front of you to verify. The check against the cantonal calculators starts after that, on the confirmed figures.
- It is a franc-level statement, not a Rappen-level one. In individual cases a small difference remains between my calculation and the canton's on a single line, because two rounding paths diverge: usually a few Rappen, and in one documented case one franc on a wealth-tax component. Those cases get recorded rather than rounded away.
- Some levies I deliberately do not compute, and then my total sits below your municipality's bill. In the canton of Solothurn many municipalities charge their own Personalsteuer on top of the cantonal one, roughly CHF 10 to 50 per adult; in the canton of Zug, Ortsbürger pay a Bürgergemeindesteuer. TaxWize models neither today. The difference is usually in the tens of francs per household (up to around CHF 100 for two adults in Solothurn municipalities), it always runs the same way, and it is documented rather than estimated.
How to run the counter-check yourself
This is the actual point of an accuracy claim: you shouldn't have to take it on trust.
- Prepare your tax return in TaxWize and note the taxable income it reports.
- Open the official tax calculator of your canton and enter the same figure with your municipality, your civil status and your denomination.
- Compare the tax amount.
Two differences are expected and are not errors: the rounding gaps in point 6 and the levies I don't model in point 7, for instance if your Solothurn municipality charges its own Personalsteuer. If anything beyond that doesn't line up, write to me, because a reported deviation is worth more to me than a compliment: it's a test case I didn't have yet.
How much your municipality alone changes the bill is visible in the free tax comparison, which covers every municipality in the cantons TaxWize fully supports. And where TaxWize sits next to the cantonal portal and the other providers is set out in the 2026 tax software comparison.
Why I write this down
A claim about accuracy is worth exactly as much as your ability to test it. If I write "verified to the franc", you should be able to read what was checked, against what, and where the statement stops. The effort behind it is real: every new canton means reference cases, sessions in the cantonal program, and the hunt for rounding rules documented nowhere. That's why it's seven cantons and not twenty-six.
If you live in one of them, you can try TaxWize for CHF 39 per declaration per tax year at taxwize.ch. If you live in another canton, join the waitlist and I'll get in touch once your canton has passed the same check.
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