Large impactIntermediateWorkflow

Turn a pile of client uploads into a complete, pre-filled tax file

Get from whatever the client uploaded to an indexed, extracted, complete file, with a specific list of what is still missing.

Instead of an admin opening each upload, renaming it, ticking a checklist, and emailing the client about what's missing, a pipeline classifies every document, extracts the numbers into structured data, compares the set against the prior-year return, and sends a specific, friendly list of what's still outstanding. The preparer starts with a complete, indexed, pre-populated file.

Time
Saves 30 to 60 min
About 55 min down to 12 min per return
Who does it today
Admin staff and seasonal preparers
Practice area
Tax

Illustrative planning estimate, not a measured result. Assumes a 1040 with 12–20 source documents. Traditional time covers download, rename, checklist, data entry of W-2/1099/1098 figures, and two rounds of follow-up emails. AI time is human review of extraction exceptions and approving the chase message.

Traditional vs AI-native

Traditional

  1. 1Client uploads
  2. 2Admin renames and files
  3. 3Compare to last year by hand
  4. 4Email what is missing
  5. 5Chase two to four times
  6. 6Key numbers into software

AI-native

  1. 1Upload lands
  2. 2AI classifies and extracts
  3. 3Rules check the math
  4. 4Compared to last year
  5. 5You approve exceptions and the chase
  6. 6Data flows into software

Where you sit

You stop being the sorter and become the approver. You clear the low-confidence documents, the failed checks, and the drafted chase message. Everything else is already filed and extracted when you open the file.

The traditional way

  1. Client uploads a mix of PDFs, phone photos, and password-protected brokerage statements to the portal (or emails them).
  2. Admin downloads each file, opens it, renames it to the firm's convention, and files it into the right folder.
  3. Someone compares the pile to last year's organizer or return to see what's missing.
  4. Admin emails the client a list of missing items; the client replies with partial uploads; repeat 2–4 times.
  5. Preparer keys W-2, 1099-INT/DIV/B, 1098, and 1095 figures into tax software by hand, or runs a scan-and-populate tool and fixes its misses.

Where it hurts

  • The file sits for days because 'we're waiting on documents' but nobody knows exactly what.
  • Missing items are discovered by the preparer mid-return, which restarts the chase and fragments their time.
  • Transposition errors from manual keying surface later as IRS matching notices (CP2000).
  • Senior staff end up doing clerical triage during peak season.

The AI-native way

  1. 1Automation

    Capture every upload as an event

    A webhook or watched folder on the client portal fires whenever a file lands. The file, client ID, and tax year are pushed to a processing queue. Password-protected PDFs are decrypted using a per-client password vault or flagged for the client to re-upload.

    Tools: Portal webhook · n8n / Power Automate / Zapier · Cloud storage

  2. 2AI

    Classify the document type

    A vision-capable model (or a specialized document AI with prebuilt tax-form models) labels each page: W-2, 1099-NEC, 1099-B composite, 1098, 1098-T, K-1 (1065/1120-S/1041), 1095-A, property tax bill, daycare receipt, etc. Multi-document PDFs are split. Anything below a confidence threshold goes to a human queue instead of guessing.

    Tools: Azure AI Document Intelligence (prebuilt US tax models) · AWS Textract · Vision LLM

  3. 3AI

    Extract to a strict schema

    Each document type has a JSON schema matching the fields your tax software imports (e.g., W-2 boxes 1–20 with state rows, 1099-DIV boxes 1a/1b/2a/5). The model must return values plus the page and bounding box it read them from, so a reviewer can click through to the source. Payer EIN and recipient SSN last-4 are captured for matching, then masked in logs.

    Tools: LLM with structured output / JSON schema · Document AI extraction

  4. 4Automation

    Validate with deterministic rules

    Code (not AI) checks arithmetic and plausibility: W-2 boxes 3 and 7 together ≤ the year's Social Security wage base, box 4 ≈ 6.2% of boxes 3 plus 7, box 5 ≥ boxes 3 plus 7, qualified dividends ≤ ordinary dividends, 1099-B proceeds total ties to the summary page. Failures route to an exceptions list with the source image attached.

    Tools: Python or spreadsheet rules · Validation library

  5. 5AI

    Compare against the prior-year return

    The prior-year return (or its input summary export) is parsed into an 'expected documents' list: every payer, brokerage, mortgage lender, K-1 entity, and schedule that appeared last year. The current-year set is matched against it by payer name and EIN. The output is three lists: received, expected-but-missing, and new-this-year.

    Tools: Tax software export · LLM for fuzzy payer matching

  6. 6AI

    Draft a specific chase message

    The model writes a short, plain-English message listing exactly what's missing ('Your 2025 Form 1098 from Rocket Mortgage. You had one last year.') and asking about life events inferred from changes (a new state on a W-2, a 1099-G, no daycare receipts this year). It's queued for one-click approval, then sent through the portal with a reminder cadence.

    Tools: LLM drafting · Portal messaging / email automation

  7. 7You

    Human approves exceptions and chase

    An admin or preparer works a single screen: low-confidence classifications, failed validation rules, and the drafted chase message. Everything else is already filed and extracted. Their approvals are logged so accuracy can be measured.

  8. 8Automation

    Push data into tax software and mark ready

    Validated data is written to your tax software through its import format (spreadsheet import, API, or an integration partner). The job status flips to 'Ready for prep' only when the missing list is empty or the client has confirmed an item doesn't apply this year.

    Tools: Tax software import · Practice management API (TaxDome, Karbon, Canopy, etc.)

What you need

  • A client portal or watched folder where uploads land
  • An enterprise AI tool that can read documents, under no-training data terms
  • Last year's return or its input summary export
  • Your firm's naming and folder conventions
  • One person who owns the exceptions queue in season

