1. Introduction
omdex figures is a single-file web app for sole traders and freelancers in the UK. Track business income and expenses against HMRC SA103 categories, monitor your estimated income tax and National Insurance liability in real time, and export a print-ready Self Assessment summary at year end.
All data is stored locally in your browser. Nothing is ever sent to a server.
⚠ omdex figures produces estimates only. Always verify with HMRC or a qualified accountant before submitting your Self Assessment.
2. Getting started
2.1 First launch
Open the app in any modern browser. On first launch you will be prompted to set a passcode. You can skip this, but financial data will be stored unencrypted in browser localStorage.
2.2 Setting a passcode
Go to ⚙ Settings → Security → Change Passcode. Enter a new passcode (minimum 4 characters), confirm it, and optionally add a hint — a short reminder visible on the lock screen, meaningful only to you. Your passcode derives an AES-256 encryption key via PBKDF2. There is no recovery option if you forget it.
2.3 Installing as a PWA
Install omdex figures as a Progressive Web App for offline use and a home screen icon:
- Chrome / Edge desktop — click the install icon in the address bar
- iOS Safari — Share → Add to Home Screen
- Android Chrome — menu → Add to Home Screen
3. Interface overview
3.1 Sidebar
- Tax Year selector — switch between the current and two previous tax years
- Theme picker — cycle themes with ◀ ▶ or click the name for the full gallery
- View picker — cycle between Ledger, Year View, Dashboard, and Transactions
- Quick stats — year-to-date totals for income, expenses, profit, and estimated tax
- Quick Save / Save / Load — manual save, export backup, import backup
- + Quick Add Entry — open the transaction entry modal (also Tab key)
- ⚙ Settings — configuration, categories, security
- 📖 User Manual — this manual
- 🔓 Lock — engage the passcode lock screen
3.2 Topbar
Shows the current view name, a save status indicator ("Saving…" / "Saved"), a live clock, and the lock button.
3.3 Month bar
Visible in Ledger view only. Shows all 12 months of the UK tax year (Apr–Mar). Click a month to select it. A dot (•) marks months with existing transactions.
4. Ledger view
The primary data entry screen. Shows the selected month in a two-column layout: business (left, green border) and personal (right, blue border).
4.1 Sections and groups
Each column contains sections (e.g. "Business Income"). Click a section header to collapse or expand it. Within each section, categories are grouped — click a group header to collapse its rows independently.
4.2 Entering amounts
- Click the input field on the right of the category row
- Type the amount (positive — the sign is set by the section type)
- Press Enter to save and stay in the field, or ↑ / ↓ to move rows
Each Enter press creates a new transaction dated the 1st of the selected month. Entering 500 twice creates two £500 transactions, not one £1,000.
4.3 Row columns
- Name — category label (indented if in a multi-item group)
- YTD — year-to-date total (muted)
- Month — current month total (green = income, red = expense)
- Input — quick-entry number field
5. Quick Add Entry
Open with + Quick Add Entry in the sidebar or the Tab key. Fields:
- Type — Business Income / Expense, or Personal Income / Expense
- Amount (£) — positive value
- Category — grouped list for the selected type
- Date — defaults to today; sets which tax year the transaction belongs to
- Description — optional note (e.g. "Client invoice", "Train to London")
6. Year view
A scrollable table showing all 12 months as columns and every category as rows. The current month column is highlighted. Group subtotals, section totals, and a final Net Profit row are included. Scroll horizontally on narrow screens — the category column and header row are sticky.
7. Dashboard
At-a-glance summary cards for the current tax year:
- Net Business Profit (YTD)
- Estimated Tax Liability
- This Month — net profit for the selected month
- Business Income and Expenses (YTD) with transaction counts
- Tax Year Progress — day count with progress bar
- Monthly sparkline — click any bar to jump to that month in the Ledger
8. Transactions
Lists every transaction for the current tax year, sorted newest first. Filter by section type using the buttons at the top, or search by category name or description. Click × to delete a transaction — this cannot be undone.
9. Tax report
Generates a Self Assessment summary mapped to HMRC SA103. Sections:
- Business Income — itemised with total
- Allowable Business Expenses — itemised with total
- Profit & Tax Calculation — net profit, personal allowance, taxable profit
- Tax & NI Estimate — income tax, Class 4 NI, Class 2 NI, total liability
2024/25 rates used
Item
Rate
Personal Allowance
£12,570
Basic rate income tax
20% to £50,270
Higher rate income tax
40% above £50,270
Class 4 NI (basic)
6% on £12,570–£50,270
Class 4 NI (higher)
2% above £50,270
Class 2 NI
£3.45/week if profit > £12,570
Click 🖨 Print / Export to open a print-ready summary in a new tab. Use Ctrl+P / Cmd+P to save as PDF.
⚠ The tax estimate does not include PAYE income, pension contributions, or other factors. Always verify with HMRC or a qualified accountant.
10. Categories
Access via ⚙ Settings → Categories → Manage Categories. Four tabs: Biz In, Biz Exp, Per In, Per Exp.
- Edit — click any Name, Group, or HMRC Box field to edit inline
- Delete — click × to remove a category (warns if transactions exist)
- Add — use the Add Category form at the bottom; Name and Group are required
- Reset to defaults — restores all four sections to the original category lists
Business expense categories are pre-mapped to HMRC SA103 boxes (Car & Travel, Premises, Repairs, Office, Advertising, Staff, Financial, Professional Fees, Capital Allowances, Other).
11. Settings
- Your Name — appears in the tax report header
- UTR Number — 10-digit Unique Taxpayer Reference
- NI Number — shown in the print export
- Change Passcode — requires the current passcode
- Auto-lock after — inactivity timeout before the lock screen engages (5–30 min, or disabled)
- Manage Categories — see section 10
- Reset All Data — permanently deletes everything; type CONFIRM to proceed
ℹ After a data reset, any previous .json backup can still be restored via Load, provided you remember the passcode used when the backup was created.
12. Data and backups
⚠ Browser localStorage is not permanent. Always export a backup regularly. Your .json file is your safety net.
- Autosave — triggers 1 second after any change, and every 2 minutes as a background interval
- ⚡ Quick Save — triggers an immediate save
- 💾 Save — exports an encrypted .json backup named omdex-figures_YYYYMMDD.json
- 📂 Load — imports a .json backup; if encrypted, enter the passcode that was set when the backup was made
When a passcode is set, data is AES-256 CBC encrypted with a PBKDF2-derived key (SHA-256, 10,000 iterations) and a random IV per save. The exported .json file is safe to store anywhere.
13. Themes
40+ colour themes in groups: CRT Phosphor, Blue, Green, Red, Purple, Warm, Light, and Neutral. Switch with the ◀ ▶ sidebar arrows, click the theme name for the full gallery, or use Ctrl+Shift+←/→. The selected theme is saved across sessions.
Four light-background themes (Linen, Blush, Frost, Mint) automatically adjust text and border colours for legibility.
14. Keyboard shortcuts
All shortcuts are inactive while a text field is focused. Press Esc to blur the active field.
TabOpen Quick Add Entry
PToggle passcode lock
HToggle sidebar
Ctrl/Cmd+SSave immediately
1Ledger view
2Year view
3Dashboard
4Transactions
← / →Previous / next month
Ctrl+Shift+← / →Previous / next theme
EscClose overlay / blur field
Inside ledger inputs
EnterSave and stay in field
↑ / ↓Move between category rows
15. Troubleshooting
App blank / won't load
Open the browser console (F12 → Console). A red error will point to the cause — most often a missing file (crypto-js.min.js or the font). All required files must be in the same folder as index.html.
Categories show as "Income Type 1" etc.
The default version ships with placeholder business income categories. Go to Settings → Manage Categories → Biz In and rename them to match your income sources.
Forgotten passcode
The hint is shown on the lock screen. If you have genuinely forgotten the passcode, tap "Reset & erase all data" on the lock screen. This is irreversible unless you have a .json backup.
Data disappeared
Clearing browser data removes localStorage. Always export a .json backup before clearing browser history or switching browsers. Restore via the Load button.
Storage full warning
localStorage has a browser-imposed limit (~5–10 MB). Export a backup and consider trimming old personal expense transactions for completed tax years.
16. HMRC SA103 notes
Brief reference only — not tax advice.
- Box 9 (Turnover) — total Business Income before expenses
- Boxes 17–27 (Allowable Expenses) — Business Expense categories mapped to the relevant SA103 box
- Box 28 (Net Profit) — turnover minus allowable expenses
- Personal income — tracked for cash-flow awareness; PAYE income is reported separately on SA102 and may affect your overall liability
⚠ omdex figures considers only self-employment profit. PAYE income, pension contributions, and other allowances are not factored in. Complete your full Self Assessment using HMRC's own tools or approved software.
omdex figures · v1.2.0 · Design by JGWizard · © 2026 John Garden