Back to projects

Prefilled RW Tax Schedule

The system reads account statements and broker reports, extracts the foreign holdings, and prefills the RW tax schedule. A tool does the maths, a person does the validation.

Overview of an RW case: monitored market value, estimated taxes, processing progress and the holdings still awaiting review

Prefilled RW Tax Schedule

A client with foreign investments walks into the firm with a stack of documents: account statements, broker reports, bank PDFs. A typical file is five documents in five languages, 76 pages, five intermediaries across as many jurisdictions. Every institution uses its own format. The accountant opened them one by one and copied the figures into a spreadsheet by hand.

The system reads the uploaded documents, extracts the foreign holdings, and prefills the RW schedule — the Italian tax form for assets held abroad. The accountant no longer starts from a stack of PDFs: they start from a summary already built, with the source document sitting next to every entry.

What we built

  • Extraction across formats that look nothing alike. Every bank and every broker lays its reports out differently. Nothing looks for a fixed position on the page: what gets recognised is what a figure is — market value, currency, opening date, share held — regardless of where it sits or what it is called. Every extracted value carries its page, its line and its own confidence level.
  • Five languages, with no sorting first. A Swiss statement in German, a Spanish deed of purchase, an English broker report: they arrive mixed inside the same file, and there is no need to separate them or declare what language they are in.
  • The maths is done by a tool, not by the model. The model reads the documents and identifies the data. From there the arithmetic — currency conversion, market values, shares — passes to deterministic functions. A language model doing arithmetic is a language model that sometimes gets the arithmetic wrong: here it never gets the chance.
  • A summary to validate against. Six consolidated rows instead of 76 pages of statements. The accountant reads an ordered summary of the holdings rather than the original documents, and every line stays linked to the point it was drawn from: checking is a check, not a re-read.
  • Every decision traced. Which documents were read, which figures were extracted, what was changed by hand and by whom. The trail stays available after filing, which is when it actually matters.

How it runs in production

Work at an accounting firm does not happen in one conversation. A file is opened, left, and picked up three days later with two more documents in it. The system holds the thread between sessions: documents already read stay read, corrections made by hand stay made.

The division of labour is what makes the system dependable: the model reads and interprets, the tools calculate, the person decides. Each part does the thing it does not get wrong.

Where a person decides

Before filing, always. A prefilled schedule is not a tax return: it is a draft built from the client's documents. The accountant checks it line by line, corrects what needs correcting, and takes responsibility for filing — which stays their act.

This is not just a rule of process: as long as one holding is still unverified, the export stays locked. The file for submission does not exist until a person has unlocked it.

What disappears is the manual transcription and the hunt for a figure across 76 pages. The professional judgement stays untouched, and it is the part the client pays the firm for.

Want a similar result?

Start from your context and build the product.

Talk about the project