SFT‑02
UK Tax Companion
Calculators, planners and a personalised HMRC news feed — understand what you keep, and stay ahead of what's changing
Why this app
The Big 4 mobile apps in this space (BDO Germany, Deloitte Germany among them) are content-heavy lead-gen funnels for the firm's consulting business — useful in theory, but built to redirect you into an engagement. I wanted the opposite incentive: something genuinely useful on its own, that never tries to sell you anything. Started as a calculator with a news feed bolted on; the news feed turned out to be the more interesting problem.
Inside the code
The tax logic lives entirely in lib/tax/uk/ as pure, dependency-free TypeScript — no UI code touches a rate or a threshold directly. A cluster of calculation engines covers Income Tax (a full stacked model: salary, other income, savings and dividends, with the Personal Allowance taper worked through correctly) and Take-Home Pay, Capital Gains Tax (Annual Exempt Amount, current-year vs brought-forward loss rules per HS227), Corporation Tax with marginal relief and employer NIC, SDLT, Student Loan repayment, VAT (including the Flat Rate Scheme), a Pension Planner, and a Sole Trader vs Company comparison that models retained profit as a company-only lever rather than treating "take out of the company" as the whole picture.
Above that sits a decision-tool layer — IR35 status, Self Assessment requirement, side-hustle/trading-allowance, a VAT-registration check, a short Tax Health Check quiz — each one exportable as a PDF via expo-print and expo-sharing, which is the feature that separates this from a plain calculator: a client-shareable output with the working shown, not just a verdict.
The other half is Tax Radar: the live gov.uk Content API feed, tagged by a rule-based engine (lib/updates/tagging.ts) into life-situation topics — self-employment, property, pensions, PAYE, VAT, CGT — with a relevance score that boosts high-signal formats and followed topics while down-ranking routine "page updated" churn. A personalisation profile (employee / self-employed / director / landlord / investor, multi-select) seeds followed topics automatically and filters the Deadlines list to what's relevant. No backend, no cron job: the feed is fetched live, tagged and scored entirely on-device, with a bundled seed fallback so the tab is never empty even offline or the first time gov.uk's API is slow.
What was hard
Getting the calculators right was the easy part — the rules are published, and 144 tests pin every band, taper and edge case against HMRC's own figures. The harder problem was restraint: an early "salary vs dividend" scenario tool was trivially "always pay yourself the minimum salary," so it was reframed into Sole Trader vs Company, and even that needed retained-profit modelling once it became clear that full extraction at current dividend rates no longer favours incorporating the way it used to. A "unified position" screen that let you enter your numbers once was built, then dropped — it duplicated the existing calculators without propagating anything into them, so it was just another screen pretending to be a shortcut.
The other real constraint was privacy as a design rule, not a slogan: no accounts, everything local via AsyncStorage, crash reporting (Sentry) gated to production only and limited to crash diagnostics — no analytics, no tracking identifiers. That rule killed a planned Face ID lock outright, once it became clear that nothing persisted was sensitive enough to need one.
What's next
- Curated plain-English summaries layered onto significant Radar items — authored offline, human-reviewed, no runtime LLM cost.
- A home-screen widget and deadline notifications — both need the same move off Expo Go onto a custom EAS dev build, so they're batched together.
- Scottish income tax bands (rUK-only at launch) and a standalone UK Corporation Tax calculator.
- Weighing a light freemium model (PDF export / scenario save-compare as the paid tier) against keeping the whole thing free — undecided.