OnchainSuite · onchainsuite.com/retention-playbook/prediction-markets

Prediction market growth and retention strategy

How email and in-app keep a forecaster coming back after the market they came for has resolved.

Prediction markets win users around events and lose them in between. After the 2024 US election, Polymarket's open interest fell from $510M to $120M in a month, according to The Block, while its monthly traders kept rising. People stayed curious, and the money left.

Whether someone comes back is decided by their first result, and the riskiest result is a loss. In Galaxy's study of 2.9 million retail accounts, 15.2% stopped trading within 30 days of a loss, against 6.1% after a win. The first position, the first result, a disputed market and the gap between events are where this strategy does its work.

It has four parts: campaigns and the newsletter, An automatic sequence of messages that starts from a user's action and stops when they act, lifecycle, and A single message sent the same day something happens to a user's account or position. Email and in-app are the channels that carry them. Every message goes to a A saved group of users who share something, such as "deposited this month" and carries one link, and promotion only reaches people who agreed to it.

What we never send

A prediction market sits close to gambling rules, especially in the UK. In February 2026 the Gambling Commission set out how it sees prediction markets, and in April the ASA ruled against an ad that made light of betting again after a loss. So every message is written as if the regulator will read it.

We never say "win it back", "get even" or "you're due", and nothing nudges a user after a loss. We never call a market risk-free, guaranteed, free money or a big payout. Winnings that do not expire are never written as if they do, and there is no urgency such as "before the odds move". Readers in the UK never get skill-not-gambling framing, and nobody blocked or self-excluded gets a promotion.

Written as if the regulator will read it

  • Never "win it back", "get even" or "you're due", and nothing nudges a user after a loss
  • No market is risk-free, guaranteed, free money or a big payout
  • Winnings that do not expire are never written as if they do, and there is no false urgency
  • No skill-not-gambling framing in the UK, and no promotion to anyone blocked or self-excluded

What we do send is the record: the result, the payout and the date, as the market settled them. A market's real close time is the only deadline we mention, dispute timelines come from the resolution source, and we say who can trade a market before inviting anyone in.

Campaigns and the newsletter

Campaigns follow the calendar, and only go to people who agreed to news and who traded the topic or asked to hear about it. When an event opens, anyone who traded the topic in the last 90 days, or follows it, hears about the flagship market, its close time and how it resolves. In the week its markets resolve, holders hear when each one resolves, the resolution source, and what happens if it is disputed. Afterwards, everyone who traded the event gets a recap of their markets, their results and the next event in the same topic.

The recap matters most, because attention fades fast. The day after the 2024 US election, DL News found Polymarket's volume fell 84% and its daily users 53%. A recap that names the next event, sent while the last one is fresh, is how a one-off visit becomes a habit.

A recap that names the next event, sent while the last one is fresh, is how a one-off visit becomes a habit.

The newsletter is one email a week to readers who confirmed their address and opted in to news: 350 to 450 words with one main button. It opens with the week in a line, covering markets resolved, markets opening and the biggest moves, with the date we checked. Then three markets closing this week with their close times and how they resolve, three new markets in the topics this reader trades, one short explainer on how resolution works, and the fixed dates in the next four weeks.

The blocks stay the same every week, so one person can build it in two hours, and it goes to engaged readers first. Polymarket's own newsletter has more than 90,000 subscribers, so readers clearly want the context around the odds. The explainer also answers the loudest complaint, how markets resolve, before it turns into a support ticket.

Loops

A An automatic sequence of messages that starts from a user's action and stops when they act is a sequence of messages to one user. It starts from something they did, or did not do, and it stops the moment they take the step it asks for, so nobody is chased for something they already did. There is one Loop for each move between stages, and they run in this order.

The welcome Loop starts at capture, the moment someone gives an email address. One email confirms the address with a single click and says exactly what they agreed to receive: results and account messages, or those plus news, depending on the form. Once they confirm, a second message shows them three open markets in topics they browsed. It stops on confirmation, and nothing else goes to an address that has not confirmed. Those first sends also give a new sending domain its track record.

The first-position Loop starts when someone has deposited and not picked a market within a day, which usually means they have not found one they care about yet. While they are in the app, we show them three open markets in topics they have browsed. If 24 hours pass with no position, one email explains how a market works, from position to payout. Both stop when they open a position.

