Definition
- Researched range – Derive the range from market data, your experience level, and the role's scope, not a random figure.
- Total compensation – Optimize for the total package (base + bonus + equity + benefits), not just base salary.
- Justified reasoning – Show the inputs behind your number so the interviewer sees a professional, not a gambler.
- Collaborative tone – Frame it as finding a fair deal for both sides, not a win-lose negotiation.
- Floor awareness – Set the bottom of your range at a number you would genuinely accept, because interviewers anchor on the low end.
Imagine Rajesh negotiating an interest rate on a loan at National Bank of India. If he blurts out a number with no basis, the bank either overcharges him or doubts his judgment. If he says "based on the current repo rate, my credit score, and comparable loans, I expect somewhere between X and Y", the bank respects the reasoning and negotiates seriously.
Understanding the Concepts
What is this question really testing?
The interviewer is checking whether you have a realistic, researched expectation and whether you can justify it calmly. The number matters less than the reasoning that produced it.
package com.bank.interview;
public class SalaryTest {
enum Signal { REASONED, RANDOM }
public static Signal evaluate(boolean hasResearch, boolean canJustify) {
return (hasResearch && canJustify) ? Signal.REASONED : Signal.RANDOM;
}
public static void main(String[] args) {
System.out.println(evaluate(true, true)); // REASONED
System.out.println(evaluate(false, false)); // RANDOM
}
}
How do you build the range from research?
Combine several inputs: market data for the role and location, your current compensation plus a move premium, and the specific scope and seniority of this role.
package com.bank.interview;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class SalaryRange {
public static void main(String[] args) {
BigDecimal marketMedian = new BigDecimal("2000000"); // 20L
BigDecimal levelFactor = new BigDecimal("1.05"); // senior premium
BigDecimal locationFactor = new BigDecimal("1.00"); // metro
BigDecimal midpoint = marketMedian.multiply(levelFactor).multiply(locationFactor)
.setScale(0, RoundingMode.HALF_EVEN);
BigDecimal low = midpoint.multiply(new BigDecimal("0.95")).setScale(0, RoundingMode.HALF_EVEN);
BigDecimal high = midpoint.multiply(new BigDecimal("1.10")).setScale(0, RoundingMode.HALF_EVEN);
System.out.println("Range: " + low + " to " + high);
System.out.println("Inputs: market median, level factor, location factor");
}
}
Range: 1995000 to 2310000
Inputs: market median, level factor, location factor
Why should you think in total compensation?
Base salary is just one term. The real quantity is totalComp = base + bonus + equity + benefits. A senior candidate optimizes the whole expression.
package com.bank.interview;
import java.math.BigDecimal;
public class TotalCompensation {
public static void main(String[] args) {
BigDecimal base = new BigDecimal("2000000");
BigDecimal bonus = new BigDecimal("400000");
BigDecimal equity = new BigDecimal("300000");
BigDecimal benefits = new BigDecimal("150000");
BigDecimal total = base.add(bonus).add(equity).add(benefits);
System.out.println("Total comp: " + total);
System.out.println("Flexible on the mix if the total and growth are strong.");
}
}
Total comp: 2850000
Flexible on the mix if the total and growth are strong.
How do you set the floor of your range correctly?
Interviewers often hear the lower end as your floor, so set it at a number you would genuinely accept. If your floor is 19L, do not say "15 to 22" or you risk being offered 15.
package com.bank.interview;
public class FloorSetting {
public static void main(String[] args) {
int genuineFloor = 1900000;
int rangeBottom = genuineFloor; // Bottom = floor you'd accept
int rangeTop = 2200000;
System.out.println("Range: " + rangeBottom + " to " + rangeTop);
System.out.println("Rule: bottom of range = lowest number you would genuinely accept.");
}
}
How do you keep the tone collaborative?
Frame it as finding a fair deal, not winning a battle. "I want a number that is fair to both of us" signals maturity.
package com.bank.interview;
public class CollaborativeTone {
public static void main(String[] args) {
System.out.println("Adversarial: 'I need at least X and I will not budge.'");
System.out.println("Collaborative: 'Based on my research, I expect a range of X to Y. "
+ "I am looking at the total package and I want something fair for both sides.'");
}
}
What if you are asked about salary too early?
If asked in the initial screening before you understand the role fully, it is reasonable to say you would like to learn more first. But always have a researched range ready so you do not appear evasive.
package com.bank.interview;
public class EarlySalaryQuestion {
public static String respond(boolean understandsRole) {
if (!understandsRole) {
return "I would like to understand the full scope first, "
+ "but based on market data my expectation is in the range of 19-22L base.";
}
return "Based on the role scope and market data, I expect 19-22L base.";
}
public static void main(String[] args) {
System.out.println(respond(false));
}
}
What sources should you use for market data?
Use multiple sources to triangulate: Glassdoor, levels.fyi, Blind, peers at similar companies, and recruiter conversations.
package com.bank.interview;
import java.util.List;
public class SalarySources {
public static void main(String[] args) {
List<String> sources = List.of(
"Glassdoor: role-specific salary data",
"levels.fyi: total comp with level mapping",
"Blind: anonymous peer reports",
"Recruiter conversations: current market rates",
"Peers at similar companies: first-hand data"
);
sources.forEach(System.out::println);
}
}
What are common interview follow-up questions?
Expect: "Is that flexible?" (say yes on the mix, firm on the total), "What is your current salary?" (in many places you can decline; focus on market rate), and "What would make you accept a lower base?" (equity, bonus, growth opportunity).
package com.bank.interview;
public class SalaryFollowUps {
public static void main(String[] args) {
System.out.println("Flexible? -> Yes on the mix, focused on total package");
System.out.println("Current salary? -> I prefer to focus on market rate for this role");
System.out.println("Lower base? -> Strong equity, bonus, or growth opportunity");
}
}
Visual Overview
┌────────────────────────────────────────────────────────┐ │ Salary Expectation Framework │ ├────────────────────────────────────────────────────────┤ │ │ │ Inputs: │ │ ┌─────────────┬──────────────┬──────────────┐ │ │ │ Market Data │ Current Comp │ Role Scope │ │ │ │ (Glassdoor, │ + move │ (seniority, │ │ │ │ levels.fyi) │ premium │ complexity) │ │ │ └──────┬──────┴──────┬───────┴──────┬───────┘ │ │ │ │ │ │ │ └─────────────┼──────────────┘ │ │ ▼ │ │ ┌────────────────────────────────────┐ │ │ │ Derived Range: 19L to 22L base │ │ │ │ Floor = lowest you'd accept │ │ │ └────────────────────────────────────┘ │ │ │ │ │ ▼ │ │ ┌────────────────────────────────────┐ │ │ │ Total Comp = base + bonus │ │ │ │ + equity + benefits │ │ │ │ Flexible on mix, firm on total │ │ │ └────────────────────────────────────┘ │ │ │ │ Tone: collaborative, reasoned, professional │ └────────────────────────────────────────────────────────┘
Key Takeaway
For a senior backend role like this one at National Bank of India, my expectation is a base in the range of roughly nineteen to twenty-two lakhs, and I arrived at that number from research rather than picking it out of the air. I looked at market data for this level and location, I factored in the seniority and scope of this specific role, and I took account of where my current compensation sits and the premium a move like this typically carries.
I want to be clear that I am looking at the total package, not just base salary. Base, bonus, equity, and benefits all matter, and I am flexible on the mix. If the overall package and the growth opportunity are strong, I am very open to a different balance between base and the other components. So the range I gave is my reasoning for base, but what I am really optimizing is the whole deal.
Compensation is important to me but it is not the only thing driving this move. The scope of the role, the domain, and the chance to work on real-time payments and fraud matter a great deal, which is why I am keeping this collaborative : I want a number that is fair to both of us, not a win-lose negotiation.
The reason I answer this way is that this question is testing whether I have a realistic, researched expectation and whether I can justify it calmly. I give a reasoned range derived from explicit inputs, I set the bottom at a number I would genuinely accept, I keep the focus on total compensation, and I keep the tone collaborative.
Remember one sentence: Give a researched salary range justified by market data and role scope, optimize for total compensation, and keep the tone collaborative.
---