Blog

AI Accountant For Complex Tax Returns: Source-Linked Workpapers Before Filing

An AI accountant for complex tax returns should build source-linked workpapers, reconcile conflicting facts, and prepare review questions before filing.

Drew Stone
tax-agentai-accountantcomplex-tax
An editorial still life about preparing a complex tax return with software

Maya needs more than another assistant summarizing her tax folder. She needs someone to answer why a number appears in the draft, which document supports it, what changed since last year, and what must be resolved before a return can be approved.

An AI accountant for complex tax returns should therefore produce workpapers, records that show how reported values were assembled, and an exception queue. It can reduce the time spent opening PDFs, copying values, matching transactions, and finding missing records. Uncertain tax positions must remain visibly unresolved.

This article uses “AI accountant” as a product label for an evidence-handling preparation system. It is not tax advice, and a taxpayer or qualified professional must make the final filing decisions.

The useful unit is a claim with a citation

For an AI accountant, the smallest useful unit is a claim with its source, status, calculation impact, and history.

Maya’s folder might contain:

RecordCandidate claimQuestion left open
Form W-2 (wage and withholding statement)wages and withholding for the tax yeardoes it cover every employer?
brokerage statementproceeds and reported basis, the tax cost used to measure gain or losswhich acquisition lot is connected?
partnership agreement20% ownershipdid the percentage change before year end?
Schedule K-1 (pass-through tax statement)15% ownership and pass-through itemswhich source controls the draft?
wallet exporttransfers and digital-asset dispositionswhich addresses belong to Maya?
prior returncarryovers and prior positionsdid a later correction change the starting value?

The AI can read, classify, and compare these records. The application must retain the source page and the unresolved question.

The Internal Revenue Service (IRS) digital-asset guidance says taxpayers need records that establish positions taken on a federal return. The IRS page for Form 8949, the form used to reconcile many sales and exchanges, describes reconciling reported amounts with the amounts reported on the return. Those sources justify preserving source links; they do not authorize an AI model to decide every digital-asset event.

A claim ledger makes uncertainty inspectable

The claim ledger should use separate fields for extracted text, normalized values, review state, and source evidence. An empty field should never become a confirmed zero without an explicit decision.

The following is illustrative TypeScript for an application model, not a Tangle SDK type.

type ReviewState =
  | 'candidate'
  | 'needs-review'
  | 'accepted'
  | 'rejected'
  | 'superseded'

type Claim = {
  id: string
  field: string
  originalValue: string
  normalizedValue?: string | number
  source?: {
    document: string
    page?: number
    excerpt: string
  }
  state: ReviewState
  affects: string[]
}

const claim: Claim = {
  id: 'claim-ownership-001',
  field: 'partnership.ownership',
  originalValue: 'Maya Stone: twenty percent interest',
  normalizedValue: 0.2,
  source: {
    document: 'partnership-agreement.pdf',
    page: 4,
    excerpt: 'Maya Stone: twenty percent interest',
  },
  state: 'needs-review',
  affects: ['K-1 allocation', 'state allocation'],
}

console.log(claim)

The example keeps the claim in needs-review even though it has a page reference. A citation proves where the text came from. It does not prove that the document is current, controlling, or interpreted correctly.

That distinction is the difference between a workpaper and a confidence score.

Reconciliation is a product feature

Reconciliation compares records that describe the same field or transaction. It should happen before the system calculates totals or drafts schedules.

Consider Maya’s 20% agreement and 15% K-1. An ordinary data-entry tool may import the K-1 and move on. An AI accountant should put both records in front of a reviewer:

FieldSource ASource BDownstream effect
ownership20% in agreement, page 415% on K-1, page 2pass-through and state amounts may change
effective dateMarch 3, 2025January 31, 2026determine which period each source describes
source typegoverning document candidateentity-issued tax statementask taxpayer or advisor which controls
statusneeds reviewneeds reviewblock dependent draft lines

The same screen can handle duplicate uploads. It can show a transfer that appears in two wallet exports. It can flag an amount whose currency and conversion date were never recorded.

The system should preserve a conflict rather than collapse it. This JSON (JavaScript Object Notation) example keeps both source values:

{
  "field": "partnership.ownership",
  "values": [
    {
      "value": 0.2,
      "document": "partnership-agreement.pdf",
      "page": 4
    },
    {
      "value": 0.15,
      "document": "k1-statement.pdf",
      "page": 2
    }
  ],
  "state": "needs-review",
  "question": "Which ownership record governs the return period?"
}

The wording of the question matters. “Resolve conflict” sends the reviewer back into the system. “Which ownership record governs the return period?” tells the reviewer what decision is required.

Calculate from structured facts