The second-position Loop starts when someone has held one position and done nothing for 14 days, because most users arrive for one event. It sends the upcoming markets in the same topic, with their close dates, and stops when they open a new position. Alongside it, when a market opens in a topic they have traded, they hear about it in one line on why it matters, at most once a day.

The slipping Loop starts when a user moves to At risk: the positions they open fall to half their own average. They get one check-in about the next dated event in a topic they traded, and it stops when they open a position.

The last Loop is one message. After 60 days quiet, a Dormant user gets one good reason to come back. Then we leave them alone.

Each message in a Loop has one owner channel and a fallback: in-app owns the moment a user is in the app, email owns the moment they are away from it, and a fallback only fires if the first went unread. A The most messages one person can get in a period, across email and in-app counts every channel together. A single message sent the same day something happens to a user's account or position are the one exception, and always send.

How every Loop behaves

  1. It starts from something a user did, or did not do
  2. It stops the moment they take the step it asks for
  3. One owner channel, one fallback, and one frequency cap across both
  4. Retention triggers are the one exception, and always send

Lifecycle

Every user sits in one of six stages, the same six on every strategy we run: New, Activated, Engaged, At risk, Dormant and Won back. The stage is worked out from what they do in the market, never set by hand, and it is read by size as well as by count. Between January and June 2025, The Block found Polymarket's active traders fell 47.6% while the average position per account rose from $2.7K to $4.8K: fewer people putting in more each, which a single blended number would have hidden. The lifecycle moves on patterns. A single message sent the same day something happens to a user's account or position, below, fire on single events, and the two never overlap.

Fewer people putting in more each, which a single blended number would have hidden.

A lifecycle starts at a Any place a person hands over their email address, and each capture point sets what we are allowed to send. A wallet that connects is a contact with no email, reached in-app only. An email given at sign-up to get results carries service consent: results, the welcome An automatic sequence of messages that starts from a user's action and stops when they act and messages about their own positions. An email from the newsletter form, or a sign-up whose consent line says so, carries news consent as well: campaigns and the letter. An embedded wallet sign-in through Privy or Magic gives both a wallet and an email, with whatever the sign-in page promised. A list the venue already holds carries whatever those people originally agreed to, and where nobody can show what that was, the first message asks. Two tiers, service and news, and a user on service alone never sees a campaign.

The six stages of a forecaster
  • New: deposited, no position
  • Activated: first position
  • Engaged: positions across two or more cycles
  • At risk: positions at half their own average
  • Dormant: 60 days, no position
  • Won back: a position again, watched 30 days

New is deposited and no position; the first-position Loop moves them on. Activated is the first position; the second-position Loop moves them on. Engaged is a user with positions across two or more resolution cycles, and they get campaigns and the letter rather than a Loop. At risk is one rule on every strategy: activity at half the user's own 30-day average, which here means the positions they open. It needs a baseline, so it applies from Engaged onward, and the slipping Loop answers it. Dormant is 60 days without a position, one message, then rest. Won back is a user who opened a position again from At risk or Dormant. They are watched for 30 days, then placed as Engaged or At risk like anyone else, and they never go back through the welcome.

The one rule for At risk

Activity at half the user's own 30-day average, which here means the positions they open. It needs a baseline, so it applies from Engaged onward, and the slipping Loop answers it.

A lifecycle also has exit points, and the rule that keeps them straight is that marketing consent can be withdrawn while service messages about a position the user still holds continue until it settles. An unsubscribe stops campaigns, the letter and every Loop; the result of a market they hold still arrives. A spam complaint stops everything by email that day, and a hard bounce closes the email channel; both leave in-app, service only. Self-exclusion and a deposit limit stop every promotional message the same day and never start one; they come from your account system as a A rule that stops the wrong person receiving a message, such as someone who already did the thing it asks for signal. A user in a blocked country never enters promotion. A user whose last market has settled and who holds nothing is not an exit: they are At risk or Dormant, and get the one message and the rest. Rest itself is a state we count. An account closed, or an erasure request, ends everything, the record included.

Take Ada. She signs up during a football final with her email, confirms it with one click, and the next day takes one of the three football markets we showed her. On day three it resolves and she has lost. She gets the result, her balance and a link to deposit limits, and nothing else. A week later a new market opens in the league she traded, and she hears about it in one line. By day 24 she has done nothing since, so the second-position Loop sends the next fixtures with their close dates. She takes a position, and she is Activated again on her way to Engaged.

Ada, from sign-up to coming back
  • Day 0: Signs up during a final, confirms her email
  • Day 1: Takes one football market
  • Day 3: Loses; gets the result and limits, nothing else
  • Day 10: Hears about a new market in her league
  • Day 24: Back with the next fixtures

Retention triggers

A A single message sent the same day something happens to a user's account or position is a single message sent the same day something happens to a user's positions. It comes from the market, never from a calendar, it carries no offer and no forecast, and it always sends, whatever the The most messages one person can get in a period, across email and in-app and whether or not they take news. It explains, then stops.

A market resolving is when a user finds out what this was like. If they won, they get the result and one button to claim, in-app if they are active and by email if it is still unread two hours later. If the winnings are unclaimed after 48 hours, a reminder gives the amount and says plainly that it does not expire, because on Polymarket it never does.

If they lost, they get an email with the result and their balance, and a link to deposit limits and account tools. Nothing in it invites a new position. Users leave at two and a half times the rate after a loss, so this is the message that matters most, and the one a regulator would look at first. A clear, factual result keeps their trust without crossing that line.

Users leave at two and a half times the rate after a loss, so this is the message that matters most, and the one a regulator would look at first.

Market resolved, user lost, email
Subject
Your market resolved
Preview
The result, your balance, and your account tools

The market "Will the Fed cut rates in December?" resolved NO.

Your position in it has closed. Your balance is $180.

If you want to, you can set a deposit limit or take a break from your account settings at any time.

See my account

On Polymarket, results settle through UMA. An undisputed result settles after a two-hour challenge window, and a disputed one takes four to six days. Without a message, a user holding a disputed market just sees their money stuck. So when a market they hold is disputed, they get one email: what a dispute is, how long reviews usually take, and where to follow it, with a banner on the market page as the fallback. The result follows the day it settles. When a market's rules are clarified, holders get the change in plain words.

How a disputed result settles on Polymarket
  • Market closes
  • Result proposed: through UMA
  • Two-hour window: anyone can challenge
  • Under review: 4 to 6 days, one email
  • Settles: result the same day

How we know it worked

We count what users do. Opens stopped meaning much once Apple Mail began opening emails by itself, so a message is judged by the position, the claim or the return that follows it. Every always-on An automatic sequence of messages that starts from a user's action and stops when they act keeps a A small group left out of a Loop on purpose, to show what the messages caused, a small group left out on purpose, so we can show what the messages caused.

A message is judged by the position, the claim or the return that follows it, never by an open.

Every Monday, a stage report shows how many users sit at each stage, by count and by position size, and where most of them are stuck. That stage is where the next week's effort goes. Under it, the numbers we watch are funded users who open a first position within 7 days, users who open a new position within 14 days of their first market resolving, the return rate after a first loss against the holdout over 30 days, winnings claimed within 48 hours of the reminder, and users active across two or more resolution cycles in 60 days. Unsubscribes, complaints and bounces are checked on every send, with the complaint rate held under the 0.3% Gmail and Yahoo allow. Targets are set once the first month gives us a baseline.

Running it on OnchainSuite

Every An automatic sequence of messages that starts from a user's action and stops when they act and every The action that starts a Loop, such as a withdrawal above starts from something a wallet did, or something that happened to a market it holds. On Polymarket, positions are ERC-1155 tokens on Polygon and results settle through UMA on-chain, so OnchainSuite watches both directly. On an off-chain venue, your backend sends the same events through the Automation Trigger API, and topic follows come from your app through the OnchainSuite SDK. The stages are computed from the same events, and the stage report reads from the same data.

A mainstream email tool could run the event campaigns and the weekly letter. It cannot see a market resolve or a dispute open, so the Loops, the stages and the A single message sent the same day something happens to a user's account or position would have to go.

What we need from you

Six answers before the first send. Where your email addresses come from and what people agreed to receive, which decides who is on service and who is on news from day one. Which countries can trade, and how that is enforced at sign-up, so nothing reaches someone who cannot use the market. How you record self-exclusion and deposit limits, because they stop every promotional message the same day.

Then whether settlement happens on-chain or your backend can send it, which decides whether we watch the chain or take events through the API. The domain the email sends from and who manages its DNS, because SPF, DKIM and DMARC decide between inbox and spam. And who approves each message, and whose voice it goes out in.