View as Markdown
Salaries

Salary Negotiation for Developers: The Three Moments Where the Number Is Set

CareerCTO14 min read

Salary Negotiation for Developers: The Three Moments Where the Number Is Set — Salaries

The salary a developer gets is usually decided before the final negotiation call - at the screening question about current CTC, on the expectation form, and inside an internal band nobody tells you about. Handle those three moments deliberately and the final call becomes a formality instead of a fight.

Most advice about salary negotiation assumes the number gets decided on a phone call near the end of the process. You prepare a script, you wait for the recruiter to say a figure, and you push back.

That is not where the number actually gets set. By the time someone reads you a figure on a call, it has usually already been anchored twice and capped once - all before you spoke to anyone who could change it.

This guide covers the three moments that actually decide your number: the screening question about your current salary, the expectation field on the application form, and the internal band a hiring manager gets handed before your resume even reaches them.

If you are also negotiating a notice period buyout at the same time, keep our guide to notice period buyouts open alongside this one - the two conversations often overlap.

Why the final call is usually too late

By the final negotiation call, three things have already happened. A recruiter has your current CTC on file. A number sits in an internal tracker next to your name. And a hiring manager has a band in mind that was set before your interview started.

The final call mostly confirms or nudges a number that was fixed earlier. That is why "just negotiate harder at the end" often produces disappointing results - the room to move has already shrunk.

This does not mean the final call does not matter. It means the earlier moments matter more, and most candidates spend zero effort on them.

Part of the reason is that these moments do not feel like negotiation at all. A form field or a screening question reads as paperwork, not as a decision point, so most people answer on autopilot and move on.

That autopilot answer is exactly what gets carried forward into every later calculation, often without anyone revisiting it. Treat each of the three moments below as a deliberate answer, not a formality to get past.

Moment one: the current CTC question

This usually comes from a recruiter, on the first screening call or in a form, phrased as "what is your current CTC" or "what is your expected CTC". It feels routine. It is not.

Whatever number you give here becomes the anchor for every offer calculation that follows. Recruiters and finance teams commonly price a new offer as a percentage increase over your stated current salary, not as an independent assessment of your market value.

If you understate your current CTC out of modesty, or round down because you are not sure what counts, you have capped your own offer before anyone has evaluated your skills.

What actually counts as CTC

CTC, or cost to company, is not just your monthly take-home multiplied by twelve. It typically includes your base pay, allowances, employer provident fund contribution, and the notional value of any bonus or stock component.

Component Usually counted in CTC Common mistake
Base salary Yes Confusing with take-home
Fixed allowances Yes Forgetting to add these in
Employer PF contribution Yes Most candidates omit this
Variable or bonus Often, at target value Quoting only if paid out
ESOPs or stock Sometimes, at grant value Ignoring entirely

Pull your actual CTC breakup from your last appraisal letter or payslip before any screening call, not from memory. Recruiters can often tell when a number is a guess.

Stock or ESOP value is the component candidates most often skip entirely, usually because it feels uncertain or speculative. If your current company issued a grant with a stated notional value, include it, and say plainly that its actual realized value depends on vesting and a future liquidity event.

Leaving stock out entirely understates your package on paper, even though its cash value is genuinely uncertain. The honest move is to state it with that uncertainty attached, not to omit it or to treat it as guaranteed cash.

What to actually say

State your CTC as one figure with its components named, not a vague range. Something close to: "My current CTC is [figure], which includes base, allowances and PF. My last variable payout was [figure] on top of that."

This does two things. It gives the recruiter an accurate anchor instead of an understated one, and it signals that you know your own compensation structure - which itself reads as a small credibility marker.

If you are asked for expected CTC in the same breath, do not answer with a single number yet. Say you would like to understand the role and band first, and that you are open to discussing a range once you do.

Moment two: the expectation form

Long before you speak to a human, many applications ask for an "expected CTC" field on a form, sometimes with a required numeric entry. This field is quietly one of the most consequential inputs in the whole process.

Applicant tracking systems frequently use this field to filter candidates before a recruiter ever opens your resume. A number outside the role's band, in either direction, can silently deprioritize your application.

Why a specific number here is risky

A single hard number gives the system - and later, the recruiter - a fixed data point to negotiate down from. It also removes your own flexibility before a conversation has even started.

A number that is too high can filter you out automatically. A number that is too low anchors your entire negotiation below what the role might actually pay.

