Raise vs Jump Skill
"Job hoppers earn more" is true on salary and incomplete on everything else: equity that vests on a cliff you keep resetting, the promotion you were two quarters from, the months of search time, the reputation cost of a short-stint résumé. This skill runs the salary math properly — trajectories, not single offers — and then insists on the checklist of what the salary math can't see, because that checklist decides more of these choices than the compounding does.
What This Skill Produces
- The trajectory table — year-by-year salary and cumulative earnings for both paths
- The crossover year — when cumulative jump-earnings pass cumulative stay-earnings
- The gap at horizon — final salary gap and cumulative gap, on stated assumptions
- The not-in-the-model checklist — scored for this user's actual situation
Required Inputs
Ask for these if not provided:
- Current salary and realistic stay-raise % — their employer's actual recent raises, not the poster in the break room (default 3%, labeled)
- Jump assumptions — bump per jump (default 15%), years between jumps (default 3), raises between jumps (default 2% — jumpers often land at the top of a band and stall)
- The invisible items — unvested equity and its schedule, pension/tenure benefits, promotion proximity, how they'd handle a search
Programmatic Helper
python3 scripts/raise_vs_jump.py --salary 120000
python3 scripts/raise_vs_jump.py --salary 120000 --stay-raise 3.5 --jump-bump 18 --jump-every 3 --json
Deterministic. Models salary only — the script prints its own not-modeled list, and the skill's job is to make that list concrete for the user.
Framework: What the Salary Math Hides
- Vesting resets are the jump tax — walking away from unvested equity and restarting a cliff is often worth more than the bump; compute it in dollars, not vibes
- The stay path has step functions too — a promotion is a 10–20% event; if one is genuinely close (named role, named timeline — not a vague "soon"), model it as a stay-side jump
- Raises between jumps sag — new hires land high in the band and then stall; that's the
--jump-year-raise 2 default, and it's why the crossover is later than the first bump suggests
- Search risk is asymmetric — a jump that takes 4 months of search or ends in a bad fit erases years of edge; weight it by how in-demand the user actually is
- Three jumps is a pattern — recruiters read tenure; the strategy that maximizes 5-year earnings can shrink 15-year options
Output Format
Raise vs Jump: [scenario]
The Trajectories
[Script output: year-by-year table, crossover year, gaps at horizon]
What the Table Says
[Two sentences: the size of the pure-salary edge and how sensitive it is to the bump/raise assumptions.]
The Checklist the Table Can't See
| Item |
This user |
Weight |
| Unvested equity walked away from |
[$ and schedule] |
[often decisive] |
| Promotion proximity on the stay path |
[named role/timeline or "vague"] |
|
| Search risk |
[in-demand? runway?] |
|
| Résumé pattern |
[tenure history] |
|
The Honest Read
[One paragraph: what the numbers plus the checklist actually suggest — a recommendation with its reasoning, not a dodge.]
Educational model, not financial or career advice — the checklist items are prompts for the user's judgment, not scores from the model.
Quality Checks
Anti-Patterns
1---2name: raise-vs-jump3description: Model staying for annual raises vs job-hopping for bigger bumps — cumulative earnings trajectories, the crossover year, and the costs the salary math hides (vesting resets, promotion paths, search risk). Use when asked should I switch jobs for more money, is job hopping worth it, model my salary if I stay vs leave, or raise versus new offer. Produces the year-by-year salary and cumulative-earnings table, the crossover year, and the not-in-the-model checklist that usually decides it.4---5
6# Raise vs Jump Skill
7
8"Job hoppers earn more" is true on salary and incomplete on everything else: equity that vests on a cliff you keep resetting, the promotion you were two quarters from, the months of search time, the reputation cost of a short-stint résumé. This skill runs the salary math properly — trajectories, not single offers — and then insists on the checklist of what the salary math can't see, because that checklist decides more of these choices than the compounding does.
9
10## What This Skill Produces
11
12- **The trajectory table** — year-by-year salary and cumulative earnings for both paths
13- **The crossover year** — when cumulative jump-earnings pass cumulative stay-earnings
14- **The gap at horizon** — final salary gap and cumulative gap, on stated assumptions
15- **The not-in-the-model checklist** — scored for this user's actual situation
16
17## Required Inputs
18
19Ask for these if not provided:
20- **Current salary** and **realistic stay-raise %** — their employer's actual recent raises, not the poster in the break room (default 3%, labeled)
21- **Jump assumptions** — bump per jump (default 15%), years between jumps (default 3), raises between jumps (default 2% — jumpers often land at the top of a band and stall)
22- **The invisible items** — unvested equity and its schedule, pension/tenure benefits, promotion proximity, how they'd handle a search
23
24## Programmatic Helper
25
26```bash
27python3 scripts/raise_vs_jump.py --salary 120000
28python3 scripts/raise_vs_jump.py --salary 120000 --stay-raise 3.5 --jump-bump 18 --jump-every 3 --json
29```
30
31Deterministic. Models salary only — the script prints its own not-modeled list, and the skill's job is to make that list concrete for the user.
32
33## Framework: What the Salary Math Hides
34
35- **Vesting resets are the jump tax** — walking away from unvested equity and restarting a cliff is often worth more than the bump; compute it in dollars, not vibes
36- **The stay path has step functions too** — a promotion is a 10–20% event; if one is genuinely close (named role, named timeline — not a vague "soon"), model it as a stay-side jump
37- **Raises between jumps sag** — new hires land high in the band and then stall; that's the `--jump-year-raise 2` default, and it's why the crossover is later than the first bump suggests
38- **Search risk is asymmetric** — a jump that takes 4 months of search or ends in a bad fit erases years of edge; weight it by how in-demand the user actually is
39- **Three jumps is a pattern** — recruiters read tenure; the strategy that maximizes 5-year earnings can shrink 15-year options
40
41## Output Format
42
43---
44
45# Raise vs Jump: [scenario]
46
47## The Trajectories
48[Script output: year-by-year table, crossover year, gaps at horizon]
49
50## What the Table Says
51[Two sentences: the size of the pure-salary edge and how sensitive it is to the bump/raise assumptions.]
52
53## The Checklist the Table Can't See
54| Item | This user | Weight |
55|---|---|---|
56| Unvested equity walked away from | [$ and schedule] | [often decisive] |
57| Promotion proximity on the stay path | [named role/timeline or "vague"] | |
58| Search risk | [in-demand? runway?] | |
59| Résumé pattern | [tenure history] | |
60
61## The Honest Read
62[One paragraph: what the numbers plus the checklist actually suggest — a recommendation with its reasoning, not a dodge.]
63
64*Educational model, not financial or career advice — the checklist items are prompts for the user's judgment, not scores from the model.*
65
66---
67
68## Quality Checks
69
70- [ ] Trajectories and crossover shown — never just "the offer is 15% more"
71- [ ] Unvested equity is computed in dollars if it exists
72- [ ] A genuinely-close promotion is modeled, a vague one is named as vague
73- [ ] The honest read takes a position with reasoning
74- [ ] The disclaimer line appears in the artifact
75
76## Anti-Patterns
77
78- [ ] Do not compare a single offer number to a single current salary — trajectories or nothing
79- [ ] Do not ignore equity because it's "complicated" — the complication is the money
80- [ ] Do not treat "my manager hinted at promotion" as a modeled event — named role and timeline, or it's noise
81- [ ] Do not assume the jump cadence repeats forever without naming the résumé-pattern cost
82- [ ] Do not hide behind "it depends" — deliver the honest read with its reasoning