Managing complexity: encoding the tax code

I put together an interactive tool to explore the U.S. individual tax calculation.

Here is a screenshot of the most basic tax form. You can click through to and add components for kids, check the boxes to add components for a mortgage, student loans, rents and royalties, and so on.


What inspired me to develop it this far is that I showed an early draft to friends and colleagues, and for the most part their reaction was complete indifference.

Taxes are not something you understand, I was told, they are something you do. Every year, you stuff numbers into a black box, and the black box spits out a single owed/refunded number, and that’s what taxes are. There is never any need to intuit how the tax system works.

But tax law is of central importance in governance—nobody jokes about the inevitability of death and parking enforcement. And title 26 of the US Code (herein, the tax code) is arguably the most complex part of the law. What does it take to be an informed citizen or policymaker in this context?


Try it yourself

Here are some fun exercises (really) you can try with the graphical tax explorer linked above:

Q: You can’t deduct large real estate losses—they’re limited by a function of income. But you can reduce your AGI (adjusted gross income) via a student loan interest deduction. Does using the student loan deduction loosen the limitation on real estate losses?

Q: The child tax credit is also limited by a function of income. Does the student loan interest deduction affect that limitation?

Q: Can you receive EITC (earned income tax credit, a subsidy to the poor) and pay the alternative minimum tax (a limit on the wealthy) at the same time?

After you try it with the graphical version, see if you can answer the same questions using this format or this format.

Understanding matters

There are tax analysts who hate the word loophole, under the presumption that every quirk in the tax code was deliberately put there by a policy maker, but errors in managing complexity seem inevitable. When you read about how MegaPlusCorp saved fifty million dollars on their taxes by some very specific trick, you can ask whether it was a choice by legislators to allow it or a failure to manage complexity—a loophole.

Setting aside the lawmakers and the multinationals, the code is filled with exhortations to average users to do things differently. The mortgage income deduction is an incentive to take out a mortgage, the EITC is read as an incentive to work, the child tax credit is an incentive to have kids under seventeen. But if there is no way for a taxpayer to know the effect of these incentives, they aren’t really incentives.

What’s worse, they could come off as lies. “They told me that if I buy this house I’d have a tax bill that’s $1,000 lower, but deducting my house expenses did something I don’t understand to my child tax credit, which teaches me that the tax system is haphazard, random, fixed against people like me, and just plain corrupt. I’ll vote for any politician that promises to burn the whole thing down.”

It is a corollary of the principle that transparent government is good government: the more opportunities citizens have to understand the tax code, the better off the entire system will be. Wouldn’t it be great if civic hackers had a reference implementation of the tax code around which they could write what-if calculators for consumers or businesses, a policy analysis tool using IRS SOI (statistics of income) data, still more infographics, or tools for in-person tax prep for all the tax clinics that pop up this time of year?


In 1913, there was a two-step encoding process to tax law: first, legislators would write the tax code, then the IRS would write a 1040 translating the law into practice.

In the present day, we now add one more encoding, rewriting the law in the form of tax calculators, including the IRS’s Free File Fillable Forms (FFFF, or if you’re in a bad mood, FFFFF). And it is the final encoding, the one taxpayers see, that matters. Consider what would happen if FFFF and 26 USC disagree on some minor detail. Can you imagine IRS imposing penalties on somebody who correctly followed the form instructions but owes taxes under the tax code?

So legislators write the tax code in legalese, then the IRS re-encodes 26 USC in the Byzantine language of tax form instructions, then others re-encode the tax form instructions as executable instructions that people actually use. Policymakers have a harder time of it all because of the multiple re-encodings, individual taxpayers lose interest and tune out, and the big corporations exploit the encoding difficulties to find loopholes. How could we streamline the sequence of multiple re-encodings? My tax graph and the underlying cell database are some potential alternate encodings one could use to understand the process of taxation; what others can we invent?


1 thought on “Managing complexity: encoding the tax code

  1. Pingback: Tax forms: shorter, more complicated | bureauphile

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s