Tax Preparation
Writing Instructions an AI Tool Can Follow on Tax Documents
Jump to a section
Key takeaways
- Treat each AI instruction as a Firm procedure document with six parts, an owner and a version.
- Give every part a check the Preparer can run on the output against the page.
- Name fixed not-found words and use the same string on every run, so a Preparer can search for it.
- Change one part at a time, test it, and log the old words, new words, reason and result.
- Label each version, name an owner by role, and record in the workpaper which version ran.
- Retire instructions on purpose: mark them retired, move them out of the working folder, and keep them on file.
The instruction staff paste into an AI tool for a tax-document task is a Firm procedure document. It has parts, an owner and a version, like any other procedure the Firm keeps. Write it so every line of output can be opened and checked against the page it came from.
The Firm chooses the tool and the account it runs under; none is named here. The Preparer checks the output, and the Reviewer reviews the workpaper and signs off. If the Firm keeps an instruction card per task, the card records where the task runs and under which account. The six parts below are the words inside it.
The six parts of one instruction
Build each instruction from six parts, in this order. Each part tells the tool one thing and gives the Preparer one check to run on what comes back.
Part | What it tells the tool | How the Preparer checks it |
|---|---|---|
Scope | Client, entity, period, and what's out | Rows name in-scope documents; the rest sit on their own list |
Inputs named | The documents for this run | Output lists files read; compare with the file list |
Output shape | One row per item, fixed columns | Shape matches; a row missing a column goes back |
Citation demand | Where each figure sits | Open that place |
"Not found" rule | Fixed words when the page doesn't answer | Search the output for those words |
What not to do | Forbidden actions, one per line | Scan rows for each action |
For citation details, use the citation guidance to write a request the Preparer can check against the source page.
The fixed order is a Firm choice too. It lets the Preparer, the owner and the Reviewer find the scope or the prohibitions in any instruction without reading all of it.
Write each part so the output can be checked
For each part, ask what the Preparer needs to inspect in the output and on the source page to check whether the instruction was followed.
For scope, name what the Firm includes and excludes, and request a separate list of excluded documents for the Preparer to check.
Name things by what's printed on the page. "Each letter from an organization" can be checked. For this method, request the wording printed on the letter and leave qualification decisions to the Preparer and Reviewer.
Write one rule per sentence. For this method, separate the rules so the owner can record a distinct check for each.
The Firm can ask a second Preparer to read a draft instruction before testing it. That person marks any wording with two possible meanings and records both readings for the owner. The owner then chooses which meaning belongs in the instruction and records the wording change for review. Under this method, that reading is a check on the instruction text; it does not stand in for the Doe test or for the Reviewer's judgment about the resulting workpaper.
Say what to return. Lines like "be accurate" or "double-check your work" give the Preparer nothing to check. Cut them.
For this method, specify one Firm-chosen not-found string, request it consistently, and have the Preparer search the output for it.
Make every prohibition visible. Name one action per prohibition and describe how the Preparer would check the output for a violation. If nobody could spot a broken rule by reading the rows, cut it or rewrite it until they could.
Keep tax conclusions out of the output shape. The instruction asks what the page says. What that means for the return stays with the Preparer and the Reviewer.
One instruction, two versions
In a hypothetical Doe example, Preparer Alex Doe writes an instruction to list charitable acknowledgment letters in a working copy of Jane Doe's folder. The table contrasts two draft versions.
Part | v1 | v2 |
|---|---|---|
Scope | "Jane's donations" | Jane Doe only; the Firm's period; letters only; other items listed apart |
Inputs | None | The copy's file list |
Output | "A summary" | One row per letter: file, page, organization as printed, date as printed, status |
Citation | None | Each row names its file and page |
Not found | None | The Firm's fixed words |
What not to do | None | No renaming files; no changing organization names |
Version 1 leaves the output layout unspecified. For version 2, Alex checks whether the output follows the requested rows and separate list. Alex keys only what the checked rows support. Pat Doe, the Reviewer, reviews the workpaper and signs off.
Change one part at a time
When an instruction falls short, change it the way the Firm changes any procedure: one edit, tested, then recorded. Before a change reaches a client file, test it with the Firm's known-answer test.
One change means one part edited and nothing else. For this method, Alex tests an output-shape edit and a scope edit in separate versions, then records each test result for the owner to assess.
Record every change as one row in the instruction's change log, with seven columns: version, part changed, old words, new words, why, test result, and who ran the test.
Keep the losing wording on file, marked as tried and rejected. Without it, someone next season may try the same words again and learn nothing new.
The Firm rejects a change that fixes its own part but breaks another part's check. It doesn't patch the broken check inside the same version. The owner can try a different wording for that part as the next version.
Version every instruction
Put a version label on the instruction itself and in its file name, so the copy staff open says v2 at the top and in the folder. Name one owner per instruction, by role. Under this method, the owner is the only person who issues a new version; anyone else who finds a problem sends it to the owner with the output that showed it. Save each version where the Firm keeps its procedures; the workpaper records which version ran on that file.
Treat a change of tool or account as a new version of every instruction that runs on it, with its own test run. Where the Firm chains instructions across steps, the chain rules set what each step carries forward.
Retire an instruction on purpose
The Firm sets when an instruction retires. Triggers it can choose:
- The task it was written for changes or stops.
- The owner leaves the role and nobody takes it over.
- A newer version passes the test.
- A check fails on the same part after the number of tries the Firm sets.
To retire one, mark it retired with the date and the version that replaces it, if any. Move it out of the folder staff paste from, and keep it on file with its change log. The owner checks that the working folder contains only versions the Firm currently authorizes. Once retired, the Firm never edits it in place. Bringing it back starts a new version with its own test.
Where TracePrep fits
TracePrep's one shipped workflow today is the Reasonable Compensation Study for an S-corporation shareholder-employee. It's a different job from this method, and it keeps the same kinds of records:
In this method | In the Study |
|---|---|
Each output row names its file and page | Every figure traces to its source, occupation, geography, and period, at field level |
Every instruction carries a version label at the top and in its name | Wage evidence is versioned |
Each change-log row records why the part changed | Each Preparer adjustment carries a documented rationale |
The change log records who ran each test | The audit log records who prepared, who changed what, and who approved |
A retired instruction stays on file with its change log | Finalized evidence stays with the Firm, with an immutable evidence manifest |
The Reviewer reviews the workpaper and signs off | A qualified Reviewer controls the conclusion and signs off |
We've built a TracePrep plugin that runs these steps in your Firm's workflow.
This is general information, not tax or legal advice. Your licensed professional and your Firm's Reviewer are responsible for every return and every conclusion. Keep client data inside the systems your Firm has approved. As general guidance only, not advice: if you use an AI tool with client data, firms generally look for a business or commercial plan whose terms cover how that data is handled; read the vendor's current terms before you do.
Frequently asked questions
Who should own an AI instruction?
How many old versions should the Firm keep?
Can staff edit an instruction in the middle of a client file?
What if two parts need changing at once?
Can one instruction be reused for a different task?
Bobby Huang · founder of TracePrep Inc.
Bobby Huang is the founder of TracePrep Inc. TracePrep is a tax-prep platform for CPA, EA, and accounting firms, and it also produces the Reasonable Compensation Study.
Related reading
- Tax Preparation
AI Drafts, Professionals Sign: Keeping the Reviewer in Control
How a CPA or EA firm sorts AI output into three kinds, writes the line task by task, handles a draft that crosses it, and records who moves it.
Bobby Huang7 min read - Tax Preparation
From Client Folder to Entry List: An AI-Assisted Tax Prep Workflow
The full path from a client folder to an entry list the Reviewer can trace: what each step passes on, the gate before each hand-off, and what reopens.
Bobby Huang7 min read - Tax Preparation
ChatGPT for Tax Preparation: Chat, Work and Business Data
How a CPA or EA firm sets ChatGPT's Chat and Work modes per task, what goes in the folder it can modify, and which plans OpenAI's training default covers.
Bobby Huang7 min read