Personal finance

What "Good" Comp Actually Looks Like: A 5-Question Framework

9 min read

The headline number on an offer letter is a sum, and sums hide their terms. Behind that one figure sits cash that’s guaranteed, cash that’s really a range, equity you can’t touch for years, benefits nobody bothers to price out, and a job that either sets up your next offer or doesn’t.

In The Real Difference Between Senior and Staff I argued that the thing that changes at staff isn’t the title, it’s the job: scope gets fuzzier, the artifacts you produce shift from code to leverage, and what your org is paying you for stops being “ships reliable features” and starts being closer to “make the org around you better at shipping.”

Here’s the part I didn’t get into there: your comp is supposed to change shape along with that job, not just get bigger. And most engineers evaluate offers like the job didn’t change at all. They collapse everything into one number and compare that number across offers, across levels, across companies. That’s the mistake the rest of this post is built to fix.

I’m not going to give you salary numbers by level. Sites built around scraped comp data do that better than a blog post ever could, and chasing that number encourages exactly the wrong habit: treating comp as a single scalar you’re trying to maximize instead of a set of components you’re trying to balance. What I want to hand you instead is a framework for reading the shape of an offer, so you can tell a good one from a mediocre one even when you have no idea what “market” is for your specific level, location, and company tier.

Comp isn’t a number, it’s a portfolio

Every offer you’ll get is some mix of:

  1. Base salary: the part that’s guaranteed, cash, and stable regardless of company or personal performance.
  2. Bonus: cash that’s contingent on company and/or individual performance, paid on some cadence (usually annual).
  3. Equity: ownership or a claim on ownership, vesting over time, with a value that moves with the company’s fortunes and isn’t yours until it vests.
  4. Benefits: 401(k) match, health coverage, HSA eligibility, PTO policy, parental leave, and the dozen other line items that don’t show up in the headline number but are real economic value.
  5. Growth trajectory: not comp at all, technically, but it belongs in this list because it’s the biggest determinant of your comp two and five years from now: scope, mentorship, the caliber of problems you’ll get reps on, and how much this role sets up the next offer.

A “good” offer isn’t the one where the sum of 1–4 is biggest. It’s the one where the mix of all five fits where you are: your risk tolerance, your life stage, your runway, and what you actually need this job to do for you next. Two offers can have the same total-comp number and be wildly different offers once you look at the shape underneath it.

You already do this at work. Nobody picks a database off a single benchmark number without asking what got traded away to produce it: what the write path costs, what happens at p99, what workload the number was measured on. An offer letter is a benchmark result. It deserves the same suspicion.

Why the shape should change as you level up

Go back to the senior-vs-staff framing for a second. Early in your career, you want an offer that’s mostly base. You have limited savings, probably no home equity, and not much appetite for variance. A bonus that could land anywhere from 80% to 120% of target doesn’t feel like upside when you’re also trying to build an emergency fund; it feels like risk you can’t afford yet. Base-heavy, benefits-solid, low-variance is correct comp shape for that stage, even if it looks unambitious next to a startup’s equity-heavy pitch.

As you move up, and especially as you cross into staff/principal territory, three things tend to happen to the shape. Each one is worth evaluating on its own terms instead of nodding along because “that’s just how it works at that level”:

  • The guaranteed floor should still be strong. Variable comp increasing is fine. Variable comp increasing at the expense of a comfortable base is not a promotion, it’s a bet you’re being asked to underwrite. Watch for offers where “total comp went up” is doing a lot of work to obscure “your guaranteed cash didn’t.”
  • Equity becomes a bigger share, and its risk profile matters more than its face value. A number quoted “at grant” is a projection, not a promise: the eventual value depends on what happens to the company between now and each vesting date, and on the vesting schedule itself (cliff structure, refresh cadence, front- vs. back-loading). None of that is company-specific minutiae you need a specialist for. It’s the arithmetic you’d run on any other multi-year, uncertain cash flow, and this one happens to have your name on it.
  • Growth trajectory starts mattering more than this year’s number. At senior-and-below, the job is legible enough that “good comp” and “good role” are close to the same question. At staff+, they diverge: a role that pays slightly less but puts you in front of harder problems, better mentors, or more organizational leverage can be the better financial decision on a five-year view, because it’s what determines your next offer’s shape, not just this one’s.

A framework for reading any offer’s shape

When you’re actually staring at an offer letter (or comparing two), run it through these five questions in order. They’re deliberately sequenced: each one assumes you’ve already answered the one before it.

1. What’s my cash floor, and can I live the life I want on it alone?

Add up base plus any guaranteed portion of bonus: the part that isn’t contingent on hitting a number. If equity and variable bonus went to zero tomorrow, is this a fine job to have? If the honest answer is no, the rest of the offer is compensating you for risk you may not want to be taking.

2. How much of the total is contingent, and what’s the real range of outcomes?

For bonus: what’s the actual historical payout range, not the target number in the offer letter? Ask the recruiter or a future teammate directly. It’s a completely normal question, and how readily it gets answered is information too. For equity: what’s the plausible range of outcomes for this specific company at this specific stage, and what does the vesting schedule mean for when you’d actually see any of it? Don’t average all this into a single expected value and call it done. Two packages can carry the same expected value on completely different spreads, and you don’t get to experience an average. You get one outcome, and you have to be able to absorb the bad version of it.

3. What’s the actual timeline to value?

A number you can’t touch for four years is worth less than the same number today. Check the actual shape of that timeline rather than assuming one. Startup stock options still mostly follow the classic four-year-vest, one-year-cliff structure. Per Carta’s cap-table data, that’s the standard grant at VC-backed companies, and it’s the default every cap-table tool assumes unless you tell it otherwise. Public-company RSUs are a different story: Meta vests in even quarterly chunks with no cliff at all, Apple in even semi-annual ones, Google front-loads more into years one and two, and Amazon back-loads most of the grant into years three and four. Two offers can quote the same four-year equity number and put very different amounts of it in your hands by the end of year two. If you’re comparing offers with different vesting cadences, treat the two equity grants as separate assets with different liquidity. That gap belongs in the decision.

4. What’s the non-cash value actually worth?

401(k) match, HSA eligibility, health plan quality, PTO policy, parental leave: price these out in real dollars rather than treating them as a footnote. Fidelity’s Q1 2026 retirement data puts the average employer 401(k) contribution at around 4.8% of pay, and the most common match formula (dollar-for-dollar on the first 3% you contribute, then fifty cents on the dollar for the next 2%) is worth real money at senior-engineer income: on a $180k–$250k base, maxing that formula alone is roughly $7,200 to $10,000 a year that never shows up in the “comp” line of the offer. A mediocre health plan can quietly cost you the equivalent of a meaningful raise in the other direction.

5. Does this role’s trajectory make my next offer better or just my current paycheck bigger?

This is the one people skip, because it’s the hardest to quantify. It’s also the only one of the five that compounds, which on a site with this name is not a coincidence. So once your cash floor (question 1) is covered, give it more weight than anything else here. A role with a slightly lower number but real scope, a strong manager, and visible impact sets up a better negotiating position next time. A role that’s purely a pay bump leaves you in the same spot two years from now, making the same case for a slightly bigger number.

Using this when you’re comparing two offers

The framework earns its keep when two offers look close on total comp but different underneath. Walk both through all five questions side by side. You’ll often find the “bigger number” offer has a weaker floor, wider variance, a longer timeline to value, thinner benefits, or a flatter trajectory than the smaller-looking one. Once you can name which of those five dimensions is actually different, “which offer is better” stops being a gut call and becomes a decision you can defend, including to yourself a year from now, when you’re the one asking whether you got it right.

Worth saying plainly: there’s no universally correct shape. A base-heavy, low-variance offer is the right call for someone six months from a home down payment. A trajectory-heavy offer with a lower floor can be the right call for someone with a fully funded emergency fund and real risk appetite. The framework won’t pick an offer for you. It shows you what you’re actually choosing between, which is the part most people skip.

Here’s where that gets hard in practice. Questions 2 and 3 aren’t really gut-check questions, they’re spreadsheet questions. Weighting a bonus range against its downside case. Discounting a four-year vest with a cliff in it, plus a refresh grant you’re not sure how to value. Then doing all of it a second time, on a different vesting cadence, so the two offers are actually comparable. All of that is arithmetic on somebody else’s clock: there’s a decision date on the calendar and a recruiter checking in about it.

This is the part of the framework I’d rather not work out by hand, and it’s the one place a real spreadsheet earns its keep over a mental estimate. Build the vesting schedule out year by year for both offers, on the same timeline, before you compare anything. That’s the difference between an answer you can defend on all five dimensions above and one you eyeballed at 11pm the night before the deadline.

The takeaway

Stop asking “is this a good number?” Ask what the number is made of, how much of it is guaranteed versus contingent, when you’ll actually see it, what it’s not counting, and where it points. That’s the same rigor you’d bring to a mortgage, where nobody signs on the monthly payment alone. Comp rarely gets it, because the headline number is so easy to compare and so tempting to stop at.

Reading that shape is also what makes the bigger decisions legible later: timing a home purchase around a vesting cliff, or working out whether an outside offer is actually a raise. Both start here, with knowing what you’re actually being paid.