The same invoice needs a different set-aside in January and December
Setaside computes what to move for taxes the moment you invoice, bracket-aware and stacked on your year-to-date income, so the percentage moves as the year fills up. No account, no bank link, nothing leaves your device.
A $3,600 invoice does not carry the same tax bill in January that it does in December. In January it might be the first dollars you earn all year, taxed at the bottom of your bracket. By December it stacks on top of everything else, taxed at whatever margin you have climbed to by then. Same invoice, different number to set aside, and the flat "put away 30%" rule that every freelancer repeats is blind to the difference. It is wrong in January and wrong in December, just in opposite directions.
Setaside is a free calculator for the one number a 1099 contractor actually needs: type an invoice amount and it shows the dollars to move to a savings account, right now, no submit button and no loading state. Nobody withholds taxes for you when you get paid gross, so the choice is either guess a flat rate or wait until the quarterly deadline and scramble. The tools that do better than a rule of thumb want you to link a bank account and buy a bookkeeping subscription. This one wants an invoice amount.
Why a flat percentage can't be right
Two things move the real number, and a single percentage can represent neither.
The first is self-employment tax. It is 15.3% on 92.35% of your net earnings, but that 15.3% is two taxes wearing one label. The Social Security half, 12.4%, stops at the annual wage base; above it, that portion is simply gone. The Medicare half, 2.9%, is uncapped, plus an extra 0.9% surtax once you cross the statutory threshold. So the self-employment rate on an invoice is not constant across the year. For someone who clears the wage base in the fall, a November invoice carries meaningfully less SE tax than the identical invoice in March, because the Social Security piece has already maxed out.
The second is that federal income tax is marginal. The rate on the next dollar depends on every dollar before it. To tax this invoice correctly you have to know where the year already sits, then stack the invoice on top and find the brackets the new dollars actually fall into, not the top bracket, not an averaged guess. Setaside keeps your year-to-date taxable income and does exactly that stacking on every keystroke. That is why the percentage it shows creeps upward as the year fills: income tax is pushing you into higher brackets even as SE tax may be falling off. A flat rule averages over the whole curve and lands nowhere on it.
Put both together and the number stops being tidy. The screenshot in the repo shows a $3,600 invoice resolving to $1,244.71 to set aside, roughly 34.6%, comfortably above the 30% most people would have guessed and under-saved against.
Nothing leaves the browser
The whole calculation is a pure function, taxCalc.ts, with property tests thrown at it via
fast-check on top of the worked examples. Everything it needs, filing status, year-to-date
taxable income, your invoice history, lives in the browser's localStorage. There is no
account, no server, and no bank connection, so nothing you type ever leaves the device. That
is not a corner cut to ship faster; it is the point. A tool that touches your income has a
trust problem the moment it phones home, and the cheapest way to have nothing to breach is to
store nothing anywhere but your own machine. It also means the thing costs nothing to run and
installs as a PWA that works offline after the first load, with a Capacitor wrapper for a real
iOS build off the same code.
The tracker and the calculator are free and stay free. The only paid piece is a one-time export unlock for people who want to hand a clean CSV and a printable quarterly worksheet to an accountant, which is a convenience for someone already sold, not a gate on the part that earns the trust.
Try it
Open Setaside, set your filing status and year-to-date income once, then type an invoice amount and watch the set-aside figure resolve as you type. Record a few invoices and watch the running "saved so far" total and the per-invoice history build up. Then bump the year-to-date income and type the same invoice again to see the percentage move. The calculator and its tests are on GitHub.
This post is part of the build log: every app my automated factory ships gets written up here, honestly. Browse everything at apps.charliekrug.com. Comments are open below.
Loading comments…