The stack

Capture

Client portal webhooks, SharePoint/Google Drive watched folder

Document AI

Azure AI Document Intelligence, AWS Textract, Google Document AI, or a vision LLM

Reasoning & drafting

Enterprise LLM (ChatGPT Enterprise, Claude for Work, Gemini for Workspace, Azure OpenAI) with no-training data terms

Orchestration

n8n (self-hostable), Power Automate, Zapier, or a small Python service

System of record

Practice management system + tax software import

Named tools are examples, not endorsements. Check any tool against your own data rules first.

Copy the prompt

Prior-year comparison and chase-list prompt

You are an intake specialist at a CPA firm. You will receive two JSON objects:
1. PRIOR_YEAR: every information return and schedule on the client's prior-year return (payer name, payer EIN, form type, schedule).
2. CURRENT_YEAR: every document received so far this year (same fields, plus confidence).

Tasks:
A. Match current documents to prior-year items. Match on EIN first; if EIN is missing, match on normalized payer name. Treat brokerage "composite 1099" as covering 1099-INT, 1099-DIV, and 1099-B from the same payer.
B. Return three lists: "received", "missing" (expected from prior year, not yet received), "new" (received, not on prior year).
C. For each "missing" item, suggest the most likely reason it may legitimately not exist this year (account closed, property sold, job change), but do not assume; phrase as a question.
D. Draft a message to the client under 150 words. Friendly, specific, no jargon. List each missing item by payer and form. Ask about any "new" items that suggest a life event (new state, 1099-G, 1099-R, 1095-A).

Rules:
- Never invent a document, payer, or amount that is not in the input.
- If a match is ambiguous, put it in "needs_review" with your reasoning.
- Output JSON: { received: [], missing: [], new: [], needs_review: [], client_message: "" }

Example

Fictional data.

Prior year vs. current uploads (abridged)

PRIOR_YEAR: W-2 Acme Corp; 1099 composite Fidelity; 1098 Rocket Mortgage;
K-1 (1065) Maple Street Partners; 1099-INT Ally Bank
CURRENT_YEAR: W-2 Acme Corp (0.99); W-2 Northwind LLC (state: CO) (0.97);
1099 composite Fidelity (0.98); 1099-G Colorado Dept of Labor (0.95)

Pipeline output

missing: 1098 Rocket Mortgage · K-1 Maple Street Partners · 1099-INT Ally Bank
new: W-2 Northwind LLC (CO) · 1099-G Colorado
needs_review: none

Hi Dana, thanks for the uploads! We're still missing three items from last year:
• Form 1098 from Rocket Mortgage
• Schedule K-1 from Maple Street Partners (these often arrive in March)
• Form 1099-INT from Ally Bank (if the account was closed, just let us know)
We also see a new W-2 from Northwind in Colorado and unemployment from Colorado.
Did you move to Colorado this year, and if so, on what date?

Guardrails

  • Use an enterprise AI tier with zero data retention or a no-training commitment, and a signed data processing agreement. Consumer chat apps are not appropriate for taxpayer data.
  • Confirm with counsel whether your specific use requires taxpayer consent under IRC §7216. Treas. Reg. §301.7216-2(d) permits disclosure without consent to another tax return preparer located in the United States (including an auxiliary-services provider) for preparing the return, but not for substantive determinations or advice, and not to a provider outside the United States.
  • Document the pipeline in your Written Information Security Plan (required under the FTC Safeguards Rule; see IRS Publication 5708 for a template).
  • Deterministic validation rules, not the model, decide whether numbers are internally consistent.
  • Every extracted number links back to its source page so review is a click, not a hunt.

What can go wrong

Phone photos with glare or cropped edges produce wrong digits.

Confidence thresholds plus arithmetic checks; auto-reply asking the client to re-scan with the portal's capture tool.

Brokerage composite statements with 40+ pages and supplemental sections.

Extract summary totals and let the tax software import the detailed 1099-B transactions via the broker's download, then tie totals.

Payer name changes (bank acquired, employer rebranded) show up as 'missing' plus 'new'.

Match on EIN first; the prompt asks the model to flag likely renames as needs_review.

Over-chasing clients for items that legitimately don't exist anymore.

Chase messages phrase missing items as questions and include a one-click 'doesn't apply this year' response.

How to prove it worked

Days from first upload to 'ready for prep'

Timestamp from practice management system; compare 30 files this season to the same client files last season.

Cut in half

Field-level extraction accuracy

Sample 50 documents; a preparer marks every extracted field correct/incorrect against the source.

≥ 99% on W-2/1099/1098 fields after validation rules

Missing items found by the preparer mid-return

Preparers tag any 'discovered missing document' in the job notes.

Near zero

Admin minutes per return

Time-track intake tasks for two weeks before and after.

Down 70%+

Where this goes

Intake stops being a season and becomes a stream. Documents are processed the hour they arrive, clients see a live 'what we still need' checklist in the portal, and by February 15 the firm knows exactly which returns are complete, which are blocked, and by what. Capacity planning becomes data-driven instead of a gut feeling.

Demo

Demo video coming soon

Until then, the steps and the example above are the walkthrough.

References

  • IRC §7216 and Treas. Reg. §301.7216-2 (disclosure of tax return information)
  • FTC Safeguards Rule, 16 CFR Part 314
  • IRS Publication 4557, Safeguarding Taxpayer Data
  • IRS Publication 5708, Creating a Written Information Security Plan

Summaries for orientation. Verify against the current standard before relying on any of them.

Want to implement this in your firm?

Bring it to the weekly call. Members work through builds like this one together, with accountants who are already doing it.

Keep browsing