Search for advice on declining a feature request and you get the same five tips on every page: understand the why behind the ask, offer an alternative, be transparent, never promise a timeline, and above all be kind about it. All true. All insufficient. Tone is what makes a no land gently — it is not what makes a no defensible. When a customer pushes back, and the ones who matter will, empathy has nothing left to say. Evidence does.
How do you say no to a feature request?
Say no by showing the request’s actual weight: how many accounts asked, how much revenue sits behind them, how it scores against strategy, and what it would displace. Deliver that evidence with the decline, and name the condition that would flip the answer. The customer may still be disappointed, but they are reading a decision, not a brush-off.

Why the standard advice runs out
Treating “no” as a communication-skills problem has an obvious appeal: phrasing is free and rewriting a sentence takes a minute. But it fails in both directions.
Externally, a customer who hears “we’ve decided not to prioritize this right now” with nothing behind it learns exactly one thing — that a person they cannot see made a call they cannot inspect. That is the version that damages trust, and no amount of warmth in the wording repairs it.
Internally, it fails earlier. If you cannot say what the request is worth, you did not actually make a decision — you had a preference and dressed it in process. The same gap shows up two weeks later when a founder asks why the loud account still doesn’t have their thing, and the honest answer is a shrug.
The fix is to do the arithmetic before the reply, not after the pushback.
The evidence sheet: build it before you answer
Five columns are enough. Fill them in for the request in front of you, and for the two or three items it would compete with.
- Accounts asking. Not raw request count — distinct accounts. Ten messages from one champion is one account.
- Revenue at stake. The MRR behind those accounts, split into what is at churn risk, what expansion is blocked, and what open pipeline is contingent. The full method for attaching a dollar figure to a roadmap item covers each pot.
- Strategic fit. Does the request pull toward the product you intend to build, or sideways into someone else’s category?
- What it displaces. The single most under-used column. Every yes is a no to something already ranked above it — name that thing explicitly.
- Verdict. Yes now, yes later scoped down, no with a workaround, or no permanently.
Here is an illustrative example — fictional accounts, invented numbers — showing what falls out when you fill it in.
| Request | Accounts asking | Revenue at stake | Strategic fit | What it displaces | Verdict |
|---|---|---|---|---|---|
| Bulk CSV export | 14 | $9,200 MRR | High — core workflow | Nothing; fits the open slot | Yes, this cycle |
| Per-field audit trail | 2 | $31,000 MRR (1 renewal at risk) | Medium — compliance path | 6 eng-weeks of SSO work | Yes, next cycle, scoped down |
| Gantt view | 23 | $4,100 MRR | Low — off-strategy | The audit trail | No, with a workaround |
| Two-way CRM sync | 1 | $2,300 MRR | Low — someone else’s category | A quarter of the roadmap | No, permanently |
Note what the table does that a sorted request list cannot. Gantt view is the most-requested item on the page and still loses, because the accounts asking are small and the work would push out a renewal worth seven times more. The audit trail has two requesters and wins. Same backlog, opposite order — and, critically, an order you can explain to both customers in a sentence.
The reason most teams skip this is not disagreement; it is that the columns live in different systems. Request volume sits in a feedback inbox, revenue in billing, deal stage in a CRM, usage signals in analytics. Okta’s SaaS-usage research puts the average company at 101 apps, and the evidence sheet needs four of them to agree. That join is what our Insights feed exists to do — one feedback stream across reviews, requests, surveys, designs, and support, linked to the features and accounts each piece came from, so request count and revenue at stake are already attached when the question arrives. A spreadsheet works too. What does not work is answering from memory.
If you want the score itself to be reproducible, feed those figures into a model rather than a gut read — our free RICE prioritization calculator forces you to show where each number came from, and the comparison of RICE, WSJF, and value-effort covers which frame suits which decision.
Three decline messages you can copy
Page-one advice describes these in the abstract. Here they are literally. Replace the bracketed parts; keep the structure.
1. No for now — it is real, it is ranked, it is not next.
Hi [name] — thanks for pushing on [request]. To make sure I have it right: the problem is [restate their problem, not their solution]. That’s a real gap and it’s on our list.
Being straight with you: it’s not in the next cycle. [N] other accounts have raised it, and the work sits behind [the thing it displaces], which a larger group is currently blocked on. Taking it now would push that out by roughly [duration].
What would change this: if [specific condition — the request count crosses N, your usage of X grows, the compliance deadline lands]. I’ll flag it here the moment it does. In the meantime, [workaround].
2. No — here is the workaround instead.
Hi [name] — short answer: we’re not planning to build [request].
The longer answer: [request] solves [problem] by [their approach], and we already cover [problem] through [existing capability]. Adding a second path to the same outcome costs us more than it gains you, and it would displace [the item it competes with].
Here’s how to get the outcome today: [concrete steps or export/API route]. If that falls short in a way I’m not seeing, tell me where it breaks — that’s the part I’d want to reconsider.
3. No, permanently.
Hi [name] — I want to give you a clear answer rather than a hopeful one: we’re not going to build [request], now or later. It sits outside what this product is for — [one sentence on the boundary].
I’d rather you solve it this quarter than wait on us. The realistic routes are [API / integration / partner / export], and I’m happy to help you scope [the closest one].
If that makes us the wrong fit for [their use case], I’d rather you know now.
Four rules hold across all three. Restate the problem in their words before you decline, so the no is visibly informed. Name the tradeoff rather than the winner — “a larger group is blocked on other work,” never “a bigger customer outranked you.” Name a condition that would change the answer, or admit there isn’t one. And never invent a timeline you have not committed capacity to; a date you miss costs more trust than the original no.
When saying no is the wrong call
The evidence sheet is a discipline, not an oracle. Four cases where the math says no and the right answer is still yes.
The small account is a canary. One request from a two-seat customer can be the first appearance of a need your next twenty deals will have. Revenue at stake measures who is here now, not who is arriving. If the requester looks like the segment you are moving toward, weight the signal, not the invoice.
The request is a symptom, and the real fix is cheap. People ask for solutions, not problems. A request for a bulk-edit screen is sometimes a two-line fix to a default that makes bulk editing necessary in the first place. Reading requests as evidence of a problem rather than a specification is the whole practice of turning feedback into the change it should drive — and it turns some expensive noes into cheap yeses.
The support cost is invisible in the table. A feature that ends a recurring support thread or a manual workaround your team performs weekly pays in time nobody columns. Count that load before declining something small and annoying.
It contradicts current revenue on purpose. A strategic bet scores near zero on accounts asking and revenue at stake, because today’s customers are not asking for it yet. The ranking exists to show you the cost you are accepting, not to veto the bet. Say no to the ranking out loud, with the reason recorded, rather than quietly ignoring it.
Make the no inspectable
The difference between a no that costs you a customer and a no that earns respect is not warmth. It is whether the answer can be inspected — how many accounts, how much revenue, what it displaces, what would change it. Build the sheet before you reply, hand the customer the same evidence you used internally, and keep a lane for the cases above where the number is not the whole story. Then check afterward whether the thing you shipped instead actually paid, so the next round of noes is calibrated on what the work returned rather than on last quarter’s instinct.
To see request volume, revenue, and the work they compete with already joined on one record, start a 14-day onboarding run on your own data.