Share:

Sorted Tax

MTD Income Tax Tracker — Project Status Report
StingrAi Consultants
Generated 20 March 2026

1. Executive Summary

277
Tests Passing
47
Python Files
12
Frontend Files
290+
Auto-Match Rules
8
Banks Supported
33+
API Endpoints
5
DB Tables
27
HMRC Categories

Build Progress (7 Sessions)

S1 Core S2 Excel S3 CLI S4a API S4b UI S4c Stripe S4d Analytics S5 HMRC S6 GHL S7 Property

Pricing

Open Banking
£24.99 /submission
Early bird (before 5 Jul 2026)
Full price: £34.99
CSV Upload
£29.99 /submission
Early bird (before 5 Jul 2026)
Full price: £39.99
Annual Bundle
£79.99 /year
All 4 quarterly submissions
Best value — save up to £80

Key Dates

1 Apr 2026
Phase 1 Launch — CSV import + bridging export
1 Jul 2026
Phase 2 Launch — Direct HMRC API submission
5 Jul 2026
Early bird cutoff
5 Aug 2026
Q1 submission deadline
5 Nov 2026
Q2 submission deadline
5 Feb 2027
Q3 submission deadline
5 Apr 2027
Q4 submission deadline

2. Architecture

🌐 Frontend
Next.js 14 / React / Tailwind
Vercel (free tier)
⚡ Backend
FastAPI / Python 3.12
Railway ($5/mo)
🗄️ Database
PostgreSQL
Supabase (free: 500MB)
💳 Payments
Stripe
Setup Intent + Payment Intent
📱 Notifications
GoHighLevel
SMS + Email via tags
🏛️ HMRC API
OAuth 2.0
Quarterly submissions
📊 Analytics
PostHog (EU)
Funnels + session replay

3. What's Built (by Session)

#SessionWhat It DeliversKey FilesStatus
1 Core Engine Multi-bank CSV parser (8 banks), rules-based categoriser, 290+ pre-loaded UK supplier rules, quarter assignment logic bank_parser.py, categoriser.py, rules_library.py, default_rules.json ✓ DONE
2 Excel Tracker 6-tab workbook: How To Use, Income, Expenses, Quarterly Summary (SUMIFS), Bridging Export, Settings. All formulas, GBP format build_tracker.py ✓ DONE
3 CLI + Bridging Command-line tool: import CSV, export bridging file, add rules, create client directories. Multi-client isolation mtd_import.py, bridging_export.py, client_manager.py ✓ DONE
4a FastAPI Backend 9 routers, 33+ endpoints, JWT auth, SQLAlchemy ORM, PostgreSQL schema (5 tables), CORS, health check src/api/ (main.py, database.py, models.py, auth.py, 9 routers) ✓ DONE
4b Next.js Frontend 5-screen onboarding (welcome → bank → upload → review → payment), login page, dashboard, auth context, Tailwind CSS frontend/src/app/ (6 pages, 5 onboarding steps) ✓ DONE
4c Stripe Integration Setup Intent (card save), Payment Intent (submission charge), webhooks, pricing tiers, early bird logic routers/billing_router.py (code ready, needs API keys) NEEDS KEYS
4d PostHog Analytics EU cloud GDPR-compliant analytics, funnel tracking, session replays, Meta Pixel integration NEEDS SETUP
5 HMRC API OAuth 2.0 flow (auth → callback → token), quarterly submission endpoint, obligation checks, token refresh hmrc_client.py, routers/hmrc_router.py ✓ DONE
6 GHL Notifications GoHighLevel contact creation, tag-based reminders (30d/7d/1d/deadline), welcome sequence, submission confirmation ghl_service.py, routers/notifications_router.py ✓ DONE
7 Property Income SA105 landlord tax module — 10 property expense categories, rental income tracking, property-specific bridging export rules_library.py (SA105 rules), test_property.py ✓ DONE

4. How It Works

User Journey — Onboarding (5 Screens)