What to write instead

Where the form allows free text, write a range anchored to your research, not a single figure: "Expected CTC: [lower figure] to [upper figure], depending on role scope and total compensation structure."

Where the form forces a single number, use the midpoint of your researched range rather than your ideal figure or a deliberately low number meant to "get through the filter". A number far outside a realistic band gets filtered either way.

Before you fill this field in, spend twenty minutes checking what similar roles typically pay. If the role is a .NET position, for instance, our guide to .NET developer salaries in India lays out indicative ranges by experience band to calibrate against.

If the form has no range option at all

Some applicant tracking systems accept only a single integer and reject a range entered as text. In that case, quote the top third of your researched range rather than the midpoint.

The logic is simple: a system-filtered number can only work against you if it is set too low, since a number that is genuinely too high usually still reaches a human reviewer who can ask a clarifying question. A number that is too low may never surface again.

If you later learn on a call that the actual band sits below what you entered, you have lost nothing - you can still move down in a live conversation far more easily than you can move up from a number already on file.

Moment three: the internal band, before you ever spoke to anyone

This is the moment almost nobody talks about, because it happens entirely inside the company. Before a role is even posted, someone - usually in finance or HR, sometimes with input from the hiring manager - sets a salary band for the position.

That band is often built from the previous person's salary in the role, a market benchmark the company subscribes to, and a budget ceiling set at the department level. None of those three inputs has anything to do with you specifically.

Why this caps your ceiling before the interview starts

A hiring manager frequently cannot offer above the top of the band without an internal approval process, regardless of how strong you are in interviews. This is a structural ceiling, not a reflection of your performance.

Knowing this reframes what "negotiation" even means at many companies. You are not negotiating a number that a hiring manager can move freely - you are negotiating where inside a fixed band you land, and occasionally whether an exception process gets triggered at all.

What to actually ask, and when

Ask the recruiter directly, ideally in the first or second conversation: "Is there a defined salary band for this role, and where in that band would a candidate with my experience typically land?"

This is a normal, professional question. Recruiters answer it more often than candidates expect, because a defined band is not usually treated as confidential the way an individual offer is.

If the answer suggests you would land near the top of the band already, your negotiation strategy shifts - you are pushing for an exception, not a routine adjustment. If you would land near the bottom, there is likely real room to move within the band alone.

How to push past a band that is too low

If the band itself is below your target, a single push-back rarely works. What tends to work is surfacing a specific, structural mismatch: scope that exceeds the leveled role, or a skill set the band was not built around.

Something close to: "The scope we discussed - owning the migration and mentoring two engineers - reads closer to a senior-level responsibility than what this band typically covers. Can we revisit the level, not just the number?"

This asks for a reclassification, which unlocks a different band, rather than an exception inside the existing one. Reclassification requests succeed more often than simple number requests, because they solve a labeling problem instead of asking someone to override a budget.

When there is genuinely no room

Some bands are fixed with no exception path at all, particularly at large services companies where compensation runs through a centralized system rather than a hiring manager's discretion.

In that situation, the more productive move is shifting the conversation to what is negotiable alongside the band: joining bonus, review timeline, remote work days, or a defined promotion checkpoint at a fixed interval after joining.

None of those move the CTC figure itself, but they change what the total offer is actually worth to you over your first year in the role.

Line drawing of three separate gates in a row, each narrower than the one before it

When your current employer counters your resignation

A retention counteroffer is a fourth pressure point that can undo careful work at the other three moments, so it deserves a plan before it happens, not after.

Once you resign with a competing offer in hand, your current manager may come back with a matched or higher figure to keep you. This puts a second, unplanned number into a process you had already worked to control.

The honest question to ask yourself first is why the raise is only arriving now. If your case for a higher salary was strong, the counteroffer is really an admission that your employer was underpaying you until you threatened to leave.

Accepting a counteroffer does not undo the reasons you started looking in the first place - a capped band, a stalled role, or a mismatch in scope usually persists even after the number moves. Treat the counteroffer as one more data point, not an automatic reason to stay.

If you do decide to stay, get the new figure and any promised role change written into a formal revision, not left as a verbal promise from the same conversation where you announced you were leaving.

Putting the three moments together

None of these three moments works in isolation. An accurate current CTC answer, a sensible expectation range, and a known band together set the outer limits of what the final call can do.

