---
title: "TotalTax: an AI-built, sourced tax engine for 15 countries"
description: "TotalTax is my live tax calculator: 15 countries, all 50 US states + DC, all 26 Swiss cantons. The build fails if any figure lacks a dated source."
canonical: "https://webrevolution.si/work/totaltax/"
updated: "2026-10-05"
published: "2026-10-05"
words: 1677
jsKb: 3.3
---
OWN PRODUCT · LIVE ↗

Tax & relocation · Calculator + rules engine · 2026

# A tax engine for 15 countries where every figure cites a dated source

TotalTax adds up every tax a household really pays, from income tax and employer contributions to VAT on what it buys, and then shows what is left over in each place. It runs entirely in the browser. And the build refuses to ship if a single number can’t name its source and date.

Live at totaltax.aiwebrevolution.com · since Sep 2026 · numbers observed 2026-10-05

[I want this for my business →](https://webrevolution.si/start/?goal=tool&ref=totaltax)

[Book 20 min](https://webrevolution.si/contact/#book)

[Open the live product: totaltax.aiwebrevolution.com](https://totaltax.aiwebrevolution.com/)

Case file 05 / 9

15 countries, each shipped as a complete data pack observed 2026-10-05 · data packs

50 + DC US jurisdictions: every state, plus DC observed 2026-10-05 · data packs

~1,100 automated tests observed 2026-10-05 · test suite count

Short answer

TotalTax is a live calculator I built that adds up every tax a household pays across 15 countries, all 50 US states + DC and all 26 Swiss cantons, then shows what is left. Every figure cites a dated, published source, and the build fails if one doesn’t. It runs entirely in the browser and has ~1,100 automated tests.

Snapshot

**Type**

Own product, live

**For**

Relocating founders, employers and their advisers

**Coverage**

15 countries · 50 US states + DC · 26 Swiss cantons

**Services shown**

Calculator · Rules engine · Lead-magnet tool

**Stack**

TypeScript engine with zero dependencies, React, Cloudflare Worker, Vitest

**Privacy**

Calculated in the browser; the URL holds the state

**Sources**

Dated, published sources; 16 research dossiers

**Want one of these?** Custom AI Tools, Portals & Agent Endpoints

from €8,900 · $9,800 [Start a project →](https://webrevolution.si/start/?goal=tool&ref=totaltax)

01 · Before

## Headline rates hide most of the bill And most calculators stop there.

Relocation and hiring decisions get made on headline income-tax rates. Those hide employer contributions, VAT and duties on everyday spending, property and wealth taxes, and the health care, childcare or schooling you pay for privately where the state doesn’t. Most calculators also add VAT on top of the price instead of finding it inside the price, which overstates it.

What a headline rate shows

What TotalTax adds up

- Income tax
- Social contributions
- Employer contributions
- VAT & duties on spending
- Property & wealth
- Cover you buy privately

*FIG 01 — Before: comparisons stop at the first bar · schematic, not to scale*

*Form · GET /audit/ · fields: Your website address · button: “Scan my site →”*

**Selling on numbers? See whether AI can even read your pricing pages.** Free AI-readiness audit · about 60 seconds · no email needed for the score.

02 · What I built

## Sources first, then code A market ships complete, or it doesn’t ship.

The engine is a pure TypeScript package with zero dependencies. Each country is a data pack, so adding a market is a data change, not a rewrite. Before any jurisdiction ships, a research dossier collects its rules from official sources, and the build checks that every number the engine can emit points back to one of them.

1. Step 1 (input): Published sources, official, dated.
2. Step 2 (ai agent): Research dossier, 16 so far.
3. Step 3 (human gate): Dossier reviewed, complete or not at all.
4. Step 4 (automated): Data pack, a market is data.
5. Step 5 (automated): Source gate, every figure dated. Rejected here: Unsourced figure (build fails).
6. Step 6 (automated): Invariant tests, ~1,100 tests. Rejected here: Earn more, keep less (test fails).
7. Step 7 (live): In your browser, nothing sent.

*FIG 02 — How a number gets into TotalTax Two gates can stop a release: a figure with no dated source, and any result that breaks the invariants.*

![TotalTax results on desktop: inputs on the left, the total burden as one large percentage, its ranking, and the split into income tax, social contributions, spending taxes and employer costs](https://webrevolution.si/_astro/totaltax-desktop.c2yOdIfq_wnvmb.png)

![TotalTax on a phone, starting from where you live](https://webrevolution.si/_astro/totaltax-mobile.DryA_U_D_Z1gBUpk.png)

*PLATE 01 — A household’s total burden and money left, desktop and phone · live product, captured 2026-10-05*

![TotalTax breakdown for one household: a bar of where the money goes, then each line item, such as employer payroll tax, federal income tax and state income tax, with its rule and a linked source such as the Internal Revenue Service or the Social Security Administration](https://webrevolution.si/_astro/totaltax-sources-desktop.BtnGUOTG_1Wq49N.png)

*PLATE 02 — Where the money goes: every line names its source, linked · live product, captured 2026-10-06*

![TotalTax comparison chart: one row per country, each dot one place and one way of being paid, against a line marking what the household keeps today](https://webrevolution.si/_astro/totaltax-compare-desktop.D7MDQHvk_Z2iIRG7.png)

*PLATE 03 — The same household priced in every place, on one scale of money left a year · live product, captured 2026-10-06*

03 · Who did what

## Who did what Agents propose. A human approves.

1. agent://researcher
   Writes a research dossier per jurisdiction from official, published sources, with a date on every figure.
   **Never allowed to:** use a figure it can’t source.
2. human://vegard HUMAN GATE
   Reviews each dossier. A jurisdiction ships complete, or it doesn’t ship.
3. agent://architect
   Split the product into a zero-dependency engine, data packs and the web app, so a new country is a data change.
4. agent://builder
   Implements the income models per country: employee, sole trader, company owner and retired.
5. agent://fact-checker
   Runs the source gate: the build fails if any figure the engine can show lacks a dated, published source.
   **Never allowed to:** let an unsourced number ship.
6. agent://tester
   Runs ~1,100 tests, including sweeps that prove earning more never leaves you with less, and invariants that make the books balance.
7. human://vegard HUMAN GATE
   Wrote the rules for sponsored options: never the default, priced at the top of the advertiser’s range, and tested so a sponsor can’t win every case.

04 · Results

## Results, with receipts Every number dated, with its method.

*TotalTax: results with method and date*

| Number | What it measures | How it was measured | Observed |
| --- | --- | --- | --- |
| 15✓ verified | countries | data packs | 2026-10-05 |
| 50 + DC✓ verified | US states | data packs | 2026-10-05 |
| 26✓ verified | Swiss cantons | data packs | 2026-10-05 |
| ~1,100✓ verified | automated tests | test suite count | 2026-10-05 |
| 16✓ verified | research dossiers written before any jurisdiction ships | docs/dossiers count | 2026-10-05 |
| Not published | Monthly users and shared result links | cookieless analytics running; too early to publish | — |

05 · Running costs

## What it costs to run

TotalTax is static files plus a tiny Worker that sets strict security headers. The calculation runs on the visitor’s own device, so ten visitors or ten thousand cost about the same: close to nothing. There is no database and no user data, which also means nothing to breach.

06 · Ownership

## What you would own If I built a calculator like this for you.

- **The engine** A pure package with zero dependencies, reusable in your site, app or API.
- **The data packs and their sources** Every figure with its source and date, in your repository.
- **The research protocol** How a new market is researched, reviewed and shipped.
- **The test suite** Conformance, invariants and money logic, run on every change.
- **The web app** Shareable result links, lead capture where you want it.
- **Your Cloudflare account** Hosting and security headers, under your name.

07 · What I’d build for you

## A calculator your buyers trust enough to share

Pricing calculators, ROI tools, quote builders, eligibility checkers: if your business sells on numbers, a sourced tool is the best lead magnet you can own. Buyers share a link that reproduces their exact result, and every number traces back to its source.

- A rules engine with tests on the money logic
- Shareable result links, with lead capture where it fits
- Runs in the browser: private by design, near-zero hosting
- Optional MCP endpoint so AI agents can use your calculator

**Not for you if** the numbers can’t be sourced. I won’t ship a calculator that guesses.

Mapped offer · Chosen

### Custom AI Tools, Portals & Agent Endpoints

from €8,900 · $9,800 typical €9k–25k

3–8 weeks

[Start with this →](https://webrevolution.si/start/?goal=tool&ref=totaltax)

[What’s included](https://webrevolution.si/services/custom-ai-tools/)

[Not sure which fits? Book 20 minutes with me](https://webrevolution.si/contact/#book)

**08 · Under the hood The technical depth, for your CTO**

**Architecture**

npm workspaces: a pure calculation engine with zero dependencies, a data and rule-pack package, a Vite + React web app, and a Cloudflare Worker that serves static assets with a strict CSP.

**Source gate**

The check step fails the build if any emitted figure lacks a dated, published source. A conformance harness keeps “not levied” apart from “omitted”.

**Correctness**

Monotonicity sweeps (earning more never leaves you with less) and book-balancing invariants. VAT is found inside the price, not added on top.

**Income models**

Employee, sole trader, company (from a Norwegian AS to a US S-corp or C-corp) and retired, per country.

**Privacy**

The CSP allows one outbound origin: a cookieless analytics beacon that doesn’t log query strings. All inputs live in the URL, so a shared link reproduces the exact page.

**Sponsored options**

Rules enforced by tests: the default is never paid, a sponsored option is priced at the top of the advertiser’s range, and a test asserts it doesn’t win every case.

**Tests**

~1,100 tests on Vitest, plus verification scripts for sources and state.

## More work Same rules: numbers dated, names changed where a client asked.

[All case studies →](https://webrevolution.si/work/)

![SitShape home page on desktop: “What shape do you sit in?” beside an isometric sofa drawing](https://webrevolution.si/_astro/sitshape-desktop.DhzKGA7D_Z3013u.webp)

OWN PRODUCT · LIVE ↗

Crawler compute 103 → 0

### [SitShape: a sofa-shape configurator and seller marketplace](https://webrevolution.si/work/sitshape/)

564 pre-rendered pages in 3 languages, 559 automated tests, sellers who never pay commission.

- Configurator
- Marketplace
- Static edge

![Filyhost home page on desktop: “Drag and drop to upload. Share your link.”](https://webrevolution.si/_astro/filyhost-desktop.CNPIS7fm_16JTpV.webp)

OWN PRODUCT · LIVE ↗

Live and monetised in 3 weeks

### [Filyhost: a monetised file-handover SaaS, built solo](https://webrevolution.si/work/filyhost/)

Send links and client inboxes, a Stripe licence ladder, 8 edge rate limiters and a budget guard.

- SaaS
- Client portal
- Payments

![Rebuilt mock of the Corvane Legal knowledge hub with its claim-check panel (name changed)](https://webrevolution.si/_astro/law-tile.DvzMQrwG_I1bRf.webp)

CLIENT · NAME CHANGED

1,100+ pages on the firm’s own domain

### [Corvane Legal: an AI content engine for a German law firm](https://webrevolution.si/work/law-firm-ai-content-engine/)

Every AI-rewritten claim checked against the source; anything unsupported waits for a lawyer. AI spend ~€33/mo.

- Content engine
- Edge Hub
- AI search

This case maps to [Custom AI Tools, Portals & Agent Endpoints](https://webrevolution.si/services/custom-ai-tools/). The thinking behind builds like this: [field notes in Insights](https://webrevolution.si/insights/).

---

## Structured facts

The page's JSON-LD (schema.org), flattened to text.

### WebSite: WebRevolution.si
- url: https://webrevolution.si/
- inLanguage: en
- publisher: WebRevolution.si

### OnlineBusiness: WebRevolution.si
- alternateName: WebRevolution; webrevolution.si; WebRevolution SI
- url: https://webrevolution.si/
- logo: https://webrevolution.si/icon-512.png
- slogan: One man. An army of agents.
- description: One-man AI agency for B2B: AI-ready websites, AI content & distribution engines, AI agents and custom tools that AI assistants can find, cite and recommend.
- founder: Vegard Wikeby
- areaServed: Worldwide
- knowsAbout: Generative engine optimization; AI-ready websites; AI agents for business; AI content engines; Cloudflare Workers; Conversion rate optimization; Model Context Protocol
- contactPoint: ContactPoint (contactType: sales; url: https://webrevolution.si/contact/; availableLanguage: en)
- sameAs: https://www.linkedin.com/in/vegardwikeby; https://x.com/vegardwikeby

### Person: Vegard Wikeby
- url: https://webrevolution.si/about/
- jobTitle: Founder, WebRevolution.si
- worksFor: WebRevolution.si
- image: https://webrevolution.si/img/vegard-wikeby.jpg
- sameAs: https://www.linkedin.com/in/vegardwikeby; https://x.com/vegardwikeby
- knowsAbout: Web development; AI agents; Generative engine optimization; WordPress; E-commerce; Cloudflare

### BreadcrumbList
- Home › Work › TotalTax

### Article: A tax engine for 15 countries where every figure cites a dated source
- url: https://webrevolution.si/work/totaltax/
- mainEntityOfPage: https://webrevolution.si/work/totaltax/
- inLanguage: en
- description: TotalTax is my live tax calculator: 15 countries, all 50 US states + DC, all 26 Swiss cantons. The build fails if any figure lacks a dated source.
- author: Vegard Wikeby
- publisher: WebRevolution.si
- isPartOf: WebRevolution.si
- datePublished: 2026-10-05
- dateModified: 2026-10-05
- image: https://webrevolution.si/og/work/totaltax.png
- about: Service (name: Custom AI Tools, Portals & Agent Endpoints; url: https://webrevolution.si/services/custom-ai-tools/)
- mentions: WebApplication (name: TotalTax; url: https://totaltax.aiwebrevolution.com/; applicationCategory: FinanceApplication)