1. Welcome
Name, email, trade
2. Bank
Pick your bank
3. Upload
Drag CSV, auto-parse
4. Review
Fix unmatched items
5. Payment
NINO/UTR, save card

CSV Processing Pipeline

Upload CSV
Auto-detect bank
Parse transactions
Assign quarters
Match rules (290+)
Flag unmatched
User reviews
Learn new rules

Supported Banks

🏦 HSBC Business
⭐ Starling
🟣 Monzo
🌊 Tide
🔵 Barclays
🟢 Lloyds
🟤 NatWest
📄 Generic CSV

HMRC Categories (27 total)

15 Expense Categories (SA103):

Cost of goods sold
Construction costs
Staff costs
Car, van & travel
Rent, rates & power
Repairs & maintenance
Phone, fax & stationery
Advertising costs
Entertainment
Interest on loans
Bank charges
Bad debts
Accountancy & legal
Depreciation
Other expenses

2 Income + 10 Property (SA105):

Turnover
Other income
Total rents
Other property income
Rent, rates & insurance
Property repairs
Finance costs
Legal & professional
Cost of services
Other property expenses

GHL Reminder Sequence

TriggerTag AppliedChannelMessage
Registrationmtd-welcomeSMS + EmailWelcome, dashboard link
30 days beforemtd-q1-30daySMSFriendly reminder
7 days beforemtd-q1-7daySMS + EmailStep-by-step guide
1 day beforemtd-q1-1daySMSUrgent — submit now
Deadline daymtd-q1-deadlineSMSToday's the day
Post-submitmtd-q1-submittedSMS + EmailConfirmation + receipt

UK Tax Year — Cumulative Quarters

QuarterPeriodDeadlineCumulative From
Q16 Apr – 5 Jul5 Aug6 Apr
Q26 Apr – 5 Oct5 Nov6 Apr (includes Q1)
Q36 Apr – 5 Jan5 Feb6 Apr (includes Q1+Q2)
Q46 Apr – 5 Apr5 May6 Apr (full year)

5. Deployment Status

🌐 Frontend (Vercel)
https://sorted-tax.vercel.app
Live
⚡ Backend (Railway)
Deployed — needs public domain
Pending URL
🗄️ Database (Supabase)
onaxcwxuljsztsjmlsmy.supabase.co
Schema deployed (5 tables)
📦 GitHub
github.com/NeilTheAussie/sorted-tax
Private repo, 102 files
📱 GHL (Quarterly Tax)
Sub-account created, API token set
Needs workflows
💳 Stripe
Not connected
Needs account

6. What's Left to Go Live

Phase 1 (Target: 1 April 2026)

Phase 2 (Target: 1 July 2026)

7. API Reference (33+ Endpoints)

Auth

POST/api/auth/registerCreate user + GHL contact
POST/api/auth/loginEmail/password → JWT
POST/api/auth/magic-linkPasswordless login

Import & Transactions

POST/api/import/uploadUpload CSV, auto-parse + categorise
GET/api/import/batchesList import history
GET/api/transactionsAll transactions
PUT/api/transactions/{id}Re-categorise
POST/api/transactions/{id}/ruleSave as new rule

Submissions & Dashboard

GET/api/submissionsAll quarters
POST/api/submissions/{q}/generateBuild from transactions
GET/api/submissions/{q}/exportDownload XLSX
GET/api/dashboardHero metrics

HMRC (Phase 2)

GET/api/hmrc/authOAuth redirect
GET/api/hmrc/callbackToken exchange
POST/api/hmrc/submit/{q}Submit to HMRC
GET/api/hmrc/status/{q}Submission status

Billing & Notifications

POST/api/billing/checkoutStripe payment
POST/api/billing/webhookStripe events
POST/api/notifications/send-remindersGHL tag triggers
GET/api/notifications/due-remindersWhat's due today
Sorted Tax — StingrAi Consultants — Built March 2026