Thursday, September 11, 2014

Flatness Cures Spaghetti

This one is not about food.

Apparently this week I am focused for some reason on some issues that are out of season or currently suffering from the "exception proving the rule" -- or at least will be as soon as the Yankees are eliminated from contention in the the MLB wild card.

We are now five months distant of the hated day of 15 April, upon which we typically raid our bank accounts, borrow from friends, pull dollar bills from all the hiding places in the house, and lump them up to send to that paradigm of information protection, the IRS, to pay our taxes.  The next day we cry in our soup, and start shoving dollar bills into the same cracks and crevices to prepare for the year hence.

Having spent many years as a successful COBOL programmer (after being a medical student and an opera singer), you may infer that:

(1) I must be very old
(2) I am familiar with the concept of "spaghetti code."

On the assumption that you, dear reader, are not only unfamiliar with the term but cannot see the relationship between spaghetti and taxes, let me explain.  "Spaghetti code" is a computer programming term, probably now long out of favor, from the days when a "program" was a series of instructions telling the computer what to do, how to accept input from a screen or console, where and what to print or display, and a huge set of "if A then do B" kinds of statements.  Each instruction is represented in a line of code, and those programs could run easily into hundreds or thousands of lines of that code.

Because things change, over time the programmer -- or his successor -- would need to make changes to the code, over and over again, until at length the program may still have been doing what was desired, but had become a series of patches that would take, over time, exponentially more time to unravel by the next repairing programmer than would be taken simply to start the program afresh under the then-current rules.  The code of such a program, patched until it hurt, was called "spaghetti code" as a metaphor for all the internal pointers in the code going here and there that weren't in the original, like a bowl of spaghetti.

The astute among you will realize that the true badness of spaghetti code was its irreparability -- that it would be far, far more cost-effective to start over again, writing high-quality code in the most current language, representing the rules then in place rather than maintaining all the fixes and reversals since originally written.  If you take this to heart, you will start, from this day forward, to identify spaghetti code in multiple aspects of your life, generally having nothing to do with programming.

I will offer you perhaps the most prominent such example: The United States of America currently has some 74,000 pages of laws and instructions governing the payment of taxes.  I dare not speculate on how many of those pages are devoted to amending the amendment of prior amendment to US Tax Code ABC:XYZ sub paragraph 4(c).  Remembering that the cure for spaghetti code is to start all over, I would propose that some intelligent lawmaker stand up in the House and declare that it is time to start all over again.

As a systems analyst -- yes, I have done that a lot as well -- I am well trained to focus on the end state and design systems that get you there.  Do we think it possible to arrive at that end state collectively without descending into dreadful partisanship?  I actually think so, because my end state differs from what yours may be.  My end state is quite simple:

We have achieved the optimal personal income tax system when we define that rate structure which maximizes revenue from the income tax.

I am avoiding the linkage between taxation and spending there, because for our purposes they are separate.  Logically, we should determine the number of dollars needed for the government for the next 4-5 years (as I wrote earlier) and figure out how to get them.  But more spending (or less) doesn't change the essential relationship between tax code and revenue -- there is a tax structure which will maximize the revenue to the Government and it is not affected by the budget; it is only affected by the economy, meaning that optimal structure's incentives and disincentives.

I quote Jack Kemp: "If you tax something, you get less of it, and when you reward something, you get more of it."  Therein lays the spaghetti.  Congress has used the tax code over its approximate century to force actions and drive behavior rather than for its primary purpose, to maximize revenues.  Unfortunately, by taxing activities such as industriousness and savings, we discourage them.  This is, however, an income tax, and if indeed we are to have such a thing, we must create it in such away that it minimizes the disincentives to work and savings.

A few years ago, for example, I was very interested in a role as an evening-class instructor to teach a couple classes in computer science at a nearby community college.  Although it wasn't for the money, once I realized that I would be paying over 50% of my income to various governments -- the marginal rate would have been about 38% to the USA, and more than 12% to Virginia and Social Security, it became not worth the separation from my family.  That was a service that was not created, let alone taxed, because the disincentive from tax rates was too high to create the service.  Those taxing authorities received, in fact, nothing for this service that died a-borning.  As Mr. Kemp properly noted, if you tax something, you get less of it.

I have intentionally stated that the purpose of the code is to raise the optimal revenue.  We understand that there is a logical curve -- if we taxed at a rate of zero we would eliminate any disincentive to work, but produce no tax; conversely, if we taxed at 100%, no one would work as there would be no purpose to it -- all revenue would go to the Government (the Laffer curve).  The desired outcome of a tax code, no matter what it taxes, is to maximize the transactions being taxed (the sole exception being such as cigarette taxes, whose revenue impacts are secondary to the public health benefits of taxing smoking into its well-deserved oblivion).

The problem suffered by the imposition of a Congress in this matter is that they have to be re-elected, which means they have to say and, unfortunately, do things contrary to the actual best interests of the public.

One such notion is that "fairness" plays a role in tax simplification.  According to the fairness proponents, the higher-income individuals (who are inexplicably called "rich" or "wealthy" even though the tax code currently stands as a major obstacle to anyone's further accumulation of wealth) should pay a higher percentage of their income in taxes.  However, fairness is also an obstacle to obtaining the optimal tax rate, since the economy of countries and households alike doesn't behave the way the fairness proponents would like.  More fairness generally produces smaller revenues, since (q.v. Mr. Kemp) progressively higher rates discourage the transaction of wages, and drive those precise individuals best positioned to tax avoidance into doing just that.

And so, rather than the feel-good-but-self-defeating notion of progressive taxation, we simply provide two rates -- one of which is zero.  Yes, that is correct, the optimal structure of the tax code, after eliminating all deductions as Congressional meddling and social engineering, would have two and only two defining numbers: the exemption and the rate.  The exemption is the amount of taxable income (wages, interest and taxable distributions from investments, gambling, etc.) which is, a priori, exempted by each filer from the first dollar of such income.  The exemption is the sole capitulation to the fairness doctrine, and leaves the "working poor" (i.e., those with incomes lower than the exemption) working only for themselves and not for the Government.  The rate is the percentage of each and every dollar beyond the exemption to be paid as income tax.

For example, in such a case where the exemption is $30,000 per year and the rate 20%, an individual making $25,000 would pay zero, and one making $50,000 would pay $4,000 (20% of the amount earned beyond the $30,000 exemption).  A household with a working spouse at $50,000, a non-working spouse, and two children would pay the same $4,000 as a single filer at $50,000, lest the Government be seen as subsidizing children (or lack thereof).  The tax code would reduce to perhaps a single page (a reduction of 73,999 pages and the attendant hernias associated with its carriage).

I want to stress that this approach is more progressive than the current code!  That is absolutely true.  By implementing a taxpayer exemption and eliminating any brackets thereafter, the effective percentage of taxation increases from a $30,000 income (where it is 0%) smoothly up to Warren Buffett territory (where it is essentially 20%).  Although the marginal rate after $30,000 is always 20%, our example family at $50,000 is only paying $8,000, an effective rate of 8%.  An individual earning $150,000, on the other hand, would pay $24,000 in taxes, for an effective rate of 16%, double that of the much lower earner.  It confounds me how anyone would regard this type of "progressive taxation" as not being superior to the multiple-bracket version.

The tweaking allowed by Congress could only be in regard to the exemption and the rate.  The exemption is simply to defend the lowest income and could rise if needed, but the brake on such expansion would be that it applies to everyone, including those making substantially more.  The rate could go up or down, but the brake on it would be that the elimination of subsidies and deductions would mean that we would ultimately approach the rate producing optimal revenues, at which point we could simply stop, knowing that even if we were to need additional revenues (for, say, a war or for some future President to create a Department of Umpdesquat), the tax code could not produce it.

"But I depend on the mortgage interest deduction," you say.  No, no, you do not.  You depend on a stable tax rate.  If my tax bill under the current law is $10,000 with a mortgage interest deduction, but would be $9,000 under an exemption-and-rate flat tax, why would you fight for such a system?  In fact, if my tax bill were the same, I would still fight for the flatter tax, if only because Congress has no business stating in law that buying a house is preferable to renting one (and, yes, one page of law is preferable to 74,000).

A million-line program rife with spaghetti code is disastrous not only because it is nigh impossible to decipher, let alone amend, but because it perpetuates an approach totally inconsistent with whatever the contemporary reality is.  Tax code, like programmed spaghetti code, inevitably reaches a point where it is best discarded and replaced with, as I am fond of saying, what we would do if we started today from scratch, under today's rules, with today's capabilities in today's realities.

We would never have built today's 74,000 pages of garbage from a blank slate if we started today.  It has long since diverged from its goal of raising enough revenue to run the Government.  Why does it make any sense to maintain it in that form?

Copyright 2014 by Robert Sutton

No comments:

Post a Comment