After review, deterministic code should calculate narrow quantities from typed inputs. The model may help extract a number, but it should not be the only place where the number’s meaning exists.

Maya has $180,000 of wages, $2,400 of interest, and $25,000 of proceeds from a digital-asset disposition. Her acquisition record is missing, so the system can report $182,400 of ordinary-income candidates while leaving the gain candidate unresolved. Here, “ordinary-income candidates” is a preparation label for amounts routed to ordinary-income review, not a completed tax classification.

type ReturnInputs = {
  wages: number
  interest: number
  proceeds: number
  basis: number | null
}

type ReturnSummary = {
  ordinaryIncomeCandidates: number
  gainCandidate: number | null
  questions: string[]
}

function summarize(input: ReturnInputs): ReturnSummary {
  const questions = input.basis === null
    ? ['Provide acquisition records before calculating gain or loss.']
    : []

  return {
    ordinaryIncomeCandidates: input.wages + input.interest,
    gainCandidate: input.basis === null
      ? null
      : input.proceeds - input.basis,
    questions,
  }
}

const summary = summarize({
  wages: 180_000,
  interest: 2_400,
  proceeds: 25_000,
  basis: null,
})

console.assert(summary.ordinaryIncomeCandidates === 182_400)
console.assert(summary.gainCandidate === null)
console.assert(summary.questions.length === 1)

This is a workpaper calculation, not a tax-liability estimate. The IRS Form 1099-DA guidance, covering a broker’s digital-asset proceeds statement, explains that broker statements may report proceeds and in some cases basis, while the taxpayer remains responsible for reporting income, gains, and losses. An AI accountant should show whether a statement supplied basis or whether the value came from a separate acquisition record.

Use Tangle to coordinate the work session

Tangle coordinates reusable service packages and the operators that run them. Tangle’s Sandbox product provides an isolated runtime for agent jobs. The product described here is an illustrative Tangle Tax Agent architecture, not a claim that Tangle currently offers accounting or tax advice.

The public Tangle Blueprint documentation defines a Blueprint as a reusable service template. For this workflow, a Blueprint could describe a prepare-workpapers job, its accepted input package, its review-package output, and its storage requirements. The broader preparation flow is described in AI Tax Preparation For Complex Returns, while Automated Tax Filing With Review Before Submit covers the boundary after the workpapers are ready.

A service instance is one live deployment of that Blueprint. An operator is the party that runs the service instance. A runtime is the isolated environment where the parser, model calls, calculators, and document store operate. An agent profile pins the model, tools, budget, and policies for Maya’s run. A Tangle Router selects an operator or provider route for a model request; it does not choose a tax position.

For this application, a trace records the files opened, tools called, outputs produced, reviewer decisions, and failures. An evaluation is a repeatable test that runs known cases and checks the result, cost, and policy behavior. For this product, the test set should include conflicting ownership, missing basis, duplicate uploads, unreadable scans, and an amended K-1.

If the workflow uses a hardware-isolated runtime, attestation is a signed report about the measured code and hardware-backed execution environment. It can support a privacy or code-identity claim. It cannot prove that the accountant’s conclusion is legally or mathematically correct.

If the service is sold per preparation job, x402 is an HTTP payment flow that returns 402 Payment Required and accepts payment proof on retry. For Tangle’s asynchronous Blueprint gateway, settlement admits the job and returns 202 Accepted; the runner delivers the result separately. Payment proves the request was paid. It does not prove the workpaper is accurate or complete.

The Tangle core concepts define agent profiles, runtimes, evaluations, service instances, and operators. The x402 standard documentation describes payment over HTTP.

Tangle’s Sandbox quickstart shows the public SDK and health check for an isolated runtime. The health check can run before synthetic documents are uploaded:

npm install @tangle-network/sandbox
curl -fsS https://sandbox.tangle.tools/health

That command tests reachability only. It does not establish retention, isolation, tax-rule coverage, or the quality of a generated workpaper.

The packet should survive a handoff

An advisor should receive a packet that can be reviewed without replaying the AI conversation. Its source index lists every input file, page reference, processing result, and missing record. For Maya, that packet might contain:

Packet sectionContentsReviewer action
source indexevery file, page count, year, owner, and processing resultconfirm the input set
fact ledgeroriginal value, normalized value, source, state, and historyaccept, reject, or correct facts
calculation workpapersinputs, units, rule version, and outputsreproduce or challenge calculations
reconciliation reportconflicts, duplicates, unmatched transfers, and late recordsresolve or escalate issues
missing-fact listrequested document and the decision it would unblockcollect the right evidence
draft formsforms and schedules marked unapprovedreview the proposed filing
correction logold value, new value, reviewer, and timestampunderstand version changes

The packet should use version identifiers. If Maya supplies a corrected K-1, the product should show which calculations and draft lines changed. It should not overwrite the old result and leave the reviewer guessing why the refund moved.

The change trail should explain a revision

A reviewer should be able to understand a correction without comparing every page of two exported returns. The product should show the old fact, the new fact, the source for the change, and the outputs that were recalculated.

Suppose the first draft uses the 15% K-1 allocation because the partnership agreement is still marked needs-review. Maya later uploads an amended K-1 and confirms that the new allocation applies to the full tax year. That confirmation changes a tax fact and requires dependent outputs to be recalculated.

EventFact stateRequired product response
first K-1 received15% candidate, source page 2keep dependent lines provisional
agreement conflict found20% and 15% both need reviewask which record controls the period
amended K-1 received20% accepted by reviewercreate a new draft version and recalculate
reviewer opens the packetold and new values visibleshow which forms and totals changed

The model can suggest that the amended document supersedes the earlier value. The application should still require a reviewer decision and deterministic recalculation before it marks the new lines accepted. The old packet remains part of the history because it explains what the reviewer saw before the correction arrived.

This is also how the product should handle a late brokerage statement, a duplicate wallet export, or a corrected state allocation. The user does not need a longer explanation from the model. The user needs a narrow answer to three questions: what changed, why did it change, and which result must be reviewed again.

Privacy needs a retention story

An AI accountant may receive identity documents, bank records, wallets, entity agreements, and prior tax returns. The product should tell the reviewer which artifacts are temporary and which must survive the filing lifecycle.

At minimum, define:

  • who can access the source files and derived claims;
  • which model endpoints can receive document text;
  • whether tools can make network requests;
  • how traces are redacted or exported;
  • how deletion handles backups and generated workpapers;
  • which approved packet remains available for the taxpayer and advisor.

Tangle’s AI Agent Sandbox documentation describes the separation between the hosted application, on-chain lifecycle records, and the operator API for live runtime state. That public architecture is useful as a design reference. It does not remove the tax product’s obligation to define its own retention and access policy.

Where an AI accountant should stop

An AI accountant should stop, ask, or escalate when:

TriggerRequired behavior
source is missingname the document and the calculation it blocks
source is unreadablepreserve the file and request a better copy
sources conflictshow both values and their pages
rule version is unclearhold the draft until a supported rule set is selected
a foreign corporation appearsroute the ownership and filing questions for review
basis cannot be establishedkeep the gain or loss unresolved
a reviewer changes a factcreate a new version and rerun affected calculations
a model or tool failspreserve the partial trace and retry state

The failure message should help a human recover. “Foreign corporation mentioned in subscription-agreement.pdf, page 8; ownership percentage and officer status are unconfirmed” is useful. The message “International issue detected” gives the reviewer no next step.

The same principle applies to Form 8621, the information return used for certain passive foreign investment company shareholders, and to foreign tax credits. The IRS describes conditions that can require Form 8621, and it publishes separate foreign tax credit guidance. The product can identify the questions and attach the sources. It should not infer an election, classification, or credit from a document label.

Keep final authority with the reviewer

The label is useful only if the product is precise about its role. It can organize records, create workpapers, calculate controlled subproblems, find conflicts, and prepare a handoff. It cannot prove that the source records are authentic, that the taxpayer’s facts are complete, or that a judgment-heavy position is correct.

The advisor handoff should be a first-class output. The advisor should see the source index, claim ledger, calculations, unresolved questions, and correction history rather than a transcript of every model message.

Pick the product by the packet it leaves behind

Choose an AI accountant for complex tax returns when it leaves an inspectable packet with source pages, calculation inputs, unresolved exceptions, correction history, and approval state. Keep a simpler bookkeeping or filing tool when those source joins do not exist. If the product cannot show that packet, keep its output as an unapproved draft for a qualified reviewer.

What is an AI accountant?

An AI accountant is software that organizes financial records, extracts and links facts, performs controlled calculations, drafts preparation artifacts, and surfaces questions for human review.

Can an AI accountant replace a CPA?

No. It can reduce document and reconciliation work, but taxpayers and qualified professionals still make the final decisions for complex or uncertain positions.

What should an AI accountant produce?

It should produce a source index, claim ledger, calculations, reconciliation report, missing-fact list, draft forms or schedules, and correction history.

How should I review AI accountant output?

Open the source for every high-impact claim, check units and tax year, inspect conflicts and missing records, review changed versions, and confirm the approval state before relying on the draft.

Can Tangle provide the tax answer?

Tangle can provide public infrastructure patterns for a runtime, service definition, operator, payment edge, and recorded run. The tax product still needs its own rules, sources, review controls, and professional escalation.