### Flat taxes are neutral under log utility

If welfare grows with log income, then a flat 50% tax actually has no impact on my incentive to work—I get half as many dollars per hour worked, but I’m twice as poor so I value each dollar twice as much. (That is to say, the income effect exactly offsets the substitution effect.) If returns diminish faster than logarithmically, then a flat tax actually increases the incentives for rich people to work. (If income is mostly used for keeping score or positional goods then it has no impact.)

In reality, someone with no income still has some level of consumption C, so a model like welfare = log(income + C) is more plausible than welfare = log(income). We also want people with little income to benefit from redistribution and state services, so that consumption is above income. For this post I’ll assume C=\$10k.

With this adjustment, the disincentive to work depends on the difference between marginal tax rate—how much of the next dollar will I pay in taxes?—and average tax rate—how much poorer am I overall because of taxes? For calculating the average tax rate, we count C as untaxed income.

For US federal taxes, if we take C=\$10k, the largest gap between average and marginal rates occurs at \$200k, when someone pays a 35% marginal rate but only a 22% average tax rate. At this point their incentive to work is about 83% as large as it would otherwise have been (83%=(1-35%)/(1-22%)).

That means that the income effect offsets about half of the disincentive from higher tax rates, which eliminates around 75% of the social cost (since costs grow quadratically with distortions).

Suppose I tried to design my tax code so that, according to this model, everyone’s incentive to work is 90% as large as it would naturally be. Then the tax rate would grow continuously, and we’d get the following rates:

\$0: 10% (vs. 10% under US status quo)
\$10k: 15% (vs. 12%)
\$40k: 22% (vs. 22%)
\$80k: 27% (vs. 24%)
\$160k: 31% (vs. 32%)
\$200k: 32% (vs. 35%)
\$500k: 38% (vs. 37%, the current top rate)
\$5M: 50%
\$50M: 60%
\$500M: 68%

This looks surprisingly similar to the current rate schedule, but without stopping at the current top rate. I was very surprised by how similar these ended up being, and I wonder if some principle of this form was used when designing brackets. (Though I think benefit phaseout makes it a huge mess at low incomes, and other taxes introduce further distortions.)

This schedule raises significantly more money than the status quo but only leads to a max disincentive of 10% (vs. 17%), because it varies continuously rather than jumping at brackets.

Overall my view is that other distortions from high taxes probably dominate the disincentives in this model—incentives to evade taxes, taxing some activities more than others, untaxed domestic work, and so on.

If you were OK decreasing the incentive to work by 20% instead of 10%, rates could go up much faster (but also at 4x the deadweight loss, so that deadweight loss per \$ of revenue is 2-3x higher):

\$0: 20%
\$10k: 29%
\$40k: 40%
\$80k: 47%
\$160k: 53%
\$200k: 55%
\$500k: 62%
\$5M: 75%
\$50M: 84%
\$500M: 90%