As long as Intuit can lobby for the tax code to be complex and the process to be slow, painful, and manual, there aren't going to be any viable options that aren't just other commercial alternatives to TurboTax.
I have not yet become that nihilistic, but I do think it would require a pair of a subject matter expert and then someone with reasonable software engineering chops to pull it off. Starting by not using a dynamically typed language, IMHO
I figure if M:TG can be implemented, surely the tax code can, too, even if it requires an "expert system," or machine learning, or NLP or something other than 1,500,000 lines of C++ or whatever TurboTax is written in
---
Actually, that's also an interesting question: surely the IRS doesn't rely on an army of people with calculators and pencils to verify said returns, so I wonder if a well placed FOIA request would cough up their COBOL source code they use?
> Starting by not using a dynamically typed language, IMHO
This is written in TypeScript.
As with most everything the problems with why it hasn't been done are unrelated to someone not selecting the "right" language to do it in.
> Actually, that's also an interesting question: surely the IRS doesn't rely on an army of people with calculators and pencils to verify said returns, so I wonder if a well placed FOIA request would cough up their COBOL source code they use?
As mentioned is has to do with lobbying from the major tax companies. The "Free File" program was created out of an agreement the IRS wouldn't create such software usable by folks if the tax companies offered their existing software to most that needed it. https://www.propublica.org/article/inside-turbotax-20-year-f...
Exploitable bugs in the COBOL implementation would almost certainly be matters of national security, so I somehow doubt they'd open up the code!
Joking aside, I think the commonality between collectible card video games and legal code is the notion of "code as data." The record that tracks, say, a Shadowverse or MTG card (not going to mention the other obvious example, especially not today), associates it with artwork, ensures that display logic and other-card-interaction logic is normalized with minimal duplicated data, allows it to be hotfixed, tracks its state through various QA stages, automates fuzz testing with many combinations of other cards... all that has analogies to what would be needed here.
It's a rule engine where every field is a node in a directed graph (of course it's the tax code so it's not an acyclic graph, who are we kidding) but there are ways to analyze that. But, the same way a AAA game studio has ways to manage semi-trusted contractors (and, it would seem, even less trustworthy creative directors) and ensure quality at scale, one could imagine a crowdsourced system for rule verification. The "product" is less a tax form filling system and more of a distributed version control system and CI platform. You solve that, you solve a lot.
To me, a significant part of the commonality is the preciseness of the text, and how much of an impact that can make. Many legal cases hinge on the exact phrasing of a law, and sometimes you don't realize the choice of a word is significant.
Another part is that it's hard to program them in a sane way because the rules are arbitrary. It's possible to code how the rules are, but it's impossible to guess how they'll change in the future. Two things you assumed would never interact might need to interact in the future. Two things you thought would never stop interacting might suddenly stop.
I'm not an accountant, but in the Magic world, you would assume that the turns go in a set order, right? Nope, there are cards that reverse the order of turns permanently. You would assume that a player always controls their own turn though. They don't though, there are cards to let you take someone else's turn. There are also cards that let you play the cards out of other peoples' hands.
I looked at coding it, and it turned into spaghetti pretty quickly. Everything has to have ways to interact with everything else, and testing becomes incredibly difficult because of the sheer number of ways these things can interact. And it's hard to make even the most basic of assumptions because they're liable to change at any point. There are no "laws of physics" that at least define a set of possibilities.
Ideally an open-source project where hundreds of contributors can add small contributions based on their specific knowledge might produce a viable non-commercial option.
recently I complained to a coworker about the state not having an equivalent free file fillable forms and he piped back "thank Intuit for that". I thought what do they have to do with any of that? Just seemed totally disconnected to me. Then this year when I was free fillable forms filing and using the Brave browser I saw all this add blocked junk and checked it out and wow it was all stuff from Intuit. I would have never guessed that free file fillable forms is an Intuit product, it's pretty well hidden the relationship. If you dig around the website you can uncover the origins but it's not obvious with any branding and what not.
I think governments outsourcing software development is fairly common? I've worked on a government (intranet) site in the past as a contractor, we didn't add any branding so nobody would know who the developer is unless they did a FOIA request. Though I don't know if the lack of branding is due to design choice or contractual requirements.
They already have experience creating tax software so it seems like an obvious choice to outsource to.