Content language · English
Offer Total-Comp Matrix: Floors Before Excitement
Offers scramble judgment. Base salary is loud. Equity is fuzzy. Sign-on is a sugar high. Recruiter timelines are artificial. The fix is boring and effective: write floors before you attach emotionally to any offer, then score options on a weighted total-comp matrix that you refuse to edit mid-call.
This is Decision Desk hygiene—not negotiation theater cosplay.
Write floors first (non-negotiable order)
Before you type “I’m so excited,” fill:
- Cash Y1 floor — base + expected bonus you actually believe.
- TC floor — with an explicit equity haircut rule written down.
- Must-have non-cash — remote policy, visa support, location, protected time, whatever is truly must.
- Deal-breakers — list them while calm.
- Sign-on Y1 rule — ÷1 (count full), ÷2 (amortize), or ignore for floor tests.
- BATNA — what happens if all offers die (stay, contract, another pipeline).
If you invent floors after seeing Offer A, you didn’t have floors. You had a preference wearing a costume.
Equity haircut (be explicit)
Equity is not cash. Pick a rule and reuse it across offers:
- Example: count Y1 vest at 50% of paper value for floor tests; note strike/refresh uncertainty.
- Example: illiquid private equity → heavy haircut or “upside not in floor.”
- Example: public RSUs with clear vest → milder haircut, still not 100% for floor.
Write the rule on the sheet. Changing haircuts per favorite company is how favorites win unfairly.
Default weights (edit once, reuse)
A simple operator set that sums to 100:
| Factor | Weight |
|---|---|
| Cash Y1 | 25 |
| Equity (haircut applied) | 15 |
| Role / scope | 20 |
| Manager / team | 15 |
| Logistics (loc/remote/commute) | 15 |
| Stability / risk | 10 |
Edit weights once when calm. Do not bump Role to 40 because Offer B’s title flatters you. If your true preference changed, rewrite floors/weights in a dated revision—don’t silent-edit mid-compare.
Side-by-side matrix
Scroll for all columns
| Factor | Offer A | Offer B | Offer C |
|---|---|---|---|
| Company / level | |||
| Base | |||
| Bonus Y1 est. | |||
| Sign-on (Y1 view) | |||
| Equity Y1 est. (haircut noted) | |||
| Remote / location | |||
| Weighted total | |||
| Meets cash floor? | |||
| Meets TC floor? |
Any offer failing cash or TC floor is not “almost.” It is below floor. You may still take it with eyes open—but label it conscious exception with a written why. Exceptions that aren’t written become regret narratives later.
Qualitative block (not everything is a cell)
- Energy after Loop.
- Manager trust.
- “Sunday night” test—do you dread the calendar?
- Growth realism vs brochure.
These can adjust a close call. They should not invent 30 points of weight you never defined.
Primary ask discipline
One primary ask per counter. Script the ask. Log it. Multiple simultaneous asks without priority reads as unfocused and makes it easy to grant the cheap one while denying the load-bearing one.
Pair with a walk-away line written before the call. If you cannot walk, you are not negotiating—you are pleading. That’s allowed as a life choice; don’t mislabel it.
Multi-offer timing without inventing competing offers
Never fabricate deadlines or phantom offers. If you have one offer and a pending Loop, you can ask for time using truth: “I have a final conversation scheduled; can you extend to DATE?” Honesty keeps relationships intact if you re-enter that market later.
Decision Desk logs closed_reason: accepted / declined / expired_offer / other.
Worked fictional compare
Fictional IC offers, haircut rule: private equity Y1 at 40% of paper; public RSU Y1 at 70%.
| Offer A (startup) | Offer B (public) | |
|---|---|---|
| Cash Y1 | 165k | 155k |
| Equity Y1 haircut | 20k | 35k |
| Role weight feel | sharper scope | broader platform |
| Manager | known from Loop | unknown skip-level risk |
| Logistics | remote OK | 3-day hybrid |
| Meets cash floor 150k | Y | Y |
| Meets TC floor 180k (haircut) | Y (185) | Y (190) |
Weighted totals might land close. Qualitative: Sunday-night test favors A; stability favors B. Primary ask if countering B: remote days, not a random title bump. Floors unchanged midstream.
Your numbers will differ. The refusal to silent-edit weights should not.
Common failure modes
- Base hypnosis — ignoring bonus realism and equity quality.
- Sign-on myopia — counting full sign-on in every future year mentally.
- Title cosplay — trading cash floor for a string on LinkedIn.
- Fear closing — accepting under floor because silence is scary; skip written exception.
- Spreadsheet as decoration — filling matrix after you already decided.
Pair with Weekly Command Review
If you are at Offer stage, Sunday decisions include Negotiation log hygiene and floor reaffirmation. Do not discover your cash floor on a Friday 5pm expire threat.
Honest limits
No matrix guarantees a higher number. Levels, markets, and budget bands differ. Scripts help process; they don’t create headcount. Kits that promise “+$20k guaranteed” are lying. Floors + weights + one primary ask improve decision quality under adrenaline. That’s the bar.
Negotiation log (minimum fields)
Keep a CSV or table: date, offer_id, counter_number, primary_ask, their_reply, new_terms, emotion_note (one word), next_action_date. Emotion_note sounds soft; it prevents you from rereading history as purely rational when it wasn’t. Next_action_date prevents expire surprises.
When to bring a human
If visa, relocation, or equity complexity exceeds your confidence, a lawyer/comp advisor can be rational. The matrix still comes first so you don’t outsource your floors. Advisors inform; they don’t feel your Sunday-night test.
Accept/decline communication
Accept: written confirmation filed; update kanban Closed with accepted; stop other Processes ethically (withdraw politely).
Decline: short gratitude + clear no; no essay; closed_reason declined. Keep bridges. Markets are circular.
Expire: if they expire you under floor and won’t move, Closed expired_offer. Don’t beg in ways you’ll resent.
Cash Y1 math without self-gaslight
Cash Y1 ≈ base + (bonus_percent × base × probability_you_believe). If on-target bonus is 10% but the team historically pays 5%, use 5% for floor tests. Optimism belongs in upside notes, not floors.
Refresh grants, promotions, and “we’ll make you whole later” are not cash until written. Put them in a parking lot section of the Decision Desk so they don’t silently inflate Offer B.
Level and scope mismatches
A higher title under scope you reject can fail Role weight even if Cash clears. Conversely, a flat title with sharper ownership can win. The matrix exists so title strings don’t autopilot the decision. If level band affects future mobility, note it under Stability/risk—not as a vibes veto after you already accepted.
Competing timelines and ethics
Ask for time when you need it. Don’t ghost other recruiters for two weeks while you “see.” Withdraw cleanly when you accept. Operator reputation compounds across seasons; spam reputation does too, in the wrong direction.
Red-flag pauses
Pause (don’t instantly accept) if: verbal-only comp with refusal to write; pressure to cancel other finals *before* written offer; equity terms you can’t restate in one minute; manager you’ll never meet pre-accept; immigration promises with no written process owner. Pausing is allowed. Document the flag on the sheet.
Connecting Offer stage to Closed hygiene
When done, Closed reason is mandatory. Pipeline metrics for future seasons need clean exits. “Ghosted them because awkward” becomes missing data and sometimes burned bridges. Two-sentence decline emails are professional kindness.
Practice run before you have offers
Fill floors and weights this week even with zero offers. Use fictional SAMPLE offers if needed—to rehearse math, not to invent a stronger BATNA on paper. The first real offer will still spike adrenaline; prewritten floors reduce how far the spike moves the pencil.
One-page accept packet
When you accept, file in one folder: written offer PDF, your filled matrix, floors snapshot dated, email thread confirming start date and level, visa/relocation annex if any. Future you—and future negotiation—needs that packet. Spam culture accepts in Slack emoji and loses the terms.
Recruiter calls while matrix is open
Keep the sheet visible. Recite haircut rule if equity gets hand-wavy. Ask for written refresh of numbers after the call. If they ask your number first, return to floor: give a range anchored on cash floor + room for TC, or defer until full package written—depending on your script. The matrix doesn’t speak for you; it keeps you from improvising a new floor live.
Soft note — Job Hunt Command Kit
The weighted offer desk and total-comp matrix are part of Job Hunt Command Kit Core ($19 one-time; HTML and XLSX; formats vary by kit), with a deeper Offer Negotiator line kit at $15. See jobhuntkit.top. No raise or offer guarantee—floors and process only.