offer-comparison
GitHub对比多个工作offer的四年总薪酬曲线,计算归属悬崖、奖金、401k匹配及盈亏平衡点。提供逐年表格、交叉分析及按美元影响排序的谈判杠杆,支持Python脚本自动化计算。
Trigger Scenarios
Install
npx skills add mohitagw15856/pm-claude-skills --skill offer-comparison -g -y
SKILL.md
Frontmatter
{
"name": "offer-comparison",
"description": "Compare two or more job offers as total-comp curves over four years — vesting cliffs, bonuses, 401(k) match, and the crossover year computed, not vibed. Use when asked to compare job offers, which offer pays more over time, model my equity vesting, or is the startup offer actually worth it. Produces a year-by-year and cumulative comp table per offer, the crossover analysis, and negotiation levers ranked by dollar impact."
}
Offer Comparison Skill
Offers are quoted as feelings — "the startup has more upside" — but they resolve to numbers with dates on them. This skill computes the curves: what each offer pays in each of the next four years, where the lines cross, and which lever in the weaker offer would actually move it.
What This Skill Produces
- The comp table — per-year and cumulative totals per offer, from the script
- The crossover analysis — which offer leads when, and what assumption that ranking is hostage to
- The risk translation — private equity restated honestly rather than at face value
- Negotiation levers — ranked by dollar impact per unit of asking-awkwardness
Required Inputs
Ask for these if not provided:
- Per offer: base, bonus %, equity grant value, vest years, cliff months, vest frequency, 401(k) match (% and cap), any promised refreshers
- The user's horizon — expecting to stay 2 years or 4 changes the answer, because cliffs do
- Equity risk view — public RSUs count at face; for private equity, agree a discount with the user (e.g. 50–75% haircut pre-Series B) and pass the discounted number to the script labeled as such
Programmatic Helper
python3 scripts/offer_comparison.py offers.json
cat offers.json | python3 scripts/offer_comparison.py - --json
Input shape in the script docstring. The script computes vesting month-by-month (a 12-month cliff releases the accrued year), bonuses and match annually, and reports the cumulative leader and crossover year. It values equity at exactly the number you give it — the risk adjustment is your input, visible, never a hidden assumption.
Framework: The Judgment Around the Math
- The cliff vs the horizon — an 18-month expected stay makes year-4 equity fiction; compare at the user's actual horizon, not the grant's
- A risky dollar ≠ a salary dollar — never compare private paper to cash 1:1; show the comparison at 2–3 discount levels if the user resists picking one
- Refreshers are policy, not promise — model them only if written down; otherwise mention them as upside outside the table
- Levers, ranked: base (compounds into bonus and match) → equity grant → signing bonus (one-time, easiest yes) → cliff/start-date adjustments
Output Format
Offer Comparison: [A] vs [B]
The Curves
[Script output: per-year, cumulative, leader, crossover]
What the Ranking Is Hostage To
[The 1–2 assumptions that flip the answer — usually the private-equity discount and the stay-horizon — each shown with the flipped result.]
Negotiation Levers
| Lever | Applied to | Moves 4-yr total by | Ask difficulty |
|---|
Educational model, not financial advice — verify with a licensed professional before acting on it.
Quality Checks
- Equity discount for private companies is explicit and the user agreed to it
- The comparison is shown at the user's stated horizon, not only at 4 years
- The hostage-assumptions section shows the flipped ranking, not just names the risk
- Levers carry dollar impacts computed from the actual offers
- The disclaimer line appears in the artifact
Anti-Patterns
- Do not compare a risky equity dollar to a salary dollar 1:1 — the discount is the analysis
- Do not hide the vesting cliff inside annual averages — year 1 with a cliff is its own story
- Do not model unwritten refreshers as income
- Do not declare a winner without naming what assumption the win depends on
- Do not present the model's output without its assumptions attached
Version History
- 54fad50 Current 2026-07-19 13:34


