Determining Your Personal Salary Range
Read at your own pace. Code execution, quizzes, progress tracking, and the AI tutor are available in the interactive view with JavaScript enabled.
From Market To You
Why this lesson matters
In Introduction to Salary Negotiation, you built the mindset: negotiation is not about one magic number. In Researching Salary Ranges, you turned messy market signals into a research brief.
Now we use that brief to answer a more personal question:
Given my skills, experience, constraints, and value, what range actually makes sense for me?
For a senior developer, this is like moving from league-wide averages to your own depth chart value. The Steelers do not pay a left tackle only because of the NFL median; they consider scarcity, fit, reliability, and impact. Your salary range should do the same.

Three Range Layers
Your range has three layers
A useful personal range is not just the top number you hope for. It has structure:
Market range: What comparable roles are paying
Personal floor: The minimum that works for your life and goals
Value-adjusted ask: Where your skills and impact justify positioning
Think of it like this:
Lower market Mid-market Upper market
|--------------|-------------|
^ ^ ^
| | |
floor target stretch
Your goal is to align these layers. If your floor is far above the market, you may need a different role, level, company type, or location. If your value signals are unusually strong, your target may sit above the midpoint.

Quantify Value Signals
Turn experience into evidence
With 10+ years of coding experience, you likely have more than tenure. You may have signals that change where you fit inside the market range:
- Role-critical skills: C++, distributed systems, performance tuning, security, architecture
- Scope: mentoring, design ownership, cross-team leadership
- Scarcity: skills the employer is struggling to hire for
- Business impact: revenue, reliability, cost savings, launch speed
- Pattern of delivery: consistent execution under ambiguity
You are not trying to create a fake formula that proves your worth. You are building a disciplined estimate so your personal range is not based only on vibes.
```cpp
#include <algorithm>
#include <iomanip>
#include <iostream>
#include <string>
#include <vector>
struct Signal {
std::string name;
double weight; // importance to this role
int score; // 1 = weak, 5 = exceptional
};
int main() {
std::vector<Signal> signals = {
{"C++ performance expertise", 0.30, 5},
{"Distributed systems experience", 0.25, 4},
{"Mentoring and technical leadership", 0.20, 4},
{"Domain match", 0.15, 3},
{"Recent business impact", 0.10, 5}
};
double weightedScore = 0.0;
for (const auto& s : signals) {
weightedScore += s.weight * s.score;
}
// Score 3.0 means solid market fit. Each point above/below adjusts by 4%.
double adjustment = (weightedScore - 3.0) * 0.04;
adjustment = std::clamp(adjustment, -0.08, 0.12);
std::cout << std::fixed << std::setprecision(2);
std::cout << "Weighted value score: " << weightedScore << " / 5.00\n";
std::cout << "Suggested market-position adjustment: "
<< adjustment * 100 << "%\n";
}
```
Pick The Target
You researched a comparable role and found a market range of $145k-$185k, with a midpoint around $165k. Your personal floor is $155k. The role strongly needs low-latency C++ expertise, and that is one of your best-documented strengths.
Which target-setting logic is strongest?
Define Your Floor
Your floor is not your dream number
Your floor is the lowest compensation package you can accept without violating your practical needs, financial goals, and opportunity cost.
Consider:
- Current compensation and benefits you would be giving up
- Cost of living, commute, relocation, or remote-work changes
- Savings goals, debt obligations, family needs, or insurance needs
- Risk level of the company or role
- Time cost of switching jobs
- Other offers or credible alternatives
A floor should be calm and private. It is not a threat, and it is not necessarily something you share. It is your internal line for making a sound decision.

Compute The Range
Combine market, floor, and value
Here is a simple way to turn your research brief into a working personal range:
- Start with the comparable market percentiles from your research.
- Calculate your private floor.
- Adjust your target based on strong, role-relevant value signals.
- Keep the stretch number inside a credible market zone unless the role scope is clearly larger.
This is not a replacement for judgment. It is a guardrail against both underpricing yourself and drifting into fantasy numbers.
```cpp
#include <algorithm>
#include <iomanip>
#include <iostream>
#include <string>
int main() {
// From your prior research brief for comparable senior C++ roles.
double p25 = 145000;
double p50 = 165000;
double p75 = 185000;
// Your private minimum based on life constraints and opportunity cost.
double personalFloor = 158000;
// From role-critical value signals: strong, but still within reality.
double valueAdjustment = 0.08; // 8% above midpoint
double rawTarget = p50 * (1.0 + valueAdjustment);
double target = std::max(rawTarget, personalFloor * 1.05);
// Ask zone: credible lower bound through stretch.
double lowerAsk = std::max(personalFloor, target * 0.95);
double stretch = std::min(p75, target * 1.07);
std::cout << std::fixed << std::setprecision(0);
std::cout << "Personal floor: $" << personalFloor << "\n";
std::cout << "Target: $" << target << "\n";
std::cout << "Working personal range: $" << lowerAsk
<< " - $" << stretch << "\n";
}
```
Floor Versus Market
True or false:
If your personal floor is above the upper end of the researched market range, the best move is usually to lower your floor immediately so you can stay competitive.
Calibrate Without Inflating
Confidence is not exaggeration
A strong personal range is ambitious and defensible. Senior candidates sometimes underprice themselves because they remember old salary history. Others overcorrect and pick a number unsupported by the role.
Use these calibration checks:
- Would I be comfortable explaining why this range fits my level?
- Does my evidence connect to this employer's actual needs?
- Am I counting the same strength twice?
- Is this role truly senior/staff/principal, or am I importing scope from a different job?
- Would this range still make sense if a recruiter asked how I arrived at it?
Like editing a Stephen King draft, cut the parts that sound dramatic but do not serve the story. Keep the evidence that moves the plot.

Name The Minimum
Fill in the blank:
The private minimum compensation you can accept without violating your practical needs and opportunity cost is your salary ______.
Your Range Brief
End with a one-page brief
By the end of this lesson, you should be able to write a private range brief like this:
Comparable market range: $145k-$185k
Personal floor: $158k
Target zone: $175k-$185k
Why: 10+ years C++ experience, strong performance work,
mentoring history, and direct match to the role's scaling needs.
Watch-outs: Do not accept below floor without a meaningful tradeoff.
This brief is for your clarity first. In the next lesson, Preparing for Negotiation, you will decide how to use this range as you plan the conversation. For now, the win is knowing your numbers before the pressure starts.