Your bank account will tell you, with total confidence, how much you made this year. It's wrong. It isn't wrong by much, maybe a few percent, but it's wrong in a particular direction, and that makes the deposit total one of the most persuasive bad numbers in a freelancer's life. You watched those payouts land. You felt every one. So when tax season comes and you add them up, the total feels like the truth, because you lived it.

The IRS isn't looking at what you lived, though. It's looking at a different number that Stripe may already have sent it, and that number is bigger than anything you ever saw in your bank.

The number you never actually see

When a client pays you $1,000 through Stripe, $1,000 doesn't arrive in your bank. Stripe keeps its processing fee first. If you later refund part of a charge, or a customer disputes one, that comes out of your balance too. Then Stripe batches what's left into a payout. What lands in your checking account is a net number: money in, minus fees, minus refunds, minus disputes, grouped by payout date rather than by the day each client paid.

So you're dealing with two figures that describe the same year:

  • Gross volume: everything your customers were charged.
  • Net payouts: what actually reached your bank.

If you get a Form 1099-K from Stripe, it reports gross. Every charge counts at full face value, before fees and before refunds. The form isn't trying to tell you your profit. It records how much money passed through the payment system with your name on it.

That gap between the two figures is where the trouble starts.

Why your brain trusts the wrong number

Daniel Kahneman had a phrase for one of the mind's most dependable shortcuts: what you see is all there is. We build confident stories out of whatever information is in front of us, and we rarely stop to ask what's missing. The deposits are right in front of you, all the time. Gross volume sits in a Stripe report you've probably never opened.

Mental accounting makes it worse. Richard Thaler's work showed that people don't treat money as one interchangeable pool. We sort it into labeled buckets based on where it came from and how it showed up. A payout arrives feeling like income. A processing fee never arrives at all, so it doesn't feel like an expense. It feels like nothing. You can't miss money you never held.

That's why so many careful, honest freelancers get this wrong. They aren't being sloppy. Their bookkeeping just follows how they experienced their money, and Stripe's plumbing makes that experience leave things out.

The two mistakes, and why they point in opposite directions

Getting Stripe income wrong usually happens one of two ways, and they cost you differently.

Mistake one: reporting deposits as revenue. You add up your payouts and put that total on Schedule C as gross receipts. It seems reasonable, and your profit might even come out roughly right, since fees and refunds were already taken out before the money arrived. But your gross receipts line is now lower than the 1099-K the IRS received. The IRS runs an automated matching program that compares information returns like the 1099-K with what taxpayers report. When the numbers don't line up, the result can be a CP2000 notice proposing more tax on income it thinks you left out. Clearing that up means proving that the gap is fees and refunds. You can do it, but it's a stressful letter to open over income you did report.

Some people make it worse by also deducting their Stripe fees as an expense, after already reporting the net figure. That subtracts the same fees twice. Now your income really is understated, and you're no longer just explaining a mismatch.

Mistake two: reporting the 1099-K and stopping there. You see the official form, assume it must be the right answer, and enter it as income. Then you forget that the fees and refunds inside that figure were never yours to keep. You end up paying income tax and self-employment tax on money that went back to customers or to Stripe. Nobody sends a letter about this one. The IRS has no reason to complain when you overpay, so the mistake just repeats quietly year after year.

One mistake gets you a notice. The other costs money you never notice. You don't fix either by picking the "right" number. You fix them by showing how the two numbers connect.

The three-line bridge

The fix is a small reconciliation that accountants would recognize right away. Start with gross and walk down to what you actually earned:

  1. Gross receipts: total charges, which should match or explain any 1099-K. This goes on Schedule C, line 1.
  2. Minus refunds and returns: money you sent back to customers. Schedule C has a line for this, line 2, "returns and allowances."
  3. Minus processing fees: Stripe's cut, deducted as a business expense.

Here's a hypothetical. Say your customers were charged $60,000 this year. You refunded $2,400, and Stripe kept $1,900 in fees. Your payouts add up to $55,700.

If you report $55,700 as gross receipts, you're $4,300 below the 1099-K, and the IRS's matching program will see that before you do. If you report $60,000 and stop, you pay tax on $4,300 you never kept. If you report $60,000, subtract $2,400 in returns, and deduct $1,900 in fees, your income matches what the IRS received, and your profit matches what you actually earned. Same year and same money, but now it holds together.

The bridge also explains the 1099-K to anyone who asks. Your gross receipts line ties to the form, and the next two lines explain where the rest went.

The December problem

One more wrinkle trips people up: timing. Payouts lag behind charges, usually by a couple of business days and sometimes more. A client who pays you on December 30 might not show up in your bank until early January.

For tax purposes, that money generally belongs to the year your customer paid and it became available in your Stripe balance, not the year it reached your bank. If you work only from bank deposits, late-December charges can slide into the wrong year. Then this year's numbers come up short and next year's come up long, and neither one matches the 1099-K for its year. It's a small gap, but it's exactly the kind of small gap that sets off an automated mismatch.

There's a smaller trap on the bank side too. If you move money between your own accounts, say from a business account to personal savings, those transfers can look like income when you skim a statement. They aren't. The bridge works because it starts from Stripe's gross records, not from whatever happened to show up in your bank.

Your next moves

  • Pull your gross volume today. In your Stripe Dashboard, open Reports and find your balance summary for the year so far. Write down three numbers: total charges, total refunds, total fees. That takes about ten minutes, and you've got the raw material for the bridge.
  • Write the bridge on one page. Gross, minus refunds, minus fees, equals your real revenue. Then compare it with your total bank deposits from Stripe. If the two don't come close, find out why before January.
  • Flag the year-end gap now. Put a reminder on your calendar for January 2 to list every charge from the last week of December and its payout date. Those are the transactions most likely to land in the wrong year.
  • Recalculate your next estimated payment from profit, not deposits. If you've been sizing quarterly payments from your bank balance, rerun the math from the bridge. Depending on which mistake you were making, you may be paying too much or too little.
  • Check the 1099-K against your gross line when it arrives. These forms usually show up by early February. If Stripe's number doesn't match your gross receipts, figure out why while the year is still fresh in your mind, not when a letter shows up.

Where Payday fits

The hard part of all this isn't the math, which is just subtraction. The hard part is that the right numbers sit in a place you never look, while the wrong ones land in your bank every week. Payday connects to Stripe and your bank and works from gross charges, refunds, and fees rather than deposits. It uses that to calculate your Q1 through Q4 estimated payments, nudges you before each deadline, and exports a TurboTax-ready file whose income should line up with what the IRS already has. If you'd rather not rebuild the bridge by hand every quarter, you can see how it works at payday.lumenlabs.works.