About PayeTax

A UK tax calculator built as a working test lab.

PayeTax is Jarryd Aubert's R&D project for deterministic tax calculation, edge-case handling, deployment hygiene, and clear public documentation. The useful output is not just the number. It is being able to explain why the number changed.

Built by

Jarryd Aubert

A named engineering project with public methodology, source pages, and explicit calculation limits.

Rates checked

1 July 2026

Tax bands and thresholds are tied back to HMRC and Revenue Scotland sources.

How it is tested

Deterministic rules

Calculator behaviour is kept repeatable so known inputs can be checked against expected outputs.

Limits

Guidance only

PayeTax is not financial advice and does not replace a qualified accountant for personal circumstances.

Deterministic logic

There is a right answer

PAYE, NI, student loans, pension deductions, and tax codes can be checked against published thresholds and known payslip behaviour.

Edge cases

The awkward cases matter

The useful work is in the margins: tax-code variants, Scottish bands, student-loan combinations, Director scenarios, and threshold cliffs.

Privacy

Salary exploration should stay quiet

Core calculator inputs run in the browser. Email results are opt-in, and production integrations are kept narrow.

Operations

Public software needs guardrails

CI, Sentry, rate limiting, typed tests, and deploy checks are treated as part of the product, not as ceremony around it.

How it is built

Boring controls on purpose.

PayeTax is intentionally small in product scope and strict in engineering scope. The aim is to keep the calculator easy to use while making the hard-to-see parts observable, testable, and repeatable.

01

Tax rates live in a controlled source of truth, then flow into calculators and tests.

02

User-facing behaviour gets unit or E2E coverage when it can break silently.

03

External services are kept purposeful: Brevo for result emails, Upstash for rate limiting, Sentry for calculator errors.

04

Claims stay tied to implementation. If the app cannot prove something, the copy should not say it.