Compare offers side by side
Compare offers over several years, not just year one.
- Compare offers year by year and over four years.
- Account for different vesting schedules.
- Weigh non-financial factors.
When offers differ in shape - one with a higher base, another with more equity or a large signing bonus, one vesting evenly and another back-loaded - comparing a single year misleads you. Lay the offers out year by year, then weigh what the numbers do not show.
A fair comparison
- Year by year: base + bonus + equity vesting that year + one-time payments that year.
- Four-year total: the sum across the vesting period, before refreshers.
- Risk-adjust equity: public RSUs are close to cash; private options deserve a discount.
- Non-financial factors: the team and manager, growth and learning, level and title, stability, remote policy, commute, and the work itself.
1offers = {
2 "Even": (160_000, 200_000, [25, 25, 25, 25], 0),
3 "Back-loaded": (150_000, 240_000, [5, 15, 40, 40], 30_000),
4}
5for name, (base, grant, schedule, signing) in offers.items():
6 year1 = base + grant * schedule[0] // 100 + signing
7 total = 4 * base + grant + signing
8 print(f"{name}: year 1 = {year1:,}, 4-year total = {total:,}")Even: year 1 = 210,000, 4-year total = 840,000 Back-loaded: year 1 = 192,000, 4-year total = 870,000
The back-loaded offer pays less in year one but more over four years - if you stay four years. If you might leave after two, the even schedule wins. Your plans change which offer is better, which is why the year-by-year view matters. It is also a negotiating point: ask for a larger signing bonus to smooth a back-loaded first year.
Key takeaways
Compare year by year and over the full vesting period.
Vesting schedules and signing bonuses change the shape of an offer.
Weigh team, growth, and stability alongside the numbers.
Lesson quiz
5 questions · pass with 4 correct · up to 50 XP
Passing this quiz completes the lesson and keeps your streak going. Questions you miss come back in review sessions later.
Practice: run the numbers
Use short Python programs to calculate total compensation, vesting, market percentiles, and counteroffers. These exercises run locally in your browser.
Compare offers over four years
Read a count n, then n lines of name base grant p1,p2,p3,p4 signing, where the percentages are the yearly vesting schedule. For each offer compute year one (base + grant * p1 // 100 + signing) and the four-year total (4 * base + grant + signing). Print name: year 1 = X, 4-year total = Y for each offer, highest four-year total first (ties alphabetically), with thousands separators.
- Even versus back-loaded
- Tie broken by name
Python runs in a sandboxed browser worker with a 60 second time limit. Its runtime loads from the Pyodide CDN; your code stays in this browser.
Questions about this lesson
Stuck? Ask. Figured something out? Share it. Explaining is one of the best ways to learn.
Loading posts…