96% on TaxCalcBench, the highest score recorded

Exact US tax calculations
for any agent

AI models read tax documents well and do tax math badly. OpenTax does the math for them: the same facts always give the same return, and every line points to the law behind it. With OpenTax, Claude Sonnet gets 96% of TaxCalcBench returns exactly right, the highest score recorded.

Same answer every time

The same facts always produce the same return. It's rules and exact arithmetic, not a model's best guess.

Source on GitHub

Every rule and every test is public, so you can read exactly how any number was reached.

Highest benchmark score

96% of TaxCalcBench returns exactly right. No model or engine has scored higher.

The same model goes
from 6% to 96%

TaxCalcBench asks a model to prepare 50 complete US tax returns, and a return only counts if every line is exact. Claude Sonnet on its own gets 6% right. The same Sonnet using OpenTax gets 96%, more than any model tested, with or without web search.

before
Claude Sonnet, on its own
6%
+ connect the OpenTax MCP
one URL, nothing else changes
after
the same Sonnet, same prompts, with the engine
96%
correct returns · TaxCalcBench TY25highest score ever recorded
Claude Sonnet + OpenTax MCP96%
GPT-5.6 Sol + web search58%
GPT-5.5 + web search54%
Claude Fable 5 + web search34%
Claude Sonnet, unaided6%
48/50
returns exact to the dollar
98.2%
of all 820 scored lines exact
16×
better than the same model alone
the two it missed

Both reference returns have worksheets that don't match their own inputs, and no published model run gets them right either. We reported it to the benchmark's maintainers.

methodology: TaxCalcBench TY25 by column-tax, 50 returns, strict scoring (every line exact) · scored with the benchmark's own evaluator against its reference returns · leaderboard rows from its published July 2026 results · agent runs cold, pass@1

01

Every rule cites the law

Each rule carries its code section, the dates it applies, and the exact text it comes from. No number comes from a model's memory.

02

Every answer has a proof

The proof records the facts, the rules and the arithmetic behind an answer. You can check it offline, without trusting us.

03

Works from the forms

Give it the boxes from W-2s and 1099s and the family's birth dates. It works out ages, who counts as a dependent, penalties and excess withholding from those.

04

Says when it can't answer

When a situation isn't covered, OpenTax refuses and says why, instead of returning a number that looks right and isn't.

05

Federal and state

Forms 1040, 1120 and 1041, each line by line in one call. Full returns for 31 states, flat calculations for 10 more, and the nine states with no income tax.

What firms use it for

OpenTax works under the agent you already use, like Claude, ChatGPT, Cursor or your own agent. The model reads the documents and writes the reply, and OpenTax does the math.

tax & accounting firms

Check every return against a second calculation

Connect OpenTax to Claude and give it the client's W-2s, 1099s and the draft from your software. It recomputes every line of the 1040 and flags each one that doesn't match, with the law it's based on.

what you'd ask
“Here's the Hendersons' W-2 and the draft 1040 from our software. Recompute every line and flag anything that doesn't match. Citation for each flag.”
freelancer & S-corp clients

Quarterly estimates when income comes in unevenly

The safe harbors (100% or 110% of last year's tax) and the annualized installment worksheet are both built in. If a client has a big third quarter, OpenTax works out the payment that avoids the penalty.

what you'd ask
“Client draws a $60k salary and just booked a $180k Q3 licensing windfall. Compute the annualized Q3 estimate and show the safe-harbor comparison.”
advisory engagements

S-corp elections, worked out to the cent

Compare a sole proprietorship with an S-corp paying a reasonable salary: self-employment tax against payroll taxes, the QBI deduction under its wage limit, and the total federal difference, in one call.

what you'd ask
“Sole prop, $220k net. Model an S-corp election at a $110k salary: SE vs payroll tax, QBI under the wage limit, total federal delta, cited.”
financial planners

Find the cliffs before your client hits one

Vary any input across a range, like an IRA withdrawal, and OpenTax reports every point where one more dollar costs more than a dollar of tax: Social Security becoming taxable, the senior deduction phasing out, the 2026 premium credit cliff, the EITC investment income limit.

what you'd ask
“Sweep an IRA withdrawal from $0 to $80k for this 67-year-old couple. Chart the true marginal rate, flag every cliff, then find the sweet spot.”
every client meeting in 2026

What the new law changes for each client

Every rule knows the dates it applies, so the same facts can run under 2025 law and 2026 law: the tips and overtime deductions, the senior deduction, car loan interest, charity for people who don't itemize, and the SALT phase-down.

what you'd ask
“Run the Alvarez file under 2025 law, then 2026 law. Draft the client letter: what changes, by how much, and which OBBBA section did it.”
review & audit trail

Numbers you can put in the workpapers

Every answer comes with a proof: the facts, each rule and its citation, and every step of arithmetic. Anyone can check it offline, months later. When a situation isn't covered, OpenTax says so instead of guessing.

what you'd ask
“Recompute Schedule 8812 for the review file and attach the proof artifact. I want every step re-derivable at audit time.”

It can look things up too. search_tax_rules finds a rule by keyword, lookup_tax_parameter gives the dollar amounts with citations, and verify_fact tells you whether a figure is right. If nothing matches, the law isn't covered yet. The same engine runs as a command line tool and as a TypeScript library in the browser.

Works with what you already use

Anything that supports MCP can use OpenTax: chat assistants, code editors, agents and automation tools.

ClaudeChatGPTGeminiPerplexityClaude CodeGitHub CopilotGemini CLILibreChatGooseOpenCodeMstyOllamaClaudeChatGPTGeminiPerplexityClaude CodeGitHub CopilotGemini CLILibreChatGooseOpenCodeMstyOllama
CursorWindsurfZedVS CodeClineContinueRaycastLangChainn8nZapierMakeVercel AI SDKCursorWindsurfZedVS CodeClineContinueRaycastLangChainn8nZapierMakeVercel AI SDK

Add OpenTax to your agent

Paste this URL into any app that supports MCP. We host it, and you can try it without an account.

hosted connector · streamable httpstateless
https://opentax.invaro.ai/mcp
1

Copy the connector URL

We host it, so there's nothing to install. You can try it without an account.

https://opentax.invaro.ai/mcp
2

Add it in Claude

Settings → Connectors → Add custom connector. Name it opentax and paste the URL.

3

Ask a tax question

Enable opentax in the chat's tools menu, then try:

MFJ, $120,000 wages, two kids. What's the federal refund?
Using OpenTax at a firm?

With the Firm plan, everyone on your team connects their agent with their own email, and the engineers who build OpenTax answer your questions within 24 hours. $9 a seat a month, $5 from six seats.

See the Firm plan
Run it locally
One package with the MCP server, the command line tool and an HTTP server.
claude mcp add opentax -- npx -y @invaro/opentax
npx -y @invaro/opentax eval --status mfj --wages 120000 --kids 2
Source and listings
Business Source License. Listed in the official MCP registry as io.github.Invaro/opentax.
source on github

166 people have starred the engine

Every rule, citation and test is in the repository, along with the code that ran the benchmark. Run it on your own returns, and tell us where we're wrong.

166
stars on GitHub
26
forks
BUSL-1.1
source license; products for others need a commercial one
31
states with full returns

Try it on a real return

Add the connector, give your agent a return you've already filed, and compare every line. Each one comes back cited and rounded the way the form rounds.

Or get an email when we ship something new. We confirm your address first. privacy