The 401k Loan That Cost Me $311 — I'd Sign the Form Again
A $14,300 roof repair forced a choice between borrowing $12,000 from my 401k at 4.25% or selling 82 shares of my index fund. The napkin math took thirteen months to settle, and the winner was closer than I expected.
At 11:40 PM on October 14, 2024, I sat at the kitchen table with a roofer's estimate, a pen, and one cocktail napkin. The napkin had two columns. Behind me the laptop glowed on the counter, logged into the 401k portal with a loan calculator already filled in at $12,000, and above the dryer a water stain the size of a bike tire kept spreading through the ceiling drywall.
The estimate read $14,300. Insurance sent a letter with the word "wear" in it three times, which meant they were paying nothing, and between checking and the high-yield savings account I could scrape together $2,300 without selling anything, so the gap was $12,000 even and it had to come from either my own retirement account or the index fund position that had been compounding untouched since 2016. The roofers wanted half up front by November 1. November 1 was sixteen days away.
I labeled the napkin's columns SELL and BORROW and filled both in before midnight. One of them was lying. It took thirteen months, a spreadsheet named roofmath.xlsx, and one phone call I almost didn't make before I knew which column was the liar — and by exactly how much, down to the dollar.
the napkin with two columns
The SELL column assumed I'd raise the gap by dumping shares of FXAIX, my S&P 500 index fund, then trading around $185. Eighty-two shares grossed $15,170. My average cost sat near $118 a share, which put the taxable gain around $5,490, and at the 15% long-term rate the capital gains tax came to approximately $824, leaving about $14,350 of actual roof money after the dust settled. Selling carried a quieter second cost, too: those 82 shares would miss whatever the market did next, and October 2024 sat three weeks before an election I had strong feelings about.
The BORROW column said $12,000 out of the 401k at 4.25% interest, repaid thru payroll, plus a $75 origination fee the plan charged for the privilege of using my own money. The loan looked cheaper that night. I jotted down both bottom lines, circled nothin, and went to bed. The napkin's margin said the difference was about $600. It was wrong, though not by enough to change the ending.
4.25% interest, paid to myself
Here is the part half the internet gets wrong. The interest on a 401k loan doesnt vanish into a bank's vault — it lands back in my own balance, compounding for the same future me who hasta live on that account at 67. Over the 21 months I took to pay it off, I handed myself about $431 in interest, and every dollar of it came from after-tax pay. That last clause is the hook everyone hangs their sermon on. It is real. It is also modest.
I ran the repayment at $611 a month, which cleared the balance in month 21 instead of the 60 the plan allowed. My paycheck absorbed it. Twice I wanted the money elsewhere — a January car repair, a March flight to my sister's wedding in Tucson — and twice I chewed on the numbers and left the payroll deduction alone.
the recruiter call in month nine
In month nine a recruiter from a Denver hospital system called about a job paying $11,000 more than I made. I liked the sound of it for about a day. Then I remembered the clause. If I left, the remaining $8,900 balance would come due within 60 days, and anything unpaid would become a distribution with a 10% early-withdrawal penalty plus income tax, a worst case I priced at approximately $2,700 on top of losing a job I hadn't yet been offered.
I priced the risk instead of pretending it wasn't there, which is the only honest way to compare a loan against a sale. Selling shares carries no repayment cliff at all. The loan carries one quietly, in the fine print of every job conversation you have while its outstanding, and I stopped pretending that didn't matter after Denver.
the $52 nobody can avoid
The famous double taxation deserves an autopsy. Only the interest portion gets taxed twice — once leaving my paycheck, once leaving the account in retirement — and my interest totaled $431, so at my anticipated 12% bracket the truly double-taxed slice costs about $52. Fifty-two dollars. Sermons have been written about less.
twenty-one months, $311 in missed gains
The real cost hid in a different pocket. While the $12,000 was outta the market — a shrinking figure, since every $611 payment went back in thru payroll — FXAIX ground its way up about 4.5%, and when I rebuilt the path in roofmath.xlsx, month by month, the forgone gains on the average outstanding balance worked out to $311. That is the honest number for what the loan cost me. Not the $431 in interest, which I paid myself. Not the $52 of double tax. Three hundred eleven dollars of market I didnt own while the money sat on my roof instead.
Against that $311, plus the $75 fee and the $52, the sale option still would have handed the IRS $824 in capital gains tax and stripped 82 shares outta a position I had spent eight years refusing to touch. The comparison stopped being close. Total loan cost, $438 against $824 of pure tax — a gap of $386 — and I zeroed in on that gap for a solid week before believing it.
the clause I underlined twice
Page 3 of the loan agreement, section 6, subparagraph b: outstanding balances come due within 60 days of separation from employment. I underlined it twice. The first underline didn't feel sufficient. The payroll administrator at my company, a woman named Dolores, walked me through the payoff mechanics on the phone call I almost skipped in month 20, and she was the one who cited that my final deduction would land three days after my payoff quote expired, which would have left a $14 residual balance generating paperwork for nobody.
the napkin went in the drawer
The roof went on in November 2024. Gray architectural shingles, a 30-year warranty, and a sealed, painted patch where the bike-tire stain used to be. The napkin went in the desk drawer instead of the trash, next to the estimate and Dolores's handwritten payoff number. On March 3, 2026, I opened roofmath.xlsx one last time, typed the final figures into the two old columns, and closed the laptop at 11:40 PM on purpose.
The SELL column was the liar, by $386. I'd sign the same form tomorrow with the same pen at the same kitchen table, $311 of missed gains and all, cuz the alternative was an $824 tax bill for the privilege of shrinking the one fund position I have never once been tempted to touch. The napkin stays in the drawer. Some arithmetic you want to be able to recheck.