---
name: "job_offer_comparison"
description: "Compare two or more job offers on total compensation: salary, expected bonus, equity valued at scenario prices with vesting cliffs applied, benefits priced in dollars, and the non-pay terms, ending in a clear pick with the tradeoffs named. Ships a total compensation calculator with equity scenarios and vesting cliffs, a benefits valuation sheet, and a worked two-offer comparison. Triggers on comparing job offers, weighing a counteroffer, deciding between a startup and an established company, valuing RSUs or options in an offer, or asking whether a higher salary beats better benefits or equity."
---

# Job Offer Comparison

## Purpose

Turn a stack of offer letters into one honest comparison. Salary alone misleads: benefits run near 30 percent of total compensation cost for private industry workers on average, bonuses pay below target in bad years, and private equity can be worth a lot or zero. This skill prices each piece the same way for every offer, applies the vesting schedule before valuing any equity, tests the ranking at more than one share price and more than one stay length, then makes a pick and names what the pick gives up.

## Workflow

### 1. Collect each offer on the intake form

Fill assets/offer-intake.md once per offer, from the offer letter, the benefits guide, and the grant document. Chase the items letters love to leave vague: bonus eligibility and proration, the match formula, the employee share of the health premium, equity strike and vesting start, the post-termination exercise window, and every clawback window. Mark anything supplied verbally as verbal. Verbal items count at zero in the headline total and appear in the report as unconfirmed.

### 2. Price the benefits in dollars

Work references/benefits-valuation.md line by line and record the result on assets/benefits-valuation-sheet.md. Health value is total premium minus the employee share. Retirement value is the match in dollars at this salary, with its vesting schedule noted. HSA employer money and stipends the person would otherwise spend count at face value. Value only the PTO difference between offers, as a memo line, because salary already pays for time off. Put the costs the job adds, such as parking or a coverage change for a partner, in annual costs.

### 3. Weight the bonus, never take target at face value

Set expected bonus as target times a probability weight between 0 and 1. Base the weight on stated payout history, whether the target is team or company based, and how much of the plan the employer can change at will. Write the reason for the weight next to the number. Run a low weight in a sensitivity check when payout history is missing.

### 4. Run the calculator

Put the offers in a JSON file in the shape of assets/example-offers.json and run bin/compare.py. The calculator returns the recurring annual total for each offer, the year 1 total with the sign-on counted once, totals at 1, 2, and 4 years, vested shares at each horizon with the cliff applied, equity value at each scenario price, and a ranking per scenario. Options are valued at intrinsic value, scenario price minus strike floored at zero. A sign-on inside its clawback window at a leave horizon counts as repaid. Use --json for machine readable output and --horizon-years to change the main horizon.

### 5. Stress the ranking before picking

Read three checks before naming a winner. First, the scenario check: if the ranking flips between the low and high share price, the leader at the high price is an equity bet, and the report must compute the break-even share price the way references/worked-example.md does. Second, the short stay check: compare the 1 and 2 year totals, where cliffs, unvested match money, and clawbacks punish offers that look rich at 4 years. Third, the certainty check: split each total into pay that is close to certain, salary and priced benefits, and pay that depends on a bonus plan, a share price, or staying put.

### 6. Score the non-pay terms

Walk references/non-pay-terms-checklist.md for each offer: title and level, manager and team, review timing, location and travel, noncompete and nonsolicit scope under the governing state law, invention assignment with the prior inventions list attached, arbitration, severance if written, and the cash needed to exercise options after leaving. List wins, watch items, and deal breakers per offer. A deal breaker the person named beats a money gap.

### 7. Make the pick and name the tradeoffs

State the pick in the first line of the report. Follow with the money table, the scenario spread, the short stay result, and the non-pay list. Name what the pick gives up in dollars and in terms. Close with the two or three facts that would change the pick, such as a written refresh policy, a shorter cliff, proof that a bonus pays below target, or a written answer on a noncompete. When the person wants to negotiate, turn the gap into one specific ask aimed at the weaker offer, priced from the same sheet.

## Output Contract

Return, in this order:

1. The pick, in one line, with the main reason.
2. A per offer table: base, expected bonus with its weight, sign-on with clawback months, retirement match, priced benefits, annual costs, and recurring annual total.
3. Totals at 1, 2, and 4 years for each offer, with equity shown at the low, middle, and high scenario prices and vested shares at each horizon.
4. The break-even share price whenever one offer needs equity to catch up, and the short stay result.
5. The non-pay list per offer: wins, watch items, and deal breakers, with verbal promises flagged.
6. What would change the pick, and any missing documents that forced an item to zero or to a benchmark.
7. A note that all totals are pre-tax estimates from the inputs supplied.

## Operating Rules

- Every factual claim about tax, limits, premiums, or law must trace to a checked source. The notes in references/ carry the sources used here: IRS guidance for options, 2026 retirement and HSA limits, the KFF 2025 health benefits survey for premium benchmarks, BLS employer cost data, and Department of Labor pages for leave and severance. Re-check any figure before reusing it in a later year.
- Never value private equity at one price. Three scenario prices or equity counts at zero in the headline total with the scenarios shown separately as unverified.
- Never count a benefit the person would not otherwise buy, and never count the same dollar twice. The employee health premium belongs in one line only. PTO difference is a memo, not an add-on.
- Apply the cliff before valuing equity. A grant quoted as a 4 year total is worth zero to a person who leaves before the cliff, and the report must show that horizon.
- Separate the certain from the speculative in every total. A reader should see how much of a winning total depends on a share price or on staying 4 years.
- Give tax points as general information with their source, flag ISO, 83(b), and exercise cash cases for a tax professional, and never give a personal tax recommendation. An 83(b) deadline, where one applies, is 30 days after transfer and does not wait for a comparison to finish.
- Keep one sheet per comparison. Two competing spreadsheets drift apart and the pick stops being auditable.
