Engineering Salary Bands: A CTO Guide to Building Pay Scales That Hire and Retain
Engineering salary bands: a CTO guide to building pay scales that hire and retain

Engineering salary bands: a CTO guide to building pay scales that hire and retain
Levels.fyi’s 2025 report puts median US total comp at $312K for Senior Engineer and $457K for Staff Engineer, with Staff up 7.52% YoY and Senior up 4.2%. Candidates see those numbers and they anchor hard, even if you’re a startup that can’t touch Big Tech cash.
Your job isn’t to win every offer. Your job is to set engineering salary bands that match your plan, protect pay equity, and still work when you go from 10 to 100 engineers without turning comp into a weekly fire drill.
This guide explains how to use The Art of CTO Salary Band Calculator to build engineering pay scales that hold up across levels, locations, and company stage.
Engineering salary bands: what they are and what the Salary Band Calculator does
Salary bands are pay guardrails. For each role and level, they set a minimum, midpoint, and maximum. They also force you to be explicit about location and equity, which is where most teams get sloppy.
The Salary Band Calculator on The Art of CTO helps teams create compensation bands for engineering roles across levels. It accounts for location, company stage, and market percentile targets. That matters because a Series A company hiring a Senior Backend Engineer in Austin needs a different plan than a Series B company hiring a Staff Engineer in San Jose.
Here’s the failure mode I see over and over. Teams hire fast, do a bunch of one-off offers, and then discover pay compression. After that, promotions stop being about scope and start being pay repairs.
The calculator works best when you feed it three inputs you can defend in a room with your CEO, CFO, and Head of People:
- Market percentile target: where you want to sit, like P50 or P75.
- Location policy: location based, location grouped, or location agnostic.
- Company stage mix: your cash vs equity posture for Series A vs Series B.
End state: bands per level you can use for offers, promotions, and refresh cycles without reinventing the rules each time.
How to set engineering salary bands (the method that scales past 50 engineers)
Band work dies when it starts as a spreadsheet exercise. It works when you start with a pay philosophy you can repeat, and a level framework that doesn’t change depending on who’s asking.
Start with a compensation philosophy you can repeat
Pick a target. Write it down. “We pay P65 for cash in our top two hiring markets” beats “we pay competitively” every day of the week.
Ravio gives a concrete example of a company targeting the 75th percentile for Software Engineers to attract and retain talent, then setting midpoints from benchmark data for each level and location group Ravio’s salary band structure guide.
For Series A and early Series B, a common pattern looks like this:
- Series A (10 to 40 engineers): cash at P50 to P65, equity heavier for senior hires.
- Early Series B (40 to 100 engineers): cash moves toward P60 to P75 for key roles, equity still meaningful but less of a band-aid.
This isn’t about being cheap. It’s about being consistent, so managers aren’t making up comp strategy one candidate at a time.
Map roles into job families and levels
Bands only work if levels mean the same thing across teams. Comprehensive.io calls out a practical step: group similar jobs into families, then define grades and levels, then set ranges per grade Comprehensive.io salary ranges guide.
For engineering, keep it boring:
- Job family: Software Engineering, Data Engineering, Security Engineering, Product Design.
- Level: L3, L4, L5, L6, or Engineer, Senior, Staff, Principal.
If your level framework is fuzzy, fix that first. Otherwise every band meeting turns into an argument about what “Staff” means.
Internal link: pair this work with our guide to career ladders for engineers (The Art of CTO) so level definitions match promotion decisions.
Set midpoints, then choose a spread that matches your promotion model
A midpoint is the “fully performing” target for that level. The spread is the room you give people to grow without forcing a title change every time you want to reward them.
A simple rule that works for early stage teams:
- Junior and mid levels: 15% to 20% spread around midpoint.
- Senior and Staff: 20% to 30% spread around midpoint.
Why wider at the top? Scope and impact vary more, and you need room for retention moves that don’t instantly turn into promotions.
Comprehensive.io describes this directly: set midpoints from benchmarking and your percentile target, then set range spreads around that midpoint Comprehensive.io salary ranges guide.
Decide your location model before you hire remote at scale
Location is where bands get political fast. It also hits burn in a very real way.
Coursera’s BLS based table shows big state differences in mean pay, like California $143,670 vs Texas $98,210 for IT roles, and metro differences like San Jose median $206,540 Coursera IT salary overview.
Pick one model and stick to it:
- Location based: pay by city or state. Best for cost control.
- Location grouped: 2 to 4 zones. Best for sanity.
- Location agnostic: one band. Best for simplicity, hardest on burn.
Ravio describes a clean grouped model: one Software Engineering band group for London and one for “UK all” to reflect market differences Ravio’s salary band structure guide.
Internal link: this ties into our post on remote team operating models (The Art of CTO), since pay policy and remote policy have to match.
Use a market based structure, not a step ladder
Step pay works in schools and civil service. In tech, it fights the market. Sage notes that market based pay fits companies competing for specialized talent across regions, and that early stage startups often begin with spot rates before formalizing structure Sage pay structures explained.
The goal is to move from spot rates to bands quickly, ideally before you hit 30 engineers. After that, the cleanup gets expensive.
Software engineer compensation calculator: how to use it for offers, promos, and pay equity
The calculator matters when it changes decisions. If it just produces a pretty table that nobody follows, you’ve built a prop.
A practical workflow for Series A and early Series B
Use this workflow each quarter, and during headcount planning.
- Step 1: Pick benchmark anchors. Use Levels.fyi for US tech comp direction, and your preferred paid survey for your segment. Levels.fyi’s 2025 report shows median US total comp by level, like $226K for Software Engineer and $312K for Senior Engineer Levels.fyi 2025 pay report.
- Step 2: Set your percentile target. Write it into your hiring plan. “P60 cash for L4, P65 for L5” is a real policy.
- Step 3: Choose location zones. Start with 3 zones max. Example: Bay Area, Major US metros, Rest of US.
- Step 4: Generate bands per level. Create min, midpoint, max for base salary and total comp.
- Step 5: Add equity guidelines. Equity isn’t a rounding error at Series A. Put ranges on it too.
Internal link: track the output in Command Center (/command-center) so bands, exceptions, and drift show up next to hiring plans and burn.
The Band Integrity Rule (link-worthy definition)
Here’s a definition worth sharing with your CEO and Head of People.
Band Integrity Rule: “A salary band is real only when 90% of offers and promotions land inside it, and every exception has a written reason.”
If exceptions become normal, bands become theater.
Offer math: a concrete example
Assume a Series B company targets P65 cash for Senior Engineers in Zone 2.
- Benchmark midpoint base: $190,000
- Spread: 20% below and 20% above
Band:
- Min: $152,000
- Mid: $190,000
- Max: $228,000
Offer guidance:
- New hire who meets bar: $180,000 to $200,000
- Stretch hire with rare skills: $205,000 to $228,000
- Candidate asking $250,000 base: treat as a mismatch, not a negotiation failure
What if they’ve got competing offers from a top paying public company? Don’t pretend you can out-cash them. Shift the mix inside policy with equity and sign-on, or pass.
Internal link: use our Build vs Buy Matrix (/tools/build-vs-buy-matrix) thinking for hiring too. Paying above band is “buying” speed. It comes with a cost and a maintenance bill.
Promotion math: stop using promotions to fix pay mistakes
Promotions should follow scope and impact. They shouldn’t follow “we underpaid you for 18 months.”
A clean promotion policy:
- Move to the new level’s band.
- Place the person between new min and new midpoint for a standard promotion.
- Use midpoint to max only for clear scope change.
This reduces compression and keeps managers from inventing titles to justify raises.
Internal link: pair this with our guide to engineering performance reviews that don’t break trust (The Art of CTO). Pay and performance have to line up.
Pay equity: the audit that catches problems early
Run a simple audit twice a year:
- Same level, same zone: compare base and total comp.
- Tenure vs pay: look for new hires above long tenured peers.
- Gender and underrepresented groups: check for gaps inside level.
Sage calls out the need to audit current pay and identify gaps and inconsistencies across roles and locations Sage pay structures explained.
If you find gaps, fix them with adjustments, not with quiet side deals.
Internal link: document the decisions with our Incident Postmortem tool (/tools/incident-postmortem). Treat pay incidents like reliability incidents. Capture root cause, not blame.
Tech salary benchmarks: what to trust, what to ignore, and how to update bands
Benchmark data is messy. It mixes base, bonus, and equity. It also mixes company stages, which is how people end up quoting a public-company comp package to justify a Series A offer.
Use multiple signals, not one dataset
A practical mix for startups:
- Levels.fyi for level based total comp direction and candidate expectations. In 2025, median total comp moved up modestly at lower levels, and faster at Staff, with Staff Engineer at $457K median US total comp Levels.fyi 2025 pay report.
- Your own accepted offers for your brand and role mix.
- Recruiter feedback for your exact market.
For entry level, don’t anchor on Big Tech totals. NACE projects $84,960 average base salary for computer science majors in the Class of 2025, and notes that nearly one quarter of surveyed employers plan to hire them NACE Winter 2025 Salary Survey summary.
That number is base only. It still helps set a floor for junior hiring outside top hubs.
Update cadence: annual reset, mid-year drift check
Bands shouldn’t sit untouched for two years. That’s how you get surprise attrition.
A cadence that works:
- Annual benchmark cycle: reset midpoints and spreads.
- Mid-year drift check: compare accepted offers to band midpoints.
Trigger a mid-year adjustment when:
- 30% of offers land above midpoint for a level.
- You lose 2 or more candidates in a quarter due to comp mismatch.
- Inflation or market movement shifts your hiring markets.
Internal link: track drift and exceptions in Engineering Metrics Dashboard (/tools/engineering-metrics-dashboard). It’s not a DORA metric, but it belongs next to hiring throughput and cycle time.
Don’t copy Big Tech pay scales into a startup
Big Tech comp includes refreshers, bonus targets, and liquid equity. A Series A company can match total comp on paper and still lose candidates when equity feels risky.
Treat total comp as a story:
- Cash is the part candidates trust.
- Equity is the part candidates debate.
- Bands must state both.
Developer salary ranges: a decision matrix for location, percentile, and equity mix
CTOs need a fast way to pick a policy that matches burn and hiring goals.
Here’s a decision matrix that teams can reuse in planning.
| Company reality | Percentile target | Location model | Equity posture | What breaks first |
|---|---|---|---|---|
| Series A, 12 month runway, hiring 8 engineers | P50 to P60 cash | Grouped zones | Higher equity ranges | Offer acceptance in top hubs |
| Series A, strong revenue, hiring 15 engineers | P60 to P70 cash | Grouped zones | Medium equity ranges | Pay compression if offers vary |
| Early Series B, scaling to 80 engineers | P65 to P75 cash for key roles | 3 zones max | Equity ranges by level | Manager exceptions and title inflation |
| Remote first, global hiring | P60 cash by region | Region based | Equity varies by country | Legal and payroll complexity |
This matrix forces the trade-offs into the open. It also gives Finance something they can price instead of arguing about anecdotes.
CTO recommendations: actions, policy, and architecture principles for compensation systems
Immediate actions (next 30 days)
- Write the pay philosophy. State percentile targets per level group and location model.
- Freeze ad hoc titles. Map every engineer to a level and job family.
- Run a compression scan. Find cases where new hires out-earn peers at same level.
- Set an exception process. Require a written reason and CFO or CEO approval.
Policy framework (next 60 to 90 days)
- Band ownership. Head of People owns bands, CTO owns level definitions.
- Offer rules. Define who can approve above midpoint and above max.
- Promotion rules. Define placement in new band and timing for off-cycle moves.
- Transparency stance. Decide what you share: bands, midpoints, or just ranges.
Sage and Rippling both describe the core mechanics of pay grades and bands, including defining min, midpoint, and max and mapping roles based on job evaluation Sage pay structures explained and Rippling pay structure examples.
Architecture principles (treat comp like a system)
- Single source of truth. Store bands, levels, and exceptions in one place.
- Versioned changes. Record band versions by date, like schema migrations.
- Audit trails. Keep reasons for exceptions and adjustments.
Internal link: model the system in ArchiMate Modeler (/tools/archimate) if your org already uses architecture docs. Pay systems touch HRIS, payroll, equity admin, and finance planning.
Bigger picture: compensation is a scaling problem, not an HR project
Comp is a market signal now. Candidates compare offers with screenshots and spreadsheets. Levels.fyi’s 2025 data shows that comp still moves at the senior end, even in uneven markets Levels.fyi 2025 pay report. Startups don’t get to ignore that. They need clearer bands and a clearer story.
Pay is also a leadership test. If your team tolerates secret deals, you teach the org that politics beats performance. If you run bands like a system, you build trust, even when cash is tight.
So here’s the question: when the next 20 hires land, will your pay system stay stable, or will it bend until it breaks?
Use the tool to generate bands, then lock them into policy before the next hiring sprint.
Sources
- Levels.fyi End of Year Pay Report 2025
- NACE Winter 2025 Salary Survey summary
- Coursera IT salary overview with BLS-based location data
- Sage: Pay structures explained
- Comprehensive.io: How to create salary ranges
- Ravio: Best practice salary band structure
- Rippling: Types of pay structure and how to choose