How We Calculate Salary Data
CareerOS publishes salary estimates for 21 roles across 20 US states and 50+ cities. This page explains exactly how those numbers are derived, what assumptions we make, and where our data has limitations.
Primary Data Sources
All salary figures on CareerOS are derived from three primary sources, triangulated to produce a range estimate:
1. U.S. Bureau of Labor Statistics (BLS) Occupational Employment and Wage Statistics
The BLS publishes annual occupational wage data collected from surveys of approximately 1.1 million business establishments. This is the most comprehensive and methodologically rigorous salary dataset in the US. We use BLS data as our baseline anchor for each role.
2. Self-Reported Compensation Data (LinkedIn Salary, Glassdoor)
LinkedIn and Glassdoor aggregate self-reported salary information from professionals. While subject to self-selection bias (higher earners are more likely to report), these datasets provide valuable signal on current market rates, especially for tech roles where BLS data may lag by 12–18 months.
3. Job Posting Salary Disclosure
Since 2023, salary transparency laws in California, New York, Colorado, and Washington require employers to disclose salary ranges in job postings. We analyze this posting data to validate our estimates and identify market movements that BLS and self-report data may miss.
For technology roles specifically, we additionally reference Levels.fyi, which aggregates verified compensation packages (including base salary, equity, and bonus) from tech workers at named companies.
The Calculation Formula
CareerOS produces salary estimates using two core formulas:
State-Level Salary = National Median × State Adjustment Factor
Each state's adjustment factor is calculated from:
- BLS area wage estimates for the state
- Cost of labor index relative to national median
- LinkedIn and Glassdoor self-reported averages for that state
City-Level Salary = State Median × City Premium/Discount
City multipliers are derived from:
- BLS Metropolitan Statistical Area (MSA) wage data
- Glassdoor city-level salary data
- Cost of living index for each city (using Council for Community and Economic Research C2ER data)
All figures are updated quarterly. When significant market shifts occur (major tech layoffs, hiring surges), we update ahead of schedule.
Percentile Definitions
CareerOS reports three salary figures for each role:
Entry Level (0–2 years experience): The 25th–35th percentile of all reported compensation for the role, filtered for workers with 0–2 years of experience. This represents what most new graduates and career changers can realistically expect.
Median: The 50th percentile of all reported compensation for the role across all experience levels. Half of workers earn more, half earn less.
Senior Level (8+ years experience): The 70th–80th percentile of compensation for workers with 8+ years of experience in the role. This is not the maximum — it represents what strong, experienced professionals typically earn.
Important: All figures represent base salary only. Equity (stock options or RSUs), annual performance bonuses, and non-cash benefits are excluded. For technology roles at large companies, total compensation can be 30–100% above base salary.
Take-Home Pay Calculation
CareerOS estimates after-tax take-home pay using the following approach:
Federal Income Tax: Calculated using 2026 IRS tax brackets for the specified filing status (Single or Married Filing Jointly). We apply the standard deduction. The calculation uses progressive brackets, not a flat rate.
FICA (Social Security + Medicare):
- Social Security: 6.2% on wages up to $168,600
- Medicare: 1.45% on all wages
- Additional Medicare Tax: 0.9% on wages above $200,000 (single filers)
State Income Tax: We apply each state's effective tax rate. Note that most states use progressive brackets; we use a simplified flat effective rate for estimation purposes. For accurate state tax calculations, use your state's official tax website.
What we exclude: Local/city income taxes (NYC, San Francisco, and other cities levy additional taxes), Alternative Minimum Tax (AMT), tax credits, and pre-tax benefit deductions beyond standard deduction. Our estimates will be higher than actual take-home for workers with significant tax credits or in cities with local income taxes.
City-Level Accuracy
City-level salary estimates carry additional uncertainty relative to state-level data and should be treated as directional rather than precise.
Methodology: City salaries are estimated by applying a city premium/discount multiplier to the state median. These multipliers are derived from BLS MSA data, Glassdoor city-level data, and cost-of-living indices.
Sources of inaccuracy:
- Smaller cities have less salary data, so estimates have wider confidence intervals
- Company concentration effects: a city dominated by one employer (e.g., Bellevue/Microsoft) may have systematically different patterns than the city multiplier captures
- Remote work policies have blurred city-level salary patterns since 2021
For major metros (San Francisco, New York City, Seattle, Boston), city estimates are based on robust multi-source data and are reasonably accurate. For smaller cities, treat estimates as rough approximations.
Update Schedule & Data Freshness
Quarterly review: Salary data is reviewed every three months. When BLS publishes updated occupational wage statistics (typically May and November), we update all base figures.
Triggered updates: When significant market events occur — major tech layoffs, hiring surges, economic shifts — we review and update affected roles and regions ahead of the quarterly schedule.
Date display: Each page shows a "Last Updated" date reflecting when the data was last reviewed. If this date is more than 6 months ago, treat the figures as approximate pending our next update cycle.
Market lag: BLS data typically lags the market by 12–18 months because it reflects employment from the prior survey period. For fast-moving tech markets, our self-report and posting data supplements this lag, but our figures may still understate or overstate very recent market movements.
Known Limitations
We believe strongly in data transparency. Here is what our salary data cannot tell you:
1. Your specific negotiating position: Salary depends on your exact skills, company, interview performance, competing offers, and negotiating ability. Market data gives you a benchmark, not a guarantee.
2. Total compensation: Base salary at FAANG companies often represents 40–60% of total compensation. Equity can dramatically change the picture. Always evaluate total comp, not just base.
3. Internal compensation bands: Different companies pay very differently even for the same city and role. Google may pay 40% more than a typical software employer for the same role. Our figures represent market averages.
4. Recency for very hot or cold markets: If tech hiring just surged or contracted significantly, our data may not yet reflect the shift. Check Levels.fyi for the most current senior-level tech compensation.
5. Negotiated outcomes: The salary you negotiate can differ significantly from market median. Use our negotiation guides to understand how to approach this conversation.
Questions About Our Data?
If you believe our salary estimates are inaccurate for a specific role or location, or if you have questions about our methodology, we welcome feedback. We investigate all data quality reports.