Compared to an ideal tax code, it’s awful.
Compared to the pre-existing tax code, it’s a vast improvement.
Compared to my expectations going in, it’s a pleasant surprise. It required some real political courage to pass this thing, and political courage always surprises me. There’s also a lot of good sense in it, which sometimes surprises me even more.
Compared to what I suspect we could have had, if only that same good sense and political courage had been harnessed by a president who was capable of understanding the bill’s content, participating in its formulation, and selling it to the public, it’s something of a disappointment.
Scott Sumner does a superb job of summarizing the good, the bad and the neutral. Instead of quoting him extensively, I’ll (strongly) encourage you to go read the original. A few additional remarks: