Łukasz Siwek
Why showing value before the paywall still wasn't enough
An in-house project at Brand24. End-to-end execution, from analysis and design to vibe-coded implementation and post-launch measurement. I agreed the scope with the product team, and a developer reviewed the code. Results are measured per upgrade gate in Heap.
Brand24's trial was full of upgrade messages. A blue bar at the top of the app. An orange button in the sidebar. Another blue box above Topic Analysis, AI Insights and the AI Brand Assistant. On some screens a trial user saw three upgrade CTAs before reading a single data point.
The numbers weren't bad. Trial-to-Paid was 29.8%, well above the 18.5% median in a 2025 SaaS benchmark. But the top quartile starts at 35%.
My hypothesis was simple. Trial-to-Paid doesn't grow when we say "Upgrade" more often. It grows when users feel the value first.
Most of these messages came before the value. On AI Insights, the banner said the feature was Pro-only before users read the report. On Topic Analysis it said "Feature available from the Pro plan. You can try it now during your trial." You have it, you don't, but you can try. The user hadn't clicked a single topic and already had to decode their plan.
Volume was the second problem. When upgrade is everywhere, it stops being a decision. It starts to look like an ad banner. It adds decision noise and lowers the premium feel of the plan it's selling.
We already had proof that the opposite works. On Demographics, the data sat behind a blur with one contextual message: "Ready to see the demographics behind your reach?" In February, 14% of all "Let's talk" requests to our advisors in the app came from that one message. I used it as the pattern for everything else. Value, then blur, then gate.
I removed the blue banners from the top of Topic Analysis, AI Insights and the AI Brand Assistant. Each gate moved below the content it was selling. The user sees the data first and the offer second.
Two smaller decisions made the gates feel like part of the product. Contextual CTAs became green, our primary button color, instead of orange. Orange stayed only on the Upgrade button in the navbar. The plan name moved under the button in small text: "Available from Pro plan." The user still learns what it costs. It just isn't the headline anymore.
The goal was fewer upgrade moments, each placed where it means something.
On Topic Analysis, users see the first topics with full data. Mentions, reach and sentiment, all real. Below that, the next rows fade into a blur. On top of the blur sits the gate: "Don't miss what matters. You're only seeing part of the picture."
This flips the message. The old banner said "this isn't for you." The blur says "there's more, and it's about your brand." The user has already seen what a topic looks like, so the hidden ones aren't abstract. The cost of not upgrading is visible on the screen.
This is a curiosity gap, the pull we feel toward information we know exists but can't see.
Topic Analysis turns about 4.5% of gate impressions into clicks. That's the lowest of the three gates. I'll come back to why.
During the trial, the AI Brand Assistant had no question limit. Our data showed that trial users rarely asked more than 5 or 6 questions anyway. So we set the limit at 4. It's low enough that people actually reach it. It's high enough that they've already got real answers about their brand.
After the fourth answer, the gate appears right under it: "You've used your 4 free questions." The CTA says "Unlock unlimited questions." Users who come back later see a "Welcome back" screen with their past chats and the same gate.
This gate has the highest click rate, about 17%. The reason is timing. The user is in the middle of a task. The assistant has just helped, and the next question is already in their head. The wall interrupts a need that is active right now.
AI Insights was the twist. The first version followed my own rule perfectly. No banner, a full report, and a gate at the bottom: "Don't miss what happens next. This is a complete report. Get continuous insights delivered every week."
It barely worked. About 2–3% of users who saw the gate clicked it. In six weeks, none of them paid.
The copy explains it. "This is a complete report." The user's need was fully met, and then we asked them to commit to future reports. There was nothing left to want right now.
My first guess was the fold. But Topic Analysis also sits below the fold and converted about twice as well. So the problem was the offer, not the position.
In the second version I blurred the Recommendations section. The heading stays visible. The content doesn't. The new gate says "See what's happening. Unlock what to do next." The report answers what is going on. The blur hides what to do about it.
After four months the click rate is about 7%, roughly 2.5 to 3 times higher. Nine users who clicked it later paid.
I built these gates myself. I wrote the changes with Cursor, shipped them through GitLab, and a developer reviewed the code. The whole loop from analysis to design, deploy and measurement stayed in one pair of hands. That's why the Insights fix reached production fast. Nobody had to hand anything over.
Measurement was part of the design from the start. Each gate fires its own impression event when it actually enters the viewport, using IntersectionObserver, not when the page loads. Without that, a gate below the fold looks like it fails, when most users simply never saw it. Every new version got new event names, so the old funnel stayed frozen as a clean baseline.
Early data needs patience. On day one, the new Insights gate showed a 22.5% click rate. Four months later it's about 7%. Both numbers are real. Only one is worth reporting.
Across the three live gates, 24 users clicked through and later paid.
| Gate | Live since | Gate impressions | Click rate | Paid users | Clicks that paid |
|---|---|---|---|---|---|
| AI Brand Assistant | Apr 28 | ~890 | ~17% | 8 | 5.3% |
| AI Insights (blur) | Jun 8 | ~2,500 | ~7% | 9 | 4.9% |
| AI Topic Analysis | May 13 | ~2,800 | ~4.5% | 7 | 5.6% |
| AI Insights (old) | Apr 27 to Jun 6 | ~620 | ~2–3% | 0 | 0% |
The most interesting number is the last column. About 5% of clicks turn into payments on every live gate. The better Insights gate didn't pull in lower-intent clicks. It just got more people to click. So the design work happens in one step, getting the click.
The click rates line up with how close each gate sits to an active need. The assistant interrupts a task in progress. Insights hides the next step of a report the user just read. Topic Analysis shows there's more of the same. The old Insights gate said there was nothing more. That's also my best answer to why Topic Analysis converts lowest.
This isn't a turnaround story. These are three messages, not a new pricing model, and they don't move overall Trial-to-Paid in a way I can measure. The biggest opportunity, the mentions limit, is still waiting. We skipped it on purpose. The limit mechanism itself wasn't working well at the time, and a good message on a broken mechanism would still be a bad gate.