A spreadsheet you can update in 30 seconds is more useful than a one-time calculation that gets stale the moment your situation changes. Building one that compares a salary offer against your freelance income takes about an hour and saves the embarrassment of accepting an offer that pays you less than you thought, or turning down an offer that actually pays more.
This walkthrough covers the structure of a comparison spreadsheet, which inputs matter, which formulas to use, and where to find authoritative numbers for the assumptions you do not measure yourself.

Photo by Tima Miroshnichenko on Pexels
Step 1: Set Up the Two Columns
Open a new spreadsheet (Google Sheets, Excel, or any spreadsheet tool of your choice) and create three columns:
- Column A: Line item label
- Column B: Salary scenario
- Column C: Freelance scenario
The goal is to land at a single comparable number at the bottom of columns B and C, so you can see the two scenarios on equal terms.
Step 2: Set the Headline Inputs
Top of the sheet gets the headline figures you are comparing:
A1: Headline annual figure
B1: 120000 (the salary offer)
C1: =D1*E1 (hourly rate times billable hours)
A2: Hourly rate (freelance only)
C2: 95
A3: Realistic billable hours per year
C3: 1400
A4: Hours per week actually worked (salary)
B4: 47
A5: Working weeks per year (both)
B5: 50
C5: 50
A6: Total working hours
B6: =B4*B5
C6: =C4_unfilled (will fill from utilization assumption)
The realistic billable hours number is the most important assumption on the freelance side. The Bureau of Labor Statistics tracks aggregate self-employed worker data, but no public dataset breaks down "typical billable hours per year for a solo developer" because the answer varies by industry, project mix, and personal sales pipeline. The reliable way to get the number for your situation is to track a representative month and extrapolate.
Most full-time solo freelancers land somewhere between 1,300 and 1,500 billable hours per year. If you have never measured it, start with 1,400 as a default and refine after a month of tracking.
Step 3: Add Employer-Paid and Self-Employed Tax Adjustments
Below the headline section, add a tax adjustment block:
A8: Employer-paid payroll tax (salary side)
B8: =B1*0.0765
C8: 0 (freelance side pays both halves, handled separately)
A9: Self-employment tax (freelance side)
B9: 0
C9: =C1*0.9235*0.153
A10: Subtotal after tax adjustments
B10: =B1+B8
C10: =C1-C9
The 7.65 percent number is the employer share of Social Security and Medicare. The 15.3 percent self-employment tax rate applies to 92.35 percent of net earnings, per IRS Publication 334 and the official self-employment tax computation. The Social Security Administration's contribution and benefit base page lists the current Social Security wage cap, which matters if your income exceeds it (the Social Security portion of the 15.3 percent stops at the cap; the Medicare portion continues).
Step 4: Add the Benefits Stack
Below the tax adjustments, add a benefits block that breaks out the major components individually rather than collapsing them into a single number. This is the part of the comparison freelancers most reliably underestimate.
A12: Employer health insurance contribution
B12: 7000 (single coverage typical; 18000 for family)
C12: 0
A13: Self-funded health insurance (freelance)
B13: 0
C13: -10000 (negative because it comes out of freelance income)
A14: Retirement match (salary side)
B14: =B1*0.04 (4 percent match assumed)
C14: 0
A15: Paid time off value (salary side)
B15: =(B1/B6)*28*B4/5 (28 days at the daily rate)
C15: 0
A16: Disability and life insurance value (salary side)
B16: 800
C16: 0
A17: Total benefits value
B17: =SUM(B12:B16)
C17: =SUM(C12:C16)
For the health insurance number, the Healthcare.gov marketplace shows current premiums for individual plans in your state and metal tier. For benefits values on the salary side, the Kaiser Family Foundation's annual Employer Health Benefits Survey is the standard reference for average employer contributions; their published reports show the breakdown by single versus family coverage and by industry.
Step 5: Add Business Expense Headroom (Freelance Only)
Freelancers can deduct legitimate business expenses from gross income before income tax is computed. The Small Business Administration maintains guidance pages on what qualifies. Add this as a partial offset to the freelance side:
A19: Business expenses (freelance, partially offsetting)
C19: -10000 (actual cash out the door)
A20: Tax savings from business expense deductions
C20: =-C19*0.30 (assumed 30 percent combined marginal rate)
A21: Net effect of business expenses
C21: =C19+C20
The 30 percent marginal rate combines federal income tax, state income tax (where applicable), and the deductible half of self-employment tax. Adjust to your actual situation.
Step 6: Compute the Comparable Net Figure
Below the adjustments, compute the bottom-line comparable figure:
A23: Total comparable value
B23: =B10+B17+B19
C23: =C10+C17+C21
A24: Hours worked per year
B24: =B4*B5
C24: =1950 (45 working hours x 43 weeks of actual work, after sick and gap time)
A25: Real hourly value
B25: =B23/B24
C25: =C23/C24
The B23 figure captures the salary side's total value: salary + employer payroll tax + benefits.
The C23 figure captures the freelance side's total value: gross revenue - self-employment tax - health insurance + business expense net.
B25 and C25 are the two numbers that mean the same thing on the same scale: total dollars received per total hour worked. This is the actual apples-to-apples comparison.
Step 7: Add a Scenario Toggle
Once the basic spreadsheet works, add a row at the top that lets you compare different versions of the same offer or different freelance assumptions. Most spreadsheet tools have a way to either run scenario columns side-by-side or use a data table. Either approach works.
Useful scenarios to model:
- Salary offer at 120K vs your current freelance rate at current billable utilization
- Salary offer with family health coverage vs freelance with self-funded family coverage
- Salary offer requiring 50 hours per week vs salary offer requiring 42 hours per week, same dollar figure
- Freelance rate at 95 dollars per hour at 1,300 billable hours vs the same rate at 1,500 billable hours
- Salary plus equity grant vs salary alone (this gets complex; consult a financial advisor for equity valuation)
Common Mistakes the Spreadsheet Catches
Building this spreadsheet exposes several common reasoning errors that mental calculations gloss over:
- Assuming 2,080 billable hours. Salary calculators use this number, but no working freelancer hits it. Be honest about your actual measured utilization.
- Ignoring health insurance entirely. This is the single largest line item most people miss, and it can swing the comparison by 8,000 to 25,000 dollars depending on family situation.
- Treating the salary as a 40-hour role when the job actually requires 47. A 100K salary at 47 hours a week is a different deal than a 100K salary at 40 hours a week.
- Forgetting business expense headroom on the freelance side. Legitimate deductions are a real component of the freelance economic picture.
- Not pricing schedule and risk preferences explicitly. The spreadsheet can capture dollars but not preferences. Add a manual adjustment row at the bottom for "how much do I value the trade-off in either direction" and be honest about it.
The output of the spreadsheet is not a single right answer. It is a quantitative starting point for a decision that should also incorporate things that do not fit in cells.

Photo by www.kaboompics.com on Pexels
A Pre-Built Tool for the Quick Pass
The Salary & Hourly Converter at https://evvytools.com handles the basic bidirectional conversion and side-by-side comparison without requiring you to build the spreadsheet from scratch. Use it as a quick first pass to see whether an offer is worth modeling in detail before building out the full adjusted scenarios.
For the full breakdown of every adjustment that belongs in a real comparison, the longer guide How to Honestly Compare a Salary Offer to a Freelance Hourly Rate explains the rationale behind each line in the spreadsheet structure above.
The point of building the spreadsheet at all is to make these decisions repeatable. Every six months, every job offer, every rate change becomes a 30-second update to known inputs rather than an hour of starting from scratch. The structure is the part that lasts.
Top comments (0)