2020 was an interesting year in many ways including all things taxes… I mean, we paid $0 in income tax (again) on ~$143k income.

This was in part because dividends and blog revenue were lower due to COVID-19, which is a bummer. But it is also because we welcomed another child tax credit into the family, which is nice. Plus, he’s kinda cute.

But that’s not all… for all of you tax aficionados, this year’s tax return offers some good examples of both short and long term tax minimization, including use of the Foreign Earned Income Exclusion, the Child Tax Credit (with phase out), capital gain harvesting, Roth conversions, the Foreign Tax Credit (on International equities), and more.

Let’s explore, shall we?

The Go Curry Cracker 2020 Taxes

Executive Summary

Per usual, we had multiple streams of income totaling $143,290.

The marginal income tax rate (on additional income) was 15% for qualified income and 27% for ordinary income, with an effective (overall) tax rate of 0%. Total income tax was $0.

Because I violated Rule #1, Choose Leisure over Labor, I paid $4,891 in self-employment taxes (sort of an involuntary annuity purchase.) This brings the effective tax rate to 3.4%

Key to getting the numbers right is a good tax calculator that understands the beauty of tax-free Roth conversions and Capital Gain Harvests. I have written such a calculatorGCC Income Tax Calculator

Form 1040

  • Income
    • Taxable interest: $84
    • Tax-exempt interest: $5,623
    • Dividends: $32,122 (20% reduction from last year)
      • Qualified: $28,113
    • Blog profit: $34,960
    • Roth conversion: $17,423
    • Capital gain: $53,078
      • Short-term loss: -$6,984
      • Long-term gain (harvest): $60,062
  • Gross Income: $143,290
  • Adjusted Gross Income: $102,432 (Line 11)
  • Taxable Income: $77,631 (Line 15)
  • Tax:
    • Income Tax: $4,470 (Line 16)
    • Self-employment Tax: $4,891 (Line 23)
    • Tax Credits: $4,470 (Line 21)
      • Child Tax Credit: $3,917 (Line 19)
      • Foreign Tax Credit: $483 (included on Line 20)
      • Credit for child and dependent care expenses: $70 (included in Line 20)
    • Income tax after credits: $0 (Line 22)

This is how it all looks on the 1040 ->

Foreign Earned Income Exclusion

We have claimed the foreign earned income exclusion for several years now, which allows us to exclude most/all of our blog income from US taxation.

This year the FEIE is applied to $32,166 of blog income. This is derived from the Schedule C blog profit ($34,612) minus the deductible portion of self-employment taxes ($2,446, no double deduction.)

Determining the benefit is.a 2-step process shown below on the Foreign Earned Income Tax Worksheet.:

First, calculate tax on total income of all types, foreign and domestic. (Line 4c)
Second, calculate tax on only the excluded income. (Line 5)

Subtract this amount from the tax calculated in step 1 to yield total tax (Line 6, Form 1040 Line 16.)

Total savings = $3,466.

Roth Conversion

In Mach 2020 when the stock market was way down I did a Roth conversion worth $17,423, moving funds from a Traditional IRA to a Roth. This is shown on the 1040, Line 4a and Line 4b.

At the time I had no idea what our annual income would be for the year, and I wasn’t optimistic. But I knew for sure that earned income would be way down and I would be able to do a Roth conversion with an effective tax rate of 0%.

To determine the exact amount I used a time honored tradition that has been handed down from generation to generation. I guessed.

Considering how much the market has rebounded from those lows, I should have guessed more forcefully. Oh well, at least the tax rate was right.

Savings estimate: 12% of conversion amount, $2,091 (or much more since growth is now tax free.)

Capital Gain Harvesting

Back in March 2020 I sold a bunch of bonds, some of it at a loss, in order to buy stock at a discount. In total I realized a loss of $6,984.

By December of 2020 I had a pretty good idea of what our income would be for the year (also a guess), and we still had about $60,000 worth of 0% tax bracket to fill with long-term capital gains, including the capital loss from March.

As such, I sold ~$60k worth of VTI and then immediately bought $60k of VTI, for a total realized long-term capital gain of $53,078 (Form 1040, Line 7.)

We now own the same number of shares of VTI just with a higher basis, which will reduce our future tax burden.

Want to know more about how this works? Plug your email address in here and I’ll send you our capital gain harvesting template based on actual transactions.

Savings estimate: 15% of cap gain value, $7,962

Child Tax Credit

As I highlighted above, both the Roth conversion and capital gain harvesting values were based on (educated) guesses. Alas, I guessed wrong and left some money on the table. $83 to be specific.

We are eligible for 2 Child Tax Credits totaling $4,000, but we are ineligible for the Additional CTC (the refundable part) because we claim the FEIE. After applying other credits to our total tax, our remaining tax burden is only $3,917… limiting our CTC to the same $3,917.

To get the remaining $83 I would have had to increase the Roth conversion by $307 or increased the capital gain harvest by $553. Honestly I’m kind of impressed I got so close.

This won’t be an issue for 2021 as the Child Tax Credit is fully refundable due to the American Rescue Plan. This is for 2021 only unless future legislation extends it.

Related:

Stimulus Income

Because we welcomed our 2nd child in 2020 we were able to get additional stimulus income based on our larger family size. This includes $500 from the CARES Act and $600 from the Coronavirus Response and Relief Supplemental Appropriations Act of 2021, or $1,100 total (Form 1040, Line 30.)

Our other 3 family members already received those “recovery rebate credits.”

Because our 2019 income was too high to qualify for the stimulus income provided by The American Rescue Plan Act of 2021 (married households with income in excess of $160k get $0), I had some motivation to file our 2020 taxes early.

We would get the $1400/person in any case, but I prefer to have it now vs getting it on our 2021 tax return.

Filing early worked out – we have already received the full $5,600 ($1,400 via direct deposit and $4,200 via check and the post office.)

Tax on Credit Card Rewards Points

An interesting thing, nowhere on our 2020 tax return does it show the $4,500+ we received for cashing our a bunch of credit card rewards points. (tldr: we weren’t planning to travel for some time and I’ll just get more points before we do.)

If you earn award points through credit card usage or signup bonuses, the IRS just treats these points as a refund on your purchases. There is no income and therefore no taxes. (See our Award Travel Series on Transferrable Currencies.)

Ironically, we actually got a lot of these points by paying taxes – we pay self-employment taxes quarterly, and I often use that “opportunity” to meet the minimum spend on a new credit card.

If you are going to have to pay some taxes anyway, you might as well get a nice vacation out of it.

Related:

Great welcome bonus

CSPThe Chase Sapphire Preferred is the best card for beginning travel hackers!
The 60,000 point welcome bonus after spending $4k in 3 months is worth $750+ off travel!
No foreign transaction fees, $95 annual fee
Named a 'Best Travel Credit Card' by MONEY® Magazine, 2016-2017
Learn more here.

Summary

2020 was a good tax year – $143,290 in gross income / $0 in income tax / $4,891 in self-employment taxes.

This means zero income tax on dividends and blog revenue today, and thanks to capital gain harvesting Roth conversions, zero-ish income tax on future retirement income as well. Social Security income will even be higher due to the self-employment taxes.

Overall I think we did alright with a conservative savings of $13,435 over what we would have paid were I still working for a living.

To get the numbers right, I created my own tax calc that highlights optimum values for tax-free Roth conversions and capital gain harvests. Check it out: GCC Income Tax Calculator

Until next year…