Case study · 05 / 06 · 20258 min read
  • Monetization
  • Systems design
  • Edge cases

Couchsurfing Freemium

What do you gate when the product is people talking to each other?

Where
Couchsurfing. The free tier for members in countries where membership is optional.
Role
Sole designer. Model comparison, decision tree, inbox and notification design, engineering handoff
Seven phones on cream: the contacts sync ask, a paywall cut off at the top, only its small print and a restore line, the offer of three more free views for three profile details, the membership paywall, the inbox with two free views left, the inbox with the views spent and a chat locked, and one bled off the bottom edge, showing only a close and a chat bubble
Two views, then a gate

WithheldFree-tier conversion magnitudes, and the share of users who earn views versus pay, are under my confidentiality obligations.This study is the model, the rules and the shipped screens.

At a glance

  1. The problem

    In countries where membership is optional the app still has to give free users a reason to pay, and the conversation is the thing people pay for. Gating it gates the product, and leaving it open gives nobody a reason to convert.

  2. What I did

    Compared three gating models, dropped the reverse trial first, and shipped the one that meters replies at two views every 48 hours while exempting hosts and friends, with twelve decision points engineering built from.

  3. What happened

    Shipped and stayed up. Members in free countries paid, where before a membership bought them nothing. The size stays with the company.

01Scope

  • Free-country members paid.

    Direction only

    The onboarding sheet for free countries and the gate shipped together as one program, so what each did on its own cannot be split.

  • 3

    gating models compared

  • 12

    decision points in the shipped flow

  • 2

    views every 48 hours. The one number

02The problem

Every model I looked at was somewhere on the line between gating the conversation and leaving it open.

The goal I wrote on the board was to balance conversion opportunity (free users actually hitting paywalls), paid user experience (not frustrating the people already paying), and simplicity from a technical perspective.

03What I dropped

The reverse trial, before I got to the second column.

  • A reverse trial: full access for 48 hours, then a countdown and a push telling you your time is running outit works, and it runs on loss aversion, the mechanic I had just spent the paywall research (opens in a new tab) arguing against. An opt-out trial with different branding.
  • A blurred preview of the locked replythe sender's name did the job on its own, and the inbox runs on Stream Chat's built-in threads, which would not let me open a thread and blur one message inside it.

04Three models

  1. 01Restrict only communication requests. Better for paid users, who never hit a dead end reaching out to a free user. The least paywall exposure, so the lowest conversion pressure.
  2. 02Restrict all message responses. The most scalable and conversion-oriented, and the easiest to build. The problem is that a paid host accepts a free surfer's stay and then cannot get an answer back. That silences the most valuable interaction on the platform.
  3. 03Restrict responses, exempt hosts and friends. It monetizes surfers and protects hosts, and conversations stay on the platform. The cost is role and timestamp logic, and it is harder to explain why one chat is gated and another is not.

Model 3 shipped, on my pitch. The reply is the first point where a member gets something out of the app. The model that gates requests charges before a member has got anything, the model that gates every reply silences the hosts, and my bet was that gating at the reply with hosts and friends off it would convert best of the three. Exempting hosts and friends protects the interactions the community actually runs on while still putting paywall pressure on surfers, and a host giving someone a place to stay is providing the platform's value, so charging them to reply to a guest is the wrong side of the transaction to charge.

05The rules

  1. 01Sending is unlimited. Requests, messages, all of it.
  2. 02Viewing a response costs one view. Two views every 48 hours.
  3. 03A message request is previewed for free. Replies after it count.
  4. 04Accept or decline on a stay counts as a response.
  5. 05Chats with an accepted stay are open until the stay ends.
  6. 06Friends made before the first message are open. Friends made mid-conversation open the chat from then on, a later change: the first version kept those chats metered, for fear of friending as a way round the wall and to keep the launch simple, and on reflection the friendship is the point.
  7. 07An empty allotment unlocks one offer: sync contacts for two more views. Once. Calendar and location were drawn as alternatives and did not ship.
  8. 08After that, complete your profile for two more. Once.
  9. 09Rewards are only offered when the allotment is empty, so nobody banks views.

Neither two nor forty-eight came from research. Most members send several requests, and there is no value in a request until a reply comes back, so sending stays free and the reply is where the meter sits. Two is a starting threshold, chosen low on purpose: raise it later and people are pleased, start high and cut it and people are angry. Forty-eight hours is the same bet from the other side, a baseline on the long side, so that the one change we might ever make, forty-eight down to twenty-four, would be the one people thank you for. Both were set to move one way only.

The reward pushes the thing that gets the member what they came for

Nobody is stuck, which is the difference from the reverse trial I dropped. Anyone unwilling to share their contacts, and some people flatly were, has two other ways to the same reply: wait the forty-eight hours, or pay. The contacts themselves had a product reason. They are the start of showing a member who they already know in a place, and a footing for a share-with-a-friend reward that did not ship. The second offer, profile completeness, was my pitch and the one the room liked most. The more a profile says, the more hosts read it. The more they read, the more often the request and the stay are accepted. The reward pushes the thing that gets the member what they came for. Either offer can be gamed, by the same small share that would game the friend rule.

Someone who friend-requests every host who replies is gaming it, and the share who would is small next to the share who just want the reply

The friend rule is the one I expected to argue about, and it is the one that moved. The first version kept the timestamp check, so a friend added after the first message did not open the chat, because I read friending mid-conversation as the way round the wall. The shipped version opens it, because a friendship needs the other person to accept it, and a host who accepts a stranger's friend request has made the connection the model exists to protect. Someone who friend-requests every host who replies is gaming it, and the share who would is small next to the share who just want the reply. It also settles what happens after a stay: reconnecting with a host costs nothing if the two added each other along the way, and most stays that go well end with a friend. If they did not, the next reply costs a view like any other.

06Edge cases that shaped it

  1. 01A paid user requests a stay from a free user, the free user accepts, then cannot read the paid user's follow up. Rule 5 covers it.
  2. 02Someone completes their profile before the offer ever shows. They get the two views anyway, with a line saying so: the reward is for the thing done, not for doing it on cue.
  3. 03A surfer sends three requests. One declines, one accepts, one is pending. The pending one is locked, the accepted one is open, and the decline used a view.
  4. 04A declined stay is not refunded, because there is nothing to refund. A host who declines without writing sends no message, so no view is spent. A host who accepts the chat and then declines the stay has still written back, and that reply carries value: hosts talk through the city, recommend places, introduce someone who can host. The reply is what the meter charges for, whichever way the stay goes. The feedback monitor picked up no complaint about it. It picked up urgency, which was the point, with three ways out: pay, wait the forty-eight hours, or take the offer.
  5. 05Syncing contacts and immediately completing a profile does not earn four views. The second reward is not offered until the first two are spent.
  6. 06Making a new account to reset the counter is possible but slow, and the profile reward resets with it, so it is not really free.

07The flow

The Model 3 decision tree redrawn: from onboarding and the paywall, through the country check, the chat-type check with friend, request and accepted-stay exemptions, the two-views-per-48-hours counter, the paywall modal, and the sync and profile-completion rewards
Twelve decision points from onboarding to the paywall trigger, redrawn from the flow engineering built from. The logic is the flow's, in plainer words than the board's. The sticky notes did not make the cut.

08What shipped

The chat inbox, two states: the counter card reading Unlock Unlimited Views, you have 2 free views left, and the same inbox after the views are spent, the card now naming the reset date and the chat row locked with Tap to unlock 1 new messages
Left, two views left. Right, the allotment spent: the card names the next reset and the chat row locks, sender still visible.

A card at the top of the inbox. Unlock Unlimited Views. You've got 2 free views left! Under it, locked chats still show who wrote, and the reply itself stays hidden. Unlike the reverse trial, which took access away on a timer and pushed to say so, the card names when two more views arrive. That is the rule stated plainly, and it is the same every forty-eight hours. Nothing is taken away that the member already had. The push that fires when the allotment refreshes says the same thing in the app's normal voice.

Explainability is this model's cost, and the screen does not pay it. The paywall a free member meets at the gate does not say which reply they were reaching for or why that chat is the one that locked, and I wanted it to. That is the gap I would close before I touched the threshold.

09The impact

Before this program a member in a free country could buy a membership, but it bought them nothing: it was pitched as a donation, with no feature behind it, and free-country conversion was as good as none. After it, people paid for something, through two doors that shipped together: the membership sheet in onboarding, with its Not Now, which every free-country member meets first, and the gate in the inbox, which comes later and raises a paywall when a free member reaches for a reply. It did that without the loss-aversion tricks the benchmark models run on, and it kept hosts and friends off the wall.

Under NDA

Free-tier conversion and the share of users who earn views versus pay are under my confidentiality obligations. The model, why it shipped and what I would measure next are all things I can walk through.

The rules, the edge cases and the shipped screens are above.

Corrections & caveats

Variables
The onboarding sheet for free countries and the gate shipped together as one program, so what each did on its own cannot be split.
Cohort
Live from mid 2025.
Confidence
Free-country members paid, through the sheet and the gate together. Direction only.
Not measured
  • The onboarding sheet for free countries and the gate shipped together as one program, so the free-country direction is the program's; what the sheet did on its own and what the gate did on its own, I cannot split. The free month for lapsed members came about two months later and is not in this read.
Confidential
Magnitudes withheld. Direction stated.

10What I would measure next

  • Days to convertby cohortHow long the free tier holds someone before they pay, and whether that changes by who they message.
  • Retention after paying30 days onSomeone who pays to read one reply and leaves is probably a refund.
  • Converting triggerthird view, sync, profileAt the gate, three things can send someone to the paywall. Which of the three converts best is the question.
  • Support loadtickets per weekLosing access to a chat generates tickets, and I would count them.