We open-sourced our tax engine
The calculation was never the hard part. Here’s what we think is.
Filed has open-sourced its federal 1040 calculation engine. The whole thing, published under AGPL v3, free to download and free to run. It’s at github.com/filedcom/opentax and it installs with one command.
We’re doing it alongside Crimson Tree Software, as the two founding members of the Open Tax Technology Alliance. There are two initiatives under it so far. The engine, and an open standard for K-1 and K-3 data. Neither will ever be monetized.
Here is the reasoning, because “we’re giving away our software” usually means something else is going on.
What’s actually in it
OpenTax is a single binary. It runs on macOS, Linux and Windows. It needs no account and no cloud connection, and it works offline. The only network call it makes is a daily version check against GitHub. No client data goes anywhere.
It covers Form 1040 for tax year 2025 across 186 registered nodes, with 131 input types: W-2s, the 1099 series, K-1s, and Schedules A, C and E. There are computed forms on top of that, including 8995-A, 8960 and 8889. Every node is a pure function with a typed schema, so you can inspect the dependency graph and see exactly which inputs produced which line.
It checks a return against the IRS MeF business rule set and exports Modernized e-File XML. Roughly 1,300 of the 1,800 1040-series rules are implemented today. The remaining 500 are stubbed, and you can see which is which by opening the files, because we would rather publish the gap than have you find it.
It ships with 133 benchmark scenarios so you can check our work instead of taking it on faith. You can prepare a return with it, re-check a return someone else prepared line by line, or model a what-if.
Why give it away
The core tax calculation is a solved problem. It was solved decades ago, by companies that have been charging an annual licence fee for it ever since. There is nothing left to invent in the arithmetic of a 1040. There is only a toll booth.
So the honest question for us was whether the engine is a moat or a cost of entry. It’s a cost of entry. Every serious player in this market has one or is building one, and within a year or two they will all be roughly equivalent, because the underlying rules are public. Charging for something that is about to be free is a business model with a shelf life.
What we think is genuinely hard, and what we spend our time on, is the layer above the calculation. Getting a number off a coffee-stained brokerage statement correctly. Getting it into the right field in CCH Axcess. Knowing that this particular firm treats this particular election a particular way, and that the partner who signs the return has opinions about it. That work is specific to each firm and it does not commoditise. The engine underneath it does.
Two things a firm can do with this today. Run it locally and re-check the 1040s it filed this season, at no cost. Or take it as the foundation for its own tax software and skip the engineering we already did. If you’re going down the second road and intend to apply for MeF transmitter licensing, talk to us first, because the licence has terms about that and we’d rather have the conversation than the argument.
What a score on a tax benchmark tells you
We’ve written about this before, at length, and the argument hasn’t changed: a headline accuracy number is usually built to end the conversation before you ask the question that matters.
Benchmarks in this category hand a system a structured taxpayer profile and ask it to produce the return. That’s a real test of one step, and a useful one. It is also the step a deterministic calculator was always going to win, because that is what calculators are for. Connecting a tax engine to a language model and then scoring the pair on arithmetic measures the engine. It says nothing about whether the facts going into the engine were right.
We could do the same thing. We have an engine, we have models, and wiring them together is an afternoon’s work. We’d post a number in the same range everyone else is posting. We’re not going to, because we don’t think the number would tell you anything you need to know.
When we ran our AI through TaxCalcBench we reported 94% line by line and 72.5% on complete returns, published the methodology next to the numbers, and said plainly that 72.5% is not good enough to run unsupervised. Those are worse numbers than a calculator produces on the same test. They are also measuring a harder job.
Three questions still hold. Accurate at what. Measured how. Accurate when. Anyone quoting a figure at you should be able to answer all three, and the answers matter more than the figure.
Where the engine runs is a decision, not a detail
OpenTax runs on your machine. That was deliberate, and it’s the design choice we’d argue hardest for.
The alternative pattern, which is becoming common, is a hosted engine behind a URL. You connect an AI assistant to it, the taxpayer’s data goes to someone else’s server, and the answer comes back. Thirty seconds to set up, which is the selling point.
Be clear about what that is and is not. It is not automatically a compliance problem. Section 301.7216-2(d) permits a preparer to disclose return information to a US-based service that assists with preparing or processing the return, without separate client consent, and the regulation’s own example is a firm sending return data out to a processor and getting it back. The rules also draw a line where the provider starts making substantive determinations about the return rather than processing what it’s given, and cross-border handling is treated differently again. Section 7216 carries criminal exposure for knowing or reckless violations, and section 6713 adds a civil penalty per disclosure. This is a question for your own counsel and not for a blog post.
What we would say is narrower. Every one of those distinctions turns on facts you have to establish and keep establishing: where the server sits, who operates it, what they retain, whether the data trains anything, and how many providers the request actually passes through once an AI assistant is relaying it. Some of those facts are hard to pin down and all of them can change without telling you.
Data that never leaves the building doesn’t need any of that established. It can’t be retained by a vendor, breached at a vendor, subpoenaed from a vendor, or added to a training set. The question doesn’t arise.
We are not pretending to be pure here. Filed itself is a hosted service, and OpenTax has a hosted MCP connector for people who want the fastest path. What we’ve done is make the local binary a real option rather than a footnote, so a firm can choose deliberately instead of by clicking a button. A thirty-second setup is not a compliance review, whoever is offering it.
We have more to say about 7216 and where this whole category sits on it. That’s a separate piece.
The part nobody has opened yet
Calculating a return and filing one are different problems, and only one of them is being given away right now.
Filing runs through the IRS Modernized e-File system. The forms and instructions are public. The schemas and business rules go to registered e-file software developers through IRS e-Services, so they are obtainable but not exactly open. What isn’t open at all is the software that talks to MeF, which is where the licence fees live.
Our MeF application is in. If the IRS accepts it, OpenTax becomes an open route into federal e-filing, available to individuals, firms, developers and AI agents on the same terms. We’ve committed publicly that neither initiative will ever be monetized, and the application rights sit with the Alliance’s founders specifically so that commitment survives us.
The K-1 standard
The second initiative is smaller and more immediately useful. K-1s still travel between firms as PDFs, which means every recipient re-keys or re-extracts data that was structured when it left the sender.
Open Tax Document is a free, open standard for exchanging structured data relating to Form 1065 Schedules K-1 and K-3, along with their associated footnotes and forms. There’s no licence to acquire. The repository carries a complete K-1 taxonomy, extensible draft taxonomies for the K-3 and for common K-1 footnotes, transmission formats, agentic PDF extraction utilities and document verification tools, all designed to be used by AI agents rather than just read by people.
It’s a public draft, honestly labelled as one. The spec lists its own gaps, including K-3 coverage that exists on paper without validation behind it yet. It’s at github.com/opentaxdocument/otd-spec and what it needs now is firms telling us where it breaks.
Crimson Tree brought the partnership tax expertise. They have spent 25 years building compliance systems relied on by the largest public accounting firms and by some of the most complex private equity, hedge and real estate funds in the country. If a K-1 standard is going to survive contact with real allocations and real tiering, it needs people who work on that daily.
If you want to help
Contributors can be anyone. Tax professionals who know where the edge cases hide, developers who want to build forms into the engine, firms who want to extend the K-1, K-3 and footnote schemas with what they see in the field.
Two concrete things. Adopt the OTD standard and tell us where it breaks. Or take the MeF schemas, which you can get through e-Services registration, and build the next form into the engine.
We built this in the open because we think the foundation belongs to everyone, including the people we compete with. The engine was never the interesting part. What firms do on top of it is.
Subscribe to our newsletter
Explore our latest insights
Discover valuable articles to enhance your knowledge.






