Craftcore Book a free consultation
← All work

Case study · a financial planning and tax firm

Tax documents, read and checked

A system that reads a client's tax documents and hands the preparer figures to check, in place of a pile of pages to type.

About 20tax form types identified and read
3file formats: PDF, PNG and JPEG
4AI models compared on accuracy and speed before choosing one

The problem

A client's tax documents arrive as a pile of PDFs, scans and phone photos. Someone reads every page and types the figures into the firm's tax software.

What I built

  • It sorts the pile. Staff upload a client's whole set at once. The system works out which form each page is and groups the pages of longer documents together.
  • It reads the figures. It handles the 1040, W-2, the 1099 family, 1098, 1095, 5498, Schedule K-1, a state property tax statement and handwritten notes.
  • Nothing is dropped silently. A page it cannot identify or read is kept with the page image and the reason. Staff can run it again with a hint.
  • The preparer has the last word. The preparer reviews the figures before they go into a return.

How the reading was made reliable

Each page is scanned twice: once at low resolution to identify the form, then at high resolution to read it. Every form type has its own fixed list of fields, so the output always has the right shape. I measured four AI models on accuracy and speed for this job and chose from the results.

Where the same approach applies

Any office that keys documents into software has this problem: insurance applications, invoices, claims, loan files, intake forms. The steps are the same. Read the document, flag what is uncertain, and give a person clean figures to check.

Tell me which job eats the most hours

A free 30-minute call. Within one working day you get a one-page note: which job to automate first, what it would involve, and what I would leave alone.

Chat with Kevin×

This goes straight to my phone. If I can't answer right away, I reply to the email or phone you leave.

Chat with Kevin