Break down total compensation
Understand every part of an offer and add them up correctly.
- Name the components of a software engineering offer.
- Calculate first-year and ongoing annual compensation.
- Look beyond salary to benefits and terms.
Software engineering offers, especially at larger tech companies, are more than a salary. Total compensation (TC) combines several parts with different rules, timing, and risk. Two offers with the same base salary can differ by tens of thousands a year once you add everything up - so the first step in any negotiation is knowing exactly what you are being offered.
The parts of an offer
- Base salary: guaranteed pay, the foundation of future raises and often of your bonus.
- Annual bonus: usually a target percentage of base. The actual payout can depend on company and individual performance.
- Equity: stock (RSUs) or stock options, granted up front and earned over a vesting schedule, commonly four years.
- Signing bonus: a one-time payment, often repayable if you leave within a year. Some offers split it across two years.
- Relocation: a lump sum or covered moving costs.
- Benefits: retirement matching, health insurance, parental leave, remote work, learning budgets, paid time off.
1base, bonus_pct = 160_000, 10
2equity_grant, vest_years = 240_000, 4
3signing = 25_000
4
5ongoing = base + base * bonus_pct // 100 + equity_grant // vest_years
6print(f"Year one: {ongoing + signing:,}")
7print(f"Ongoing: {ongoing:,}")Year one: 261,000 Ongoing: 236,000
Notice the gap between year one and later years. A signing bonus inflates the first year only, and the initial equity grant runs out after it vests. Many companies award refreshers (new annual grants) to keep compensation level, but they are rarely guaranteed in the offer. When you compare offers, compare the same years, and ask what refreshers typically look like.
Key takeaways
TC = base + bonus + annualized equity (+ one-time payments in year one).
Compare the same years across offers.
Get the complete breakdown in writing before negotiating.
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.
Calculate total compensation
Read five lines: base salary, bonus target percent, equity grant, vesting years, and signing bonus. Print Year one: X (base + bonus + annual equity + signing) and Ongoing: Y (without the signing bonus), with thousands separators. Use integer division: bonus is base * percent // 100, annual equity is grant // years.
- With equity and signing bonus
- Cash only
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…