Quick answer
A good counter-offer message has four moving parts: genuine enthusiasm for the role, one specific number (never a range), one grounded reason the number is fair, and a clear signal that you're ready to accept if you can get there. Everything else — buying time, handling "that's final", trading for non-salary terms — is a variation on the same honest structure. Never put anything in a script you couldn't defend in a follow-up question.
The rules all of these scripts follow
Four rules, applied throughout. One: enthusiasm first and last — every message opens with genuine interest and closes with a path to yes, because the counter that works reads as "help me accept", not "beat this or lose me". Two: one number, not a range — a range concedes its own bottom the moment you say it. Three: every claim is true — no invented competing offers, no inflated current salary, nothing that collapses under one follow-up question. Four: one ask at a time, two at most — a prioritized ask reads as clarity; a list reads as haggling.
On register: the US/Canada versions below are warm-direct; where UK/EU phrasing meaningfully differs we note it — generally a notch more understated, with "I was hoping we could discuss" doing the work that "I'd like to ask for" does in American English. Same structure, different volume.
Script 1 — Buying time (use this one first, almost always)
The moment an offer arrives — especially by phone — the pressure to respond is highest and your information is worst. The professional norm in every region this site serves is that a few days to review a written offer is a completely ordinary request:
"Thank you so much — I'm really pleased to get this, and I'm seriously interested in the role. I'd like to review the full offer properly and come back to you — would [day, 2–4 business days out] work for a decision?"
Notes: name a specific day rather than asking vaguely for "some time" — it reassures them you're deciding, not stalling. If they push for an answer on the phone, this line holds the door open without committing: "I don't want to give you an answer this important off the cuff — I'll come back to you by [day]." A company that refuses any review time at all is handing you information about how it operates; our guide on exploding deadlines covers that scenario.
Script 2 — The counter-offer email
Email is the right channel when you want exact wording, a record, and a message the recruiter can forward verbatim to whoever approves compensation — which is usually what happens. The full template:
"Subject: [Role] offer — one point I'd like to discuss. — Hi [name], Thank you again for the offer to join [company] as [role] — I'm genuinely excited about it, and the conversations with the team have only strengthened my interest. Before I accept, I'd like to discuss the base salary. Based on [your grounded reason — see below], I was hoping we could get to [number]. Everything else about the offer looks great, and if we can find a way through on this, I'm ready to accept right away. Happy to talk it through on a call if that's easier. — Best regards, [name]"
The grounded reason is the load-bearing line, and it must be true. Three shapes that work: scope ("given the role now includes owning the X function, which we discussed in the final interview"), market evidence ("based on the posted range and what I'm seeing for comparable roles in [city]"), or a real competing offer ("I have another offer at [number], and this role is my clear first choice — I'd love to close the gap"). The closing line — ready to accept right away — is what separates a counter from an ultimatum: you're telling them exactly what yes looks like, and that the deal closes the moment they say it.
UK/EU register: soften the ask line to "I was hoping there might be some flexibility on the base salary — based on [reason], I had [number] in mind." Identical structure; quieter delivery.
Script 3 — The phone version
A call is faster, reads as senior, and lets you hear which asks have give in them. The script is the email compressed, and the crucial technique is the pause:
"I'm really excited about this role — I want to say that first. I did want to talk about the base salary before I accept. Based on [grounded reason], I was hoping we could get to [number]." — and then stop talking. The silence after a number feels eternal and is doing your negotiating for you; the first person to speak usually concedes something. If they need to check: "Of course — when do you think you'll know?" If they ask what it would take to close today, that's your cue: "If we can get to [number], I'm ready to accept on this call."
Script 4 — When they say "that's our final number"
Sometimes it's true, sometimes it's a reflex; either way your move is the same — pivot once, to the non-salary ask you prepared in advance:
"I understand — thanks for being straight about it. In that case, could we look at [ONE of: a signing bonus of X / a compensation review at six months with agreed criteria / an additional week of leave / flexibility on remote days / a start date of X]? That would get me to a comfortable yes."
Notes: pick the fallback that actually matters to you, and frame it as the thing that closes the deal. A six-month review with written criteria is the chronically underrated one — it converts "we can't pay more yet" into a dated, criteria-based commitment instead of a vague hope. If base is fixed by a band or collective agreement (common in the EU public and unionized sectors — see the regional norms guide), this pivot isn't the fallback; it's the whole negotiation, and placement on the scale is part of it: "Given my [X years of directly relevant experience], could we look at starting at a higher step within the band?"
Script 5 — Accepting gracefully (and locking the terms)
"That's great news — I'm delighted to accept. Could you send over the updated offer letter reflecting [what changed], and I'll get it signed straight back to you? Really looking forward to starting."
One rule: whatever was agreed verbally goes in the written offer before you sign — not because anyone is lying, but because the person who agreed it may not be the person administering it in a year. If a promise "didn't make it into" the letter, ask once, warmly, and wait: "Before I sign — I think the [six-month review / extra leave] we agreed didn't make it into this version. Could that be added?"
Script 6 — Declining without burning anything
"Thank you again for the offer and for the time everyone invested — it wasn't an easy decision. I've decided to accept another role that's a closer fit for [honest, brief reason]. I really enjoyed meeting the team, and I hope our paths cross again."
Decline promptly once you're sure — sitting on a declined offer costs the runner-up candidates and the recruiter, and recruiters remember both kinds of candidates. No detailed justification is owed; specific criticism of the offer, the process, or the people buys you nothing.
What none of these scripts can know
The templates handle the words; they can't tell you the number to put in them, whether your reason is strong enough as grounds, or how your specific offer's components trade against each other — that takes market data and judgment about your actual situation. The free Offer Evaluator will at least structure the inputs (and generate a personalized skeleton of Script 2 from your own numbers, entirely in your browser). For the full version — what's negotiable in your offer, the recommended counter with the number argued for, these scripts adapted to your exact situation, and fallback positions — that's the Offer Review.
Want the scripts written for your exact situation?
The Offer Review takes your real offer — numbers, context, deadline — and returns a written negotiation strategy: what's negotiable, one recommended counter, these scripts adapted word-for-word to your situation, and fallback positions. Delivered within 48 hours.