Catch dropped carryforwards and missing schedules before prep starts
Compare this year's documents and draft return to the last two or three years and surface what vanished, what was dropped, and what swung without an explanation.
Instead of a preparer paging through the prior-year PDF and hoping to remember that the client had a suspended passive loss, a pipeline parses the last two to three years of returns into structured data, compares them to this year's source documents and draft return, and produces a variance memo plus a client question list. Carryforwards are checked line by line, disappearing schedules are called out, and large swings are paired with the evidence (or lack of it) that explains them.
- Time
- Saves 10 to 30 min
- About 35 min down to 10 min per return
- Who does it today
- Preparers at the start of prep and reviewers at sign-off
- Practice area
- Tax
Illustrative planning estimate, not a measured result. Assumes a 1040 with Schedules A, B, C or E, and D, plus at least one carryforward. Traditional time is a preparer or reviewer opening two prior years, comparing schedules and carryover worksheets, and writing review notes. AI time is a human reading the variance memo, clearing flags, and approving the client questions. Simple W-2-only returns will see much less benefit.
Traditional vs AI-native
Traditional
- 1Open last year's PDF
- 2Scan every schedule
- 3Hunt for carryover worksheets
- 4Run the comparison report
- 5Eyeball what moved
- 6Write review notes
AI-native
- 1Prior years parsed
- 2Code builds expectations
- 3Code computes variances
- 4AI explains and flags gaps
- 5You clear every flag
- 6Re-run on the final draft
Where you sit
You review a short memo ordered by severity instead of paging through three years of returns. You decide each flag, confirm every carryforward personally, and sign off.
The traditional way
- Preparer opens last year's return PDF (and sometimes the year before) side by side with the new source documents.
- They scan each schedule, looking for rental properties, businesses, K-1 entities, and dependents that should appear again.
- They hunt for carryover worksheets: capital loss carryover, suspended passive losses on Form 8582, charitable carryover, §179 carryover, NOL, and prior-year minimum tax credit on Form 8801.
- After the draft is done, the reviewer runs the software's prior-year comparison report and eyeballs lines that moved.
- Questions for the client are written into review notes or emailed piecemeal as they come up.
Where it hurts
- Carryforwards get dropped when the prior year was prepared elsewhere or rolled forward incompletely, and the client silently loses a deduction.
- A Schedule E property with no rents and no 1098 this year is easy to miss. Was it sold (triggering a disposition and released suspended losses) or just forgotten?
- Comparison reports show every line that moved, so reviewers drown in noise and skip the one swing that matters.
- Knowledge of the client's history lives in one senior person's head.
The AI-native way
- 1AI
Parse prior-year returns into a structured baseline
The prior two to three years of returns (the firm's own software export when available, otherwise the filed PDF including worksheets) are extracted into a normalized JSON baseline: every form and schedule present, each Schedule C/E/F activity with its identifiers, each K-1 entity by EIN, dependents, state returns, and every carryover amount with the worksheet it came from. Each value carries a page reference.
Tools: Tax software export / PDF · Azure AI Document Intelligence or vision LLM · LLM with JSON schema output
- 2Automation
Build the expected-this-year profile
Deterministic code turns the baseline into expectations: each rental should show rents and usually a 1098 or property tax bill; each business should have income; each carryover should appear as a beginning balance this year. Carryforward rules are encoded explicitly, for example, capital loss carryover follows §1212(b) and the Capital Loss Carryover Worksheet, which reduces it only by the loss actually absorbed (the lesser of the §1211(b) limit or adjusted taxable income), and suspended passive losses carry by activity on Form 8582.
Tools: Python rules engine · Carryforward rule tables maintained by the firm
- 3Automation
Compare source data and draft return to expectations
Current-year extracted documents and, when available, the draft return export are matched against the profile by EIN, property address, and activity name. Code computes dollar and percentage change for every line, and checks that every carryover balance appearing last year either appears this year or has a documented reason for ending (fully used, activity disposed, expired).
Tools: Python + pandas · Tax software draft export
- 4AI
Score and explain significant variances
The model receives only the variances above firm-set thresholds (e.g., more than $5,000 and more than 25%) plus the related source documents, and classifies each: explained by a document on file (new W-2, sale on 1099-B), plausibly explained but needs confirmation, or unexplained. It must cite the document that supports an explanation, or say none exists.
Tools: Enterprise LLM · Document index with page references
- 5AI
Flag missing schedules and dropped carryforwards
The model writes plain-English flags for structural gaps: a rental with no activity (sold, converted to personal use, or missing documents?), a K-1 entity absent this year (final K-1 last year?), a §179 carryover or charitable carryover not picked up, a Form 8801 credit that disappeared. Each flag states the prior-year amount, where it was found, and what would resolve it.
Tools: Enterprise LLM
- 6AI
Draft the variance memo and client questions
Output is two documents: an internal variance memo organized by severity (dropped carryforwards and missing schedules first, then unexplained swings, then explained ones for the file), and a short client question list in plain language. Questions never assert a conclusion ('Did you sell 412 Oak St this year?' not 'You sold 412 Oak St').
Tools: Enterprise LLM · Workpaper template
- 7You
Preparer and reviewer clear every flag
The preparer resolves each flag with a disposition (documented, corrected, client asked, not applicable) and the reviewer confirms carryforward flags personally before sign-off. The memo and dispositions are saved to the workpapers as evidence of diligence and reasonable inquiry under Circular 230 §§10.22 and 10.34(d).
- 8Automation
Feed answers back and re-run on the final draft
Client answers from the portal are attached to the matching flag. When the return is marked ready for review, the comparison re-runs against the final draft so that any carryover still missing blocks the job status from moving to 'ready to file'.
Tools: Practice management API (TaxDome, Karbon, Canopy, etc.) · n8n / Power Automate
What you need
- Prior-year returns with their worksheets (software export or PDF)
- This year's source documents and, ideally, the draft return export
- A firm threshold for what counts as a significant variance
- An enterprise AI tool under no-training data terms
The stack
Prior-year data
Tax software exports or PDF returns with worksheets; document AI (Azure AI Document Intelligence, AWS Textract) for PDFs prepared elsewhere
Rules & math
Python + pandas, or a well-structured spreadsheet for small firms; firm-maintained carryforward rule table
Reasoning & drafting
Enterprise LLM (ChatGPT Enterprise, Claude for Work, Azure OpenAI) under no-training, limited-retention terms
Orchestration
n8n, Power Automate, or a scheduled Python job triggered by job status
Workflow & evidence
Practice management system (TaxDome, Karbon, Canopy) and the firm's workpaper binder
Named tools are examples, not endorsements. Check any tool against your own data rules first.
Copy the prompt
Variance and carryforward review prompt
You are a senior tax reviewer at a US CPA firm preparing an internal variance memo for a Form 1040.
You will receive three JSON objects:
1. BASELINE: prior-year returns (up to 3 years). Forms, schedules, activities, K-1 entities, and carryover amounts, each with year and page reference.
2. CURRENT: current-year source documents and draft return lines, each with document ID or line reference.
3. VARIANCES: lines where code has already computed change above the firm threshold (amounts are authoritative; do not recompute them).
Tasks:
A. For each item in VARIANCES, classify as "explained", "needs_confirmation", or "unexplained". An explanation must cite a specific document ID from CURRENT. If none exists, it is not "explained".
B. Identify structural gaps: any activity, schedule, K-1 entity, or state return in the most recent BASELINE year that is absent from CURRENT. Suggest possible legitimate reasons (sold, final K-1, moved) phrased as questions.
C. Check carryforwards: capital loss, NOL, suspended passive losses by activity, charitable contribution carryover, §179 carryover, prior-year minimum tax credit, general business credit, excess business interest. For each carryover in BASELINE not present in CURRENT, flag it with the prior amount and source page. Do not compute the correct current amount; state what must be verified.
D. Draft up to 8 client questions in plain English, one issue per question, no jargon, no conclusions stated as fact.
Rules:
- Use only numbers that appear in the input. Never estimate, round, or recalculate amounts.
- If data is ambiguous (e.g., two properties with similar addresses), add it to "needs_review" with your reasoning.
- Severity: "high" = possible dropped carryforward or missing schedule; "medium" = unexplained variance; "low" = explained variance.
- Output JSON only:
{ "variances": [{ "line": "", "classification": "", "evidence": "", "severity": "" }],
"structural_gaps": [{ "item": "", "prior_year_ref": "", "question": "" }],
"carryforward_flags": [{ "type": "", "prior_amount": "", "source": "", "what_to_verify": "" }],
"needs_review": [],
"client_questions": [] }Example
Fictional data.
Baseline vs. current (abridged)
BASELINE 2024: Sch E: 412 Oak St (rents 21,600; Form 8582 suspended loss 6,140, p.14) Sch E: 88 Birch Ave (rents 18,000); Sch D capital loss carryover to 2025: 11,300 (p.9) Charitable contribution carryover worksheet: 2,400 (p.17); K-1 Harbor View LP (EIN ..4471) CURRENT 2025: 1098 for 88 Birch Ave only; rent summary 88 Birch Ave 18,600 1099-B Schwab: net ST gain 3,200; no K-1 Harbor View LP received Draft Sch 1 line 8 other income: 0 (2024: 0); wages +46% (new W-2, Lakeside Health)
Variance memo (abridged)
HIGH 412 Oak St missing: no rents, no 1098, no 1099-S. Suspended loss 6,140 (2024 p.14).
Verify: sold? If disposed in full, suspended loss may be released. Confirm.
HIGH Capital loss carryover 11,300 (2024 p.9) not on draft Sch D. Verify roll-forward.
HIGH Charitable carryover 2,400 (2024 p.17) not picked up. Verify worksheet.
MED Harbor View LP K-1 absent. Was 2024 marked final? Chase if not.
LOW Wages +46%: explained by W-2 Lakeside Health (doc 0412).
Client questions:
1. Did you sell or stop renting 412 Oak St in 2025? If sold, please send the closing statement.
2. Have you received a 2025 K-1 from Harbor View LP, or was the investment closed out?Guardrails
- Code computes every variance and carryforward balance; the model only classifies, explains, and drafts. A carryforward amount is never taken from model output.
- Carryforward flags are 'high' by default and require a named reviewer's disposition before the return can be marked ready to file.
- Keep the variance memo and dispositions in the workpapers. It documents the diligence and reasonable inquiry expected under Circular 230 §§10.22 and 10.34(d) and helps support a good-faith position if a §6694 preparer penalty question ever arises.
- When the prior year was prepared by another firm, treat its carryover amounts as unverified until tied to that year's worksheets; note the source in the memo.
- Process prior-year returns only through an enterprise AI tier with no-training and limited-retention terms, and include the workflow in the firm's WISP. Confirm §7216 treatment with counsel.
What can go wrong
Prior-year PDF lacks carryover worksheets (only the filed forms were saved), so carryforwards are invisible.
Treat 'no worksheets found' as its own flag; request the prior preparer's full copy or the client's IRS tax return transcript (or record of account), and read Schedule D and Form 8582 lines directly.
Alert fatigue: dozens of low-value variances bury the important ones.
Firm-tuned dollar and percentage thresholds, severity ordering, and explained items collapsed into a single appendix line each.
The model 'explains' a swing with a plausible story not supported by any document.
The prompt requires a document ID for 'explained'; code rejects any explanation whose cited ID is not in the index.
Activities renamed between years (LLC name change, property re-described) appear as missing plus new.
Match on EIN and normalized address first; near matches go to needs_review rather than being auto-paired.
How to prove it worked
Carryforwards dropped on filed returns
Reviewer spot-checks 40 filed returns with prior-year carryovers against prior-year worksheets, this season vs. last.
Zero
Review notes about prior-year items raised after prep
Tag review notes that cite a prior-year item the preparer should have caught; count per 100 returns.
Down 50%+
Flag precision
Share of high and medium flags the reviewer marks as useful (not noise) over a sample of 30 returns.
≥ 70% useful
Client question rounds per return
Count separate question emails or portal requests per return in the practice management system.
One consolidated round in most cases
Where this goes
Every client gets a living multi-year profile (activities, carryforwards, basis, elections, and life events) that updates the moment documents arrive. Prep starts from a list of what changed and why, not a blank return and a stack of PDFs. Over time the same profile powers planning conversations: 'your capital loss carryover will be used up next year; here's what that means.'
Demo
Demo video coming soon
Until then, the steps and the example above are the walkthrough.
References
- IRC §1212(b) and Schedule D instructions (Capital Loss Carryover Worksheet)
- IRC §469 and Form 8582 instructions (suspended passive activity losses)
- IRC §170(d) and IRS Publication 526 (charitable contribution carryovers)
- IRC §172 and the Form 172 instructions (net operating losses for individuals, estates, and trusts)
- IRC §53 and Form 8801 instructions (prior-year minimum tax credit)
- Treasury Circular 230, 31 CFR §10.22 (diligence as to accuracy) and §10.34(d) (reliance on client information and reasonable inquiry)
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
- Medium impactTax
Answer an IRS notice with a reconciled, ready-to-sign response
Identify the notice, calendar the real deadline, reconcile the IRS's change against the filed return, and draft the response and exhibits.
Saves 30 to 60 minIntermediateWorkflow - 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 - Medium impactCAS and bookkeeping
Analyze a client's monthly financials and flag what deserves your attention
Review the month's results against prior periods and the client's own context, and decide what is worth investigating, what to ask the client, and what to tell them.
Saves 30 to 60 minIntermediateWorkflow