A lot of developers make the jump from full-time employment to freelancing or contracting by anchoring their new rate to their old salary, divided into an hourly number. It feels logical. It's also usually wrong, and the gap tends to be invisible until the first big tax bill lands.
The math that gets skipped
As a W-2 employee, your employer covers half of your Social Security and Medicare taxes without you ever seeing it happen. As a 1099 contractor or an owner of a single-member LLC taxed as a sole proprietor, that entire 15.3% self-employment tax is on you, on top of regular income tax. If your old salary was $120,000 and your new contract rate works out to the same annualized number, you have not replaced your income. You've taken a real cut, and it's a cut most developers don't calculate until they're already deep into the year.
Benefits are part of your old compensation, not extras
Health insurance, 401(k) matching, and paid time off were all part of what your employer was paying for, even though they didn't show up as a line on your paycheck. Once you're independent, all of that becomes your responsibility, in real dollars, not abstractions.
For developers with strong health benefits at their old job, this is often the single biggest number in the whole comparison. Checking real premium costs on the individual market before setting a rate saves a lot of pain three months into a contract when the first insurance bill arrives.
What actually offsets the gap
It's not all bad news. Self-employed developers can deduct legitimate business expenses: a home office, a portion of internet costs, hardware and software subscriptions used for client work, professional development, and conference attendance related to the business. Many also qualify for the Qualified Business Income deduction, which can shelter a meaningful share of income depending on total earnings.
The IRS's Self-Employed Individuals Tax Center is a solid starting point for understanding which deductions actually apply, since the details depend on your business structure and income level.
A rough way to check your rate before you commit
Before locking in a contract rate, it's worth running the comparison rather than eyeballing it. EvvyTools has a free 1099 vs W-2 calculator that factors in self-employment tax, income tax, the QBI deduction, and common deductions to show your real take-home pay side by side with an equivalent salary. It's the fastest way to see whether a rate offer actually holds up once the tax picture is accounted for.
Retirement contributions don't happen by default
A 401(k) with an employer match was doing two jobs at once: saving money and doing it automatically. As a contractor, nothing is automatic anymore. A SEP-IRA or Solo 401(k) can let you contribute a substantial share of net self-employment income, but only if you set it up and fund it deliberately, which is easy to deprioritize when you're heads-down on client work.
The tools you use for client work are deductible too
A lot of developers under-track their deductible expenses simply because the individual items feel small. A code editor license, a cloud IDE subscription, a portion of a home internet bill, a monitor or keyboard bought specifically for client work, and conference or course fees related to your stack all count. None of these single-handedly closes the tax gap, but together across a year they add up to a real reduction in taxable income, and tracking them properly from January instead of reconstructing them in April makes the deduction actually usable.
A simple habit that works well: a dedicated business checking account or card used only for client-related purchases. It turns "was this deductible?" into "did I buy it with the business card?", which is a much easier question to answer at tax time.
Unemployment insurance doesn't exist for you anymore
This is one of the quieter risks of the W-2-to-1099 transition. If a W-2 job ends unexpectedly, most states provide unemployment benefits as a bridge. If a client ends a contract, there's generally no equivalent safety net, since 1099 income doesn't pay into unemployment insurance in most states. This is part of why an emergency fund matters even more for contractors than for salaried employees, and it's a real financial input, not just a vague "be careful" warning.
Building three to six months of expenses into a separate reserve before you fully commit to contracting, rather than after your first slow month, is the practical version of accounting for this risk.
What changes if you incorporate
Some developers eventually form an LLC or elect S-corp tax treatment once income reaches a certain level, which can reduce the self-employment tax burden on part of the income by splitting it between salary and distributions. This isn't a decision to make lightly or without a tax professional, since it adds payroll requirements and compliance overhead that a straightforward sole proprietorship doesn't have, but it's worth knowing this lever exists once your contracting income becomes substantial and consistent.
Multi-client risk deserves a premium too
Contract income is inherently less predictable than a salary. A client can end an engagement with far less notice than a typical employer would give, and a slow month with one client doesn't pause your mortgage payment. Many experienced contractors price in a premium above the strict tax-and-benefits break-even specifically to account for this volatility, and that's a reasonable call, not padding.
Renegotiating mid-contract is harder than pricing right the first time
Once a rate is agreed to, asking a client to increase it mid-engagement is a much harder conversation than negotiating the right number before you start. Clients budget around the rate they agreed to, and a request to raise it, even a well-justified one, can strain a relationship in a way that a slightly higher initial ask never would. This is one more reason it's worth spending real time on the rate calculation up front rather than accepting a number that felt roughly right and hoping it holds up.
Write your assumptions down somewhere
Once you land on a rate, jot down the reasoning behind it: the health insurance estimate you used, your target retirement contribution, and the risk premium you added. When you revisit your rate in six or twelve months, or when a client questions it, having the original logic on hand is far more useful than trying to remember how you got there.
A note on hourly versus project-based pricing
Everything above translates cleanly to hourly rates, but if you price by project instead, the same tax-and-benefits gap still applies, it just gets baked into your project quote rather than an hourly number. Estimate your hours honestly, apply your calculated break-even hourly rate to that estimate, then add your risk premium on top, the same way you would for hourly work. Project pricing doesn't exempt you from the underlying math, it just moves where the calculation happens.
Bottom line
If you're pricing a contract rate by just matching your old salary, you're very likely underpricing yourself. Run the actual numbers, account for the tax and benefits gap, and price in the risk premium that comes with variable income. There's more detail on the full comparison, including the state tax angle, in this breakdown.
Top comments (0)