Scan every client return for planning opportunities
Screen the whole client base against a maintained library of planning rules and give each client a ranked, dollar-ranged list of what to talk about.
Instead of relying on whichever preparer happens to notice a $180,000 Schedule C or a year with unusually low income, the firm exports structured data for every return, runs deterministic screens across the whole client base, and uses AI for the judgment calls the rules can't make. The output is a ranked opportunity list per client with savings ranges computed by code, a one-page client summary, and a pipeline of advisory engagements.
- Time
- Changes the workflow
- About 45 min down to 8 min per client
- Who does it today
- Partners and senior preparers, when they have time
- Practice area
- Advisory
Illustrative planning estimate, not a measured result. Traditional time is what a thorough manual planning review of one filed 1040 (plus any related entity return) takes when a senior actually does it: pulling the return, checking a mental list of 10–15 opportunities, and rough-calculating a few. In practice most clients never get this review at all. AI time is a reviewer confirming or rejecting the flagged opportunities for one client and approving the summary; building the rules library is a one-time project not included here.
Traditional vs AI-native
Traditional
- 1Preparer notices something
- 2Leaves a note in the file
- 3Maybe reaches a partner
- 4Raised months later
- 5Only for clients who ask
AI-native
- 1Consent confirmed
- 2Every return exported
- 3Code runs planning screens
- 4Code computes savings ranges
- 5AI weighs and ranks
- 6You approve what goes to the client
Where you sit
You decide which opportunities are real for this client and approve every summary before it goes out. The screening, the math, and the first draft happen across the whole book, not only the clients who ask.
The traditional way
- A preparer notices something during prep ('this Schedule C is big. Has anyone talked about an S corp?') and leaves a note in the file.
- The note may or may not reach a partner; if it does, it gets raised at the next client meeting, often months later.
- Planning ideas depend on which staff member worked the return and what they happen to know.
- Year-end planning letters go only to the handful of clients who ask or who the partner remembers.
- Nobody can answer 'how many of our clients should be looking at a PTET election?' without pulling every file.
Where it hurts
- Opportunities are missed systematically for quiet clients who never ask.
- Advice is inconsistent: two similar clients get different recommendations depending on who prepped them.
- The firm's advisory revenue is reactive and hard to forecast.
- Clients learn about a strategy from a neighbor or a competitor and ask why their CPA never mentioned it.
The AI-native way
- 1You
Confirm consent and scope before touching data
A partner confirms, with counsel, which screens fall within the Treas. Reg. §301.7216-2(h) exception for the firm's own other accounting services and which need the client's signed §7216 consent (for example, anything that involves a third party). Clients without a needed consent are excluded from those screens. Consent status is a field in the practice management system and the scan filters on it.
Tools: Practice management custom field · Consent tracking
- 2Automation
Export structured return data for every client
Pull a per-return data set from tax software (report writer, CSV export, or API where available): filing status, AGI, taxable income, Schedule C net profit, Schedule E and K-1 items by entity, itemized vs. standard deduction, SALT paid, W-2 wages and withholding, retirement contributions, HSA fields, state of residence, and entity links. Where exports are thin, parse the filed return PDFs into the same schema and flag those rows as lower confidence.
Tools: Tax software report/export · Python + pandas · Document AI for PDF fallback
- 3AI
Normalize and link households and entities
The model matches 1040s to the 1120-S, 1065, and Schedule C businesses they own, using EINs, entity names, and K-1 recipient data, so a screen can see an owner's full picture. Ambiguous links (two entities with similar names, a K-1 from an entity the firm doesn't prepare) go to a review list rather than being guessed. Output is a household-level JSON record per client.
Tools: LLM with structured output · Entity/EIN lookup table
- 4Automation
Run deterministic planning screens
A versioned rules library runs against every household. Examples: Schedule C net profit above a firm-set threshold and no S election (S-corp candidate); pass-through income in a state with an elective PTET where the owner itemizes or is phased down on SALT (PTET candidate); self-employment income with no retirement plan contributions (Solo 401(k)/SEP), or stable owner income high enough to consider a cash balance plan; taxable income well below the client's recent average (Roth conversion window); C-corp stock held by the client or an original-issue founder (possible §1202 QSBS review); HDHP coverage indicated without HSA contributions; balance due plus an estimated-tax penalty (underwithholding). Every threshold lives in a table with a source and effective year, never in model memory.
Tools: Python rules engine · Versioned threshold table (YAML/CSV)
- 5Automation
Compute savings ranges in code
For each triggered screen, a deterministic calculator produces a low/high savings range with its assumptions. The S-corp calculator, for example, runs reasonable compensation at two levels, computes employer and employee payroll tax, the §199A effect of W-2 wages, added payroll/processing and return-prep costs, and any state entity-level tax or minimum fee from the state table. Retirement calculators use the current-year contribution limits from the maintained table. The model never produces a dollar figure.
Tools: Python calculators · Annual limits table
- 6AI
Apply judgment and rank per client
The model reviews each client's triggered screens with the underlying data and prior-year notes to catch what rules can't: income that looks one-time (a large capital gain driving a false 'high earner' flag), a business winding down, a client already known to have a plan at another provider. It assigns a confidence level, writes a two-sentence rationale citing the specific data fields, lists the questions a human must answer, and ranks opportunities by the code-computed range and confidence.
Tools: Enterprise LLM · Prior-year notes (RAG)
- 7You
Partner review of the ranked list
The responsible partner or manager works a queue sorted by estimated value: accept, reject with a reason, or mark 'needs data'. Rejection reasons are captured as structured codes so screens that produce noise can be tightened. Nothing reaches a client without this approval.
- 8AI
Draft the one-page client summary
For approved opportunities only, the model drafts a plain-English page: what we noticed (with the client's actual figures), what it could be worth (the code-computed range, labeled as an estimate), what it would take, and what we need to know. It avoids guarantees and includes a line that the estimate depends on facts to be confirmed. The partner edits and approves.
Tools: LLM drafting · Firm letter template
- 9Automation
Create engagements and track the pipeline
Each approved opportunity becomes a proposed engagement in practice management with the estimated value range, owner, and a follow-up date. A dashboard shows the firm-wide pipeline by opportunity type, conversion rate, and realized fees, and feeds next year's threshold tuning.
Tools: TaxDome / Karbon / Canopy · BI dashboard or spreadsheet
What you need
- Structured return data for every client (report writer, CSV export, or API)
- Counsel's read on which screens fit the §301.7216-2(h) exception and which need signed §7216 consent
- A versioned table of thresholds and limits, each with a source and effective year
- Deterministic calculators for the savings ranges
- A partner who works the review queue
The stack
Data export
Tax software report writer/CSV export or API; PDF parsing with document AI as fallback
Rules & calculators
Python + pandas with a versioned YAML/CSV threshold table, kept in Git with a named owner
Judgment & drafting
Enterprise LLM (ChatGPT Enterprise, Claude for Work, Azure OpenAI) under no-training, zero-retention terms
Orchestration
Scheduled Python job, n8n, or Power Automate
Pipeline & CRM
Practice management (TaxDome, Karbon, Canopy) with custom fields for opportunity type and value
Named tools are examples, not endorsements. Check any tool against your own data rules first.
Copy the prompt
Opportunity review and ranking prompt
You are a senior tax planning reviewer at a US CPA firm. You will receive one client household as JSON:
- HOUSEHOLD: return data fields (filing status, AGI, taxable income, Schedule C/E, K-1s, SALT, withholding, retirement and HSA fields, state), with a data_source and confidence per field.
- SCREENS: planning screens that fired, each with screen_id, the fields that triggered it, and a savings_range computed by the firm's calculator (low, high, assumptions).
- NOTES: prior-year preparer and partner notes, if any.
Tasks:
A. For each screen, decide: "likely", "possible", or "unlikely" for this client, using only the data provided. Explain in at most two sentences, citing the specific field names and values.
B. Flag any reason the screen may be a false positive: one-time income, a business that appears to be winding down, missing data, a note saying the client already has a plan or has declined before.
C. List the specific questions a human must answer before recommending it (e.g., "Does the client have employees who would need to be covered by a retirement plan?").
D. Rank the screens you rated "likely" or "possible" by the high end of savings_range, then by your confidence.
E. Note any obvious opportunity the screens did not catch, as a question only, with no dollar amount.
Rules:
- Never compute, change, or invent a dollar amount. Use savings_range exactly as provided or say "not computed".
- Never state tax law thresholds, limits, or phase-outs from memory. If a threshold matters, name it as a field the reviewer should check.
- Do not recommend any action as certain; this is a screening aid for a credentialed reviewer.
- If a field has confidence below 0.8, say so and lower your rating by one level.
- Output JSON only:
{ "client_id": "", "opportunities": [ { "screen_id": "", "rating": "", "rationale": "", "false_positive_risks": [], "questions": [], "savings_range": { "low": 0, "high": 0 } } ], "ranked_screen_ids": [], "unscreened_ideas": [], "data_gaps": [] }Example
Fictional data.
One household from the scan (abridged)
client: Marisol Vega (MFJ), state: GA, itemizes: yes Schedule C (landscape design): net profit $212,400 (2024), $188,900 (2023) No S election on file; no retirement contributions; SE tax $28,950 W-2 (spouse): $64,000; withholding covered 71% of total tax; §6654 penalty $410 SCREENS FIRED: SCORP_01 savings_range $6,800–$13,900 (comp $85k–$110k, payroll + prep cost $3,400) SOLO401K_01 savings_range $9,200–$16,700 (at 24%/32% marginal) WITHHOLD_02 penalty avoidance $400–$600 NOTES: "Client mentioned hiring a part-time crew lead in 2025."
Ranked output for partner review
1. SOLO401K_01 (likely). Sched C profit $212,400 and $0 retirement contributions. Risk: note says hiring a crew lead; a Solo 401(k) may not fit if an eligible employee is hired. Question: hire date and expected hours? 2. SCORP_01 (likely). Profit above threshold two years running ($188,900, then $212,400). Question: willing to run payroll? If elected, run the state PTET screen next. 3. WITHHOLD_02 (likely). Penalty $410; set 2025 estimates to prior-year safe harbor. unscreened_ideas: "Would an SE plan decision change if the business becomes an S corp mid-year? Coordinate SCORP_01 and SOLO401K_01 calculations." data_gaps: none
Guardrails
- IRC §7216 is the first gate. Using return information to identify clients for and offer services other than preparing that return (planning engagements, retirement plan setup, entity conversions) generally requires the taxpayer's prior written consent under Treas. Reg. §301.7216-3, in the format Rev. Proc. 2013-14 describes for 1040 clients. Treas. Reg. §301.7216-2(h) lets a CPA firm use return information for its own other accounting services to that client, so have counsel decide which screens fall inside that exception and which (for example, referrals to a third-party plan provider) need consent. Build consent into the engagement letter and have counsel review before running the scan.
- Run everything under an enterprise AI agreement with zero data retention or a no-training commitment, and add the scan, its data exports, and where they are stored to your Written Information Security Plan under the FTC Safeguards Rule.
- Savings ranges come only from deterministic calculators fed by a maintained limits and thresholds table with a source and effective date for every value. The model ranks and explains; it does not calculate or recall limits.
- Treat law-sensitive screens as dated rules: several individual energy credits were cut off early by Pub. L. 119-21 (July 4, 2025), for example §25C and §25D after 2025, and §1202 changed for stock acquired after July 4, 2025. Every rule carries an effective-date range and an owner who confirms it against current guidance each year.
- Client summaries are estimates, labeled as such, and approved by a credentialed reviewer. If you give written advice on a recommendation, Circular 230 §10.37 standards apply: reasonable factual assumptions, relevant facts considered, no reliance on unreasonable representations.
What can go wrong
One-time events (a large capital gain, a severance year) make ordinary clients look like high earners and flood the queue with cash balance plan or S-corp flags.
Screens use two- or three-year averages where available, and the AI step explicitly checks for one-time income before rating an opportunity 'likely'.
Stale or wrong thresholds (an old contribution limit, a state PTET that changed its rules) produce confident but wrong savings ranges.
Thresholds live in one versioned table with a source citation and a named owner; the scan refuses to run if any rule's effective year doesn't cover the tax year being screened.
Entity-linking errors attach a K-1 or 1120-S to the wrong household, generating recommendations based on someone else's numbers.
Link on EIN and SSN-derived keys first, route every AI-proposed link below a confidence threshold to review, and show the linked entities on the partner review screen.
The partner queue becomes a wall of low-value flags and gets ignored.
Suppress opportunities below a minimum savings floor, cap each client at their top three, and tune screens using the structured rejection codes after each run.
How to prove it worked
Opportunities accepted per 100 clients scanned
Count partner-accepted opportunities divided by clients scanned, by screen type.
Track baseline in year one; aim for a stable acceptance rate above 50% per screen after tuning
False-positive rate by screen
Share of flags rejected by reviewers, grouped by rejection code.
Below 30% for every screen that stays in the library
Advisory engagements opened from the scan
Practice management engagements tagged with the scan's opportunity ID, and their realized fees.
Measurable, forecastable advisory pipeline instead of ad hoc work
Coverage
Share of consented clients whose returns were scanned and reviewed each year.
100% of consented clients
Where this goes
The rules library becomes the firm's institutional planning knowledge: every strategy a partner knows is encoded once, dated, and applied to every client every year. Run it continuously as documents arrive during the year rather than once after filing, and the firm starts calling clients before year-end with specific, quantified moves instead of explaining after April what they could have done.
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 and 301.7216-3 (use and disclosure of tax return information; consent requirements)
- Rev. Proc. 2013-14 (form and content of §7216 consents)
- IRS Notice 2020-75 (deductibility of state and local income taxes paid by partnerships and S corporations)
- IRC §1202 (qualified small business stock) and IRC §6654 (failure to pay estimated tax)
- Treasury Department Circular 230, §10.37 (requirements for written advice)
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
- Large impactTax
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.
Saves 30 to 60 minIntermediateWorkflow - Large impactCAS and bookkeeping
Run month-end close with an agent doing the first pass
Close a client's books each month with an agent that reconciles, categorizes, proposes adjusting entries, and prepares the review package, while the accountant approves every change.
Changes the workflowAdvancedAgent - Large impactClient service
Build a cash dashboard around what one owner actually cares about
Give a business owner a live view of their cash built around their own questions (can I make payroll, when can I buy the truck, how much can I take out) instead of a standard report package.
Changes the workflowAdvancedClient experience