Moment When it happens What you control
Current CTC question First screening call or form Stating an accurate, complete figure
Expectation field Application form Giving a range, not a single number
Internal band Set before the role is posted Asking about it, and where you land

Get all three right and the final negotiation call becomes a formality that confirms a number you already influenced. Get them wrong and the call becomes a fight over a number that was never really in play.

What the final call is actually for

Once the three earlier moments are handled, the final call has a narrower job: confirming the number, negotiating the shape of the total package, and settling start-date logistics.

This is where you can still move variable pay, joining bonus, notice period buyout support, or non-cash terms like remote work days - even when the base figure itself is closer to fixed.

If a buyout is part of your move, that conversation deserves its own attention rather than folding into the salary call. Our guide to notice period buyouts breaks down who typically pays that and how to ask.

Reading the offer letter, not just the number

A verbal number on a call is not the offer. The written offer letter is where the actual terms live, and it is worth reading closely before you accept anything verbally.

Watch for a gap between the CTC figure discussed on the call and the components listed in the letter - a lower fixed component with a larger "variable, subject to performance" line changes what that number actually means in practice.

If you are unsure what belongs in an offer letter versus what shows up only in the formal appointment letter later, our comparison of offer letters and appointment letters walks through the difference before you sign anything.

What changes if you are moving from services to product

The three-moment pattern holds across company types, but the numbers behind each moment shift if you are moving from a services company to a product company.

Product companies more often work with wider bands and more variable compensation, while services companies tend to run tighter, more standardized bands with less room for exception. Your current CTC anchor also reads differently across the two, since services CTC structures often carry a larger variable or bench component.

If that transition applies to you, our guide to switching from service-based to product-based companies covers what else changes in the process besides the compensation structure.

A note on how CareerCTO fits into this

None of this negotiation guidance depends on CareerCTO, and it should not. But if you are searching while you prepare for these conversations, it helps to know what you are looking at.

Every posting on CareerCTO's reviewed job board goes through a review step before publication, which is a different kind of screening than a salary band, but it means you are not negotiating against a listing nobody has checked.

If you are the one hiring and want to reach candidates who already understand how to have this conversation professionally, you can post a job with a stated band rather than leaving candidates to guess at moment three entirely on their own.

Line drawing of a scale balancing a stack of coins against a folded letter

What CareerCTO's verification does and does not tell you here

CareerCTO's verified badge confirms one specific thing: Questpond's records show that a developer completed a named cohort on a specific date. It says nothing about their current salary, their negotiation history, or what band any past employer placed them in.

Employers browsing verified developer profiles still need to run their own compensation conversation with each candidate - verification shortens the trust gap on skills and training, not the salary conversation.

If you are hiring and want to see how comparable roles are typically structured before you set your own band, browsing companies already hiring through the directory can give you a reference point before you write the job description.

Handling the awkward moments in real time

Some parts of these three conversations feel uncomfortable no matter how prepared you are. A few short scripts help more than a long explanation.

When pushed for an exact expected number on a call: "I would rather understand the role and band first, but if it helps move things along, my range is [lower] to [upper] based on my current CTC and market research."

When the recruiter says the band is fixed with no flexibility: "Understood

  • is there room to discuss variable pay, joining bonus or review timeline instead of the fixed component?"

When you suspect you are below the band's midpoint: "Given the scope of this role, where would a candidate with my experience typically land within your band?"

Each of these keeps the conversation factual and specific, rather than emotional or vague, which tends to get a clearer answer either way.

Line drawing of a speech bubble with a single coin inside it, resting on an open notebook

A short note on the numbers in this article

Every salary figure and range referenced here is indicative only. Actual compensation varies by city, company type, seniority, stack and the specific hiring budget for a role at a given time.

Treat any number you calculate from this guide as a planning input for your own research, not a benchmark to hand a recruiter as fact. Where your own offer letter or company policy differs from a pattern described here, your own documents are the ones that govern.

The one thing to do next

Before your next screening call, write down your exact current CTC with its components, decide on a researched expectation range instead of a single number, and prepare the one question about the internal band.

Those three things take less than an hour to prepare, and they influence your final number more than anything you could say on the negotiation call itself.

Do this before your next application, not just your next interview. The expectation field on the form and the current CTC question both arrive earlier than most candidates expect, and by then the preparation window has already closed.

Keep reading