When to show an upgrade prompt, and when to wait
Growth without waiting on devExplainer4 min readMiniwall team
Ask for the upgrade right after the person gets something useful out of your product, or when they hit a limit they can see. Don't ask before either has happened, and don't ask again and again after they've said no. That's an opinion, not a finding, and the rest of this post is the reasoning.
The sign-up screen asks too early
Picture someone who just created an account. They don't know yet whether your product does what they need. A price on that screen asks them to pay for a promise.
Sometimes it's still the right call. If people arrive already knowing exactly what they want (a paid-only tool, a trial they chose on purpose), a plan screen at sign-up is just the next step. But for a product with a free tier, we'd start later, and let the first useful result do some of the talking.
Three moments worth waiting for
After the first useful result. They exported the file, finished the first project, got the answer. The product has just earned a little trust. A prompt here can say what they did and what the paid plan adds to it, which is easier to write well than a generic one.
When they hit a limit. The free plan allows three projects and they're making a fourth. They have a reason to listen, and the prompt answers a question they already have. Say plainly what the limit is and what lifts it. If they can close it and carry on with what they have, let them.
On a later visit. Someone who comes back a few days after signing up is telling you something. A prompt then rests on evidence that the product is being used. It's weaker than a limit and stronger than a cold ask.
| Moment | What the person just did | What the prompt can say |
|---|---|---|
| First useful result | Got value for the first time | What they made, and what paid adds to it |
| A limit | Hit something the free plan won't do | What the limit is and what lifts it |
| A return visit | Came back on their own | What they've been using, and what's next |
Swipe sideways to see every column.
We haven't tested any of these against each other. They're the three we'd try first, in roughly this order, and you'd know better than we would which fits your product.
Don't interrupt the middle of something
Whatever moment you choose, ask between tasks and not during one. A popup that lands while someone is typing, or halfway through a form, costs you more than the missed upsell: they lose their place, and the first thing they associate with your prompt is annoyance.
Timers are the usual culprit. "Show after 10 seconds" is easy to set up and has no idea what the person is doing at second ten. Use it when the page really is just something to read, like a pricing page. Elsewhere, tie the prompt to something the person did.
How often to ask
Once is fine to start. If they dismiss it, treat that as an answer for a while. We'd start with a small number of asks per visit (one), a gap of days between asks, and a firm stop for anyone who has explicitly said no more than a couple of times. Those are starting points to adjust, not benchmarks.
Frequency is also a budget. If your tool bills by views, a prompt that shows on every page load spends it on the same person repeatedly. Cap it for that reason too.
And one thing no frequency rule fixes: if the prompt has no clear way to close it, you're blocking the product, not asking. Make closing obvious.
Log shown and clicked, separately
This part is dull and it matters most. Record two things: that the prompt was shown, and that the person acted on it. Not one combined number.
Here's why. Suppose a prompt gets few purchases. That could mean the screen is weak. It could also mean almost nobody saw it, because the trigger fires on a page few people reach or a frequency rule skips it. Those need opposite fixes, and a single "conversions" number can't tell them apart. Shown tells you the reach. Clicked divided by shown tells you whether the screen does its job when people do see it.
Also log when your own rules chose not to show it, and why. A prompt that was suppressed isn't a prompt that failed, and it's easy to confuse the two later.
Before you change the timing, write down which number should move and by when. We wrote about doing that, and about how little a small audience can tell you, in A/B testing with little traffic.
When to ignore all this
If your product has no free tier, there's nothing to wait for; the plan screen belongs at the start. And if you're a small team with a handful of users a week, you'll learn more from watching three people use the product than from tuning timing rules.
Sources
- Miniwall docs, Show a screen automatically (triggers, once per session, exit intent) (opens in a new tab)docs.miniwall.app · accessed
- Miniwall docs, Events and privacy (view event, frequency counters) (opens in a new tab)docs.miniwall.app · accessed


