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:
| Record | Candidate claim | Question left open |
|---|---|---|
| Form W-2 (wage and withholding statement) | wages and withholding for the tax year | does it cover every employer? |
| brokerage statement | proceeds and reported basis, the tax cost used to measure gain or loss | which acquisition lot is connected? |
| partnership agreement | 20% ownership | did the percentage change before year end? |
| Schedule K-1 (pass-through tax statement) | 15% ownership and pass-through items | which source controls the draft? |
| wallet export | transfers and digital-asset dispositions | which addresses belong to Maya? |
| prior return | carryovers and prior positions | did 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:
| Field | Source A | Source B | Downstream effect |
|---|---|---|---|
| ownership | 20% in agreement, page 4 | 15% on K-1, page 2 | pass-through and state amounts may change |
| effective date | March 3, 2025 | January 31, 2026 | determine which period each source describes |
| source type | governing document candidate | entity-issued tax statement | ask taxpayer or advisor which controls |
| status | needs review | needs review | block 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 section | Contents | Reviewer action |
|---|---|---|
| source index | every file, page count, year, owner, and processing result | confirm the input set |
| fact ledger | original value, normalized value, source, state, and history | accept, reject, or correct facts |
| calculation workpapers | inputs, units, rule version, and outputs | reproduce or challenge calculations |
| reconciliation report | conflicts, duplicates, unmatched transfers, and late records | resolve or escalate issues |
| missing-fact list | requested document and the decision it would unblock | collect the right evidence |
| draft forms | forms and schedules marked unapproved | review the proposed filing |
| correction log | old value, new value, reviewer, and timestamp | understand 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.
| Event | Fact state | Required product response |
|---|---|---|
| first K-1 received | 15% candidate, source page 2 | keep dependent lines provisional |
| agreement conflict found | 20% and 15% both need review | ask which record controls the period |
| amended K-1 received | 20% accepted by reviewer | create a new draft version and recalculate |
| reviewer opens the packet | old and new values visible | show 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:
| Trigger | Required behavior |
|---|---|
| source is missing | name the document and the calculation it blocks |
| source is unreadable | preserve the file and request a better copy |
| sources conflict | show both values and their pages |
| rule version is unclear | hold the draft until a supported rule set is selected |
| a foreign corporation appears | route the ownership and filing questions for review |
| basis cannot be established | keep the gain or loss unresolved |
| a reviewer changes a fact | create a new version and rerun affected calculations |
| a model or tool fails | preserve 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.