Evaluate and negotiate an offer
Compare total compensation and negotiate professionally.
- Break an offer into its components.
- Compare offers by annualized total compensation.
- Negotiate respectfully with data.
The interview process ends with an offer - and usually room to negotiate. Offers are rarely final, and a professional negotiation almost never costs you the offer. Knowing how to evaluate one is part of doing the process well.
Components of an offer
- Base salary: your guaranteed yearly pay.
- Bonus: often a target percentage of base, which may depend on company and personal performance.
- Equity: stock or options granted over a vesting schedule, commonly four years. Divide the grant by the vesting years for an annual value, and consider the risk for private companies.
- Signing bonus: a one-time payment, often used to close gaps.
- Benefits: retirement matching, health insurance, remote work, learning budget, leave.
base, bonus_pct, equity, vest_years = 150_000, 10, 200_000, 4
annual = base + base * bonus_pct // 100 + equity // vest_years
print(f"Annual total compensation: {annual:,}")Annual total compensation: 215,000
When negotiating: express enthusiasm first, base requests on data (competing offers, market ranges for the level and location), and ask for specific adjustments. It is often easier to increase equity or the signing bonus than base salary. Get the final offer in writing. If you are asked for salary expectations early, you can give a researched range or ask to learn more about the role first.
Key takeaways
Compare offers by annualized total compensation and terms.
Negotiate with enthusiasm and data.
Equity and signing bonuses are often more flexible than base.
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: sharpen your stories
Use short Python programs to check your story structure, time your answers, and quantify impact. These exercises run locally in your browser.
Compare offers by total compensation
Read a count n, then n lines of company base bonus_percent equity_grant vesting_years. For each offer compute the annual total as base + base * bonus_percent // 100 + equity_grant // vesting_years. Print company: total lines from highest to lowest total (ties alphabetically), with thousands separators.
- Higher base is not always better
- Tie broken alphabetically
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…