HMRC Self Assessment Extraction

Extract UK SA100 Tax Return Data to Excel — Name the Tax Fields, Not the Box Positions

Most SA100 extractors are API-only platforms needing a pipeline and a per-year template before you see a spreadsheet — this one reads the SA100 and its supplementary pages by what each box means, so the same column names work every year. Drop in a PDF and get your fields out in 5–10 seconds.

Enterprise-grade security · TLS 1.3 encrypted

PDF & Paper Scans
XLSX / CSV
UTR & NI Number
Batch Returns

What You Can Extract from a UK SA100 Packet

Type the column names you need — the AI finds each figure on the main form or its supplementary pages by what the box label means, not where it sits. The same columns work on an HMRC portal PDF, a TaxCalc download, and a scanned paper return.

UTR (Unique Taxpayer Reference)
National Insurance Number
Employment Income (box 1)
Interest (box 2)
Dividends (box 3)
Self-Employment Profit (SA103S)
Property Income (SA105)
Total Income
Personal Allowance
Taxable Income
Tax Due
Student Loan Repayments

You define the output — the AI reads the document. Add any field your clients' returns contain; the list above is the starting set most UK filers need.

Why SA100 Extraction Fails on Position — and Works on Meaning

The SA100 is not one form — it is a packet. The main return (TR1–TR6) plus up to seven supplementary pages — SA102 employment, SA103S self-employment, SA104 partnership, SA105 property, SA106 foreign, SA108 capital gains, SA109 residence — feed totals up into the main form, and every software renders those boxes differently. Competitors solve this with enterprise APIs and per-year templates. Here is the difference.

The Problem

01 A figure on the main form was calculated six pages earlier

Taxable profits in box 8 of the main SA100 come from the total on SA103S. Reading page by page in isolation severs those links — and a manual transcriptor must jump between documents to check that the box matches its source.

02 Five renderers put the same field in five different places

An HMRC portal download, a TaxCalc PDF, a FreeAgent export, and a scanned paper return all carry the same UTR and the same income boxes — at different coordinates. A template trained on one layout misreads the others, which is exactly the problem taxpayers on r/UKPersonalFinance describe when fields they expect are not where they looked.

03 HMRC revises the layout, and your template dies with it

The SA100 layout changes between tax years, and Making Tax Digital for Income Tax is reshaping how returns are filed. Every revision invalidates coordinate-based zones, so a position-trained extraction needs rework each season — or breaks silently on older returns.

How Custom Column Extraction Solves This

01 You name the field; the AI finds it by meaning

Custom Column Extraction means you type the fields you want — "UTR," "Total Tax Due," "Property Income" — and the AI reads each box by what its label means, wherever that label appears in the packet. No coordinates, no per-renderer zones, no model training.

02 One column definition spans the whole packet

Define "Self-Employment Profit" once and it pulls from SA103S; define "Property Income" and it reads SA105 — while the same set also captures box 1 employment income from the main form. Supplementary pages need no separate templates or extra setup.

03 No per-year template maintenance

Because extraction follows meaning, not position, the same column names keep working when HMRC changes the layout or when a client switches software. Last year's definition is this year's — and next year's.

From a Client's SA100 Packet to a Ready Spreadsheet, in Three Steps

If you're preparing Self Assessment returns for a January deadline — your own or your clients' — here is what the workflow looks like from upload to the spreadsheet your tax software (or your own review) actually needs.

1

Upload the whole packet, as-is

Drop in the main SA100 plus any supplementary pages — SA103S for self-employment, SA105 for rental income — as PDFs or photos. HMRC portal downloads, TaxCalc files, and scanned paper returns can all go in the same batch; the AI doesn't need them pre-sorted by renderer. If clients send files themselves, share a Collection Link so they upload straight into your queue without registering.

2

Type the tax fields you need

Name your columns once: "UTR," "National Insurance Number," "Employment Income," "Self-Employment Profit," "Property Income," "Total Income," "Personal Allowance," "Taxable Income," "Tax Due," "Student Loan Repayments." The AI reads each box by label meaning and fills the row — across all pages of the packet. Add a computed column like "Balance (Tax Due − Payments on Account)" and the calculation runs during extraction.

3

Download one Excel per return — or one row per client

Export XLSX or CSV. Process a batch of returns and each one becomes a row: UTR in the first column, income and tax figures in their named columns, ready to reconcile against your books or hand to the filing software. Review Mode highlights where each value came from on the original page, so a spot-check takes seconds instead of re-reading six pages.

When It Works Best — and When to Verify the Output

When it works best

Digital and cleanly scanned SA100s. HMRC portal PDFs, software-generated returns from TaxCalc or FreeAgent, and flatbed scans at 200–300 DPI extract with high accuracy because the box labels are machine-printed.

Multi-page packets with supplementary pages. SA103S self-employment and SA105 property figures extract alongside the main form in the same pass — fields most UK filers need.

Batch processing client returns. Upload many SA100s at once and export one spreadsheet with a row per return — the shape that makes January reconciliation practical.

When to be cautious

Heavily handwritten or low-quality images. Hand-filled boxes reduce accuracy, and shadowed or angled phone photos may blur small-print supplementary figures. A clean scan always performs better than a hurried photo.

This extracts data — it does not file your return. The tool produces the structured spreadsheet; submitting to HMRC still goes through your filing software. Spot-check the figures before they feed a submission.

Blank boxes stay blank. The AI extracts what is printed. If a return genuinely has no property income, the Property Income column stays empty — it will not guess or pull a figure from elsewhere.

Frequently Asked Questions

Can I extract data from a scanned paper SA100?

Yes, as long as the printed text is legible to a human eye. The AI reads field labels like "Total Tax Due" and "UTR" by their meaning rather than their coordinates, so a scanned paper return is treated the same way as an HMRC portal PDF. A clean 200–300 DPI flatbed scan performs best; if the only copy is a shadowed phone photo, expect to verify the small-print supplementary figures in Review Mode.

Do I need a separate setup for supplementary pages like SA103S or SA105?

No. One set of column names covers the whole packet. Define "Self-Employment Profit" and the AI finds it on SA103S; define "Property Income" and it reads SA105 — while the same columns also capture box 1 employment income and box 3 dividends from the main form. Because extraction follows box meaning, there are no per-supplementary-page templates to create or maintain.

Can I pull just a few fields — say UTR and Total Tax Due — instead of everything?

That is exactly how it works. Custom Column Extraction means you only get the columns you name: type "UTR" and "Total Tax Due" and the output table has those two columns and nothing else. This is the difference between this tool and fixed-schema API extractors, which return a predefined field set you then have to filter down. Define two fields or twenty — the AI reads only what you ask for.

Will this still work when HMRC changes the form layout, or under MTD for ITSA?

Yes. Position-based templates break when HMRC revises the layout or when a return comes from a different software renderer — that is the maintenance burden competitor platforms pass on to you. Meaning-based extraction does not depend on coordinates, so the same column definitions keep working across layout revisions. And because it reads historical documents the same way, past SA100s remain extractable after Making Tax Digital for Income Tax changes how new returns are filed.

How accurate is it on handwritten or imperfect returns?

Printed SA100 fields extract at very high accuracy — that is the common case for HMRC portal and software-generated returns. Handwriting is the honest limit: clearly written digits extract well, but small, rushed, or smudged handwriting on supplementary pages may reduce accuracy on individual figures. For any return with handwriting, or where a client's figures are unusual, run Review Mode to see exactly which part of the original page each extracted value came from before the numbers go anywhere.

📮 contact email: [email protected]