Technology

Models judge. Code computes. A US CPA signs.

The architecture behind NGTAX.AI, and what each design choice buys a firm.

  • Per-line provenance
  • Isolated examiner
  • Row-level tenant isolation
  • Append-only audit
Architecture

Seven layers, one record.

Data enters at the bottom and a signed return leaves at the top. Every layer writes provenance and audit events.

  • Ingestion normalizes every source into one transaction record, idempotently, splitting net payouts into their parts.
  • Ledger is double-entry with periods, a chart of accounts mapped to tax lines, and money as exact integers — never floats.
  • Engines are pure functions: statements, book-to-tax, Form 1120, depreciation. Golden-file tests pin every line.
  • Pre-flight checks run before any model, versioned and recorded on each return.
  • Agents judge through one gateway with schema-validated output, budgets and provenance.
  • Console is where the CPA reviews findings, chooses resolutions and signs.
  1. CPA consoleHuman
    • Review queue
    • Findings & options
    • Sign & file
  2. Agents (judge)Model
    • Classify
    • Prepare
    • Examine
    • Resolve
  3. Pre-flightCode
    • Versioned deterministic checks
  4. Engines (compute)Code
    • Statements
    • Book-to-tax
    • Form 1120
    • Depreciation
  5. LedgerCode
    • Double-entry, periods, tax-line mapping
  6. IngestionCode
    • Bank & card feeds
    • Statements
    • Phone capture
Every layerProvenance + append-only audit trail + tenant isolation (row-level security)
Technology value proposition

What the architecture is worth to a firm.

Figures you can support

Every number comes from tested code against the ledger and traces to its transactions. Models never generate a figure, so there is no model arithmetic to doubt.

Independent review

The examiner never sees the preparer’s reasoning. It examines the return, not the argument for it — the separation a reviewing partner insists on.

Designed to be reproducible

Model version, prompt hash, input digest and validated output are recorded for every judgment. Re-running the engine with the recorded judgments produces the same return.

Cheaper every season

Recurring findings become deterministic, cited, human-reviewed checks. Rounds per return fall; the check library compounds into the asset.

Bounded model cost

Every run has a hard spend cap and call cap. A stable-prefix prompt layout keeps most input cached across rounds.

Security controls built in

Tenant isolation is enforced by the database. Authorization goes through one function. Audit rows cannot be edited. Documents are data, never instructions.

Model routing

Two models, each task on the less expensive one that does it well.

Routing is by task, configured in one place, with exact model versions pinned. Work starts on the lower tier when it can perform it reliably and escalates — to the stronger model, then to a person — when confidence falls below a threshold or the finding requires tax judgment. Anthropic models are called directly through the Anthropic API, with no broker and with server-side fallback off.

Mechanical judgment

Claude Sonnet 5.5

  • Resolving findings with one clear answer
  • Fixed-asset class proposals
  • Reading receipts, bills and tax forms
  • Books comparison, notices and workpaper narratives
Tax judgment

Claude Opus 5.5

  • Classifying transactions and preparing the return and its positions
  • The isolated examiner
  • Resolving elections, positions and book-to-tax findings
  • Planning, valuation and prior-year review
  • Offline rule harvesting, in batch
Code before models. Deterministic pre-flight checks run first; an error caught there costs nothing in model time.
Stable prefix first. Chart of accounts, form instructions, authorities and the ledger lead every prompt, so they are cached across rounds; only the round’s changes are sent fresh.
Batch what can wait. Offline work such as rule harvesting runs through batch processing, at a lower price than real-time calls.

Model assignments are reviewed as models change; every return records which model version performed each judgment.

If a prompt ever asks for a number, that number belongs in code.

Models classify, explain, review and draft positions — always against figures the code has already calculated.

Security and compliance

Taxpayer data treated as a build requirement, not a later hardening pass.

Tenant isolation

Postgres row-level security, forced on every customer table. A query without a tenant context returns zero rows; a test suite proves it on every build.

Authorization and audit

One authorization function for every action, with separation of duties between preparer and reviewer. Audit events are append-only at the database.

IRC §7216

Client return information is used only to prepare that client’s return. Any other use requires the consent §7216 prescribes. We do not train models on client data.

Encryption

TLS in transit and encryption at rest; TINs encrypted at the column level and masked everywhere except the return itself.

Model data

Client data reaches a model only under commercial terms approved for it, with a per-client switch to opt out of model processing. Development and evaluation use synthetic companies only.

A US CPA signs

A US CPA signs every return: your CPA, or ours. The company’s officer signs as taxpayer. No return moves on without both signatures on the record.

Read: Models judge, code computes

Bring us your hardest 1120.

Founding firms get their first three returns free and help decide what we build next. Email us with your name, your firm and roughly how many business returns you prepare each year. Do not include any client information.