rivomarkets

Backtest a prediction market strategy.

We track every big trade on Polymarket and Kalshi, and how each one ended. Set your rules, see what they would have made, then run the ones that work on live markets.

Strategies

Not every whale is worth copying. Find out which ones are.

Everyone says follow the smart money. Nobody tells you which smart money. Big bets on heavy favourites win often and pay almost nothing. Longshots lose most of the time and pay enormously when they hit. Politics behaves nothing like sports.

A strategy settles it. Write the rule you want to test, run it over markets that have already resolved, and read the answer off the record: how often it won, and what it returned. Then leave the ones that work running on live markets, record every match, and receive a daily digest.

Longshot Hunters

Under 20¢ · over $10K · new positions only

Total return+67.5%+$25.9K on $45.6K staked105W · 345L23% win rate
16 May13 Aug

It lost 345 of 450 and still finished up, because the winners pay multiples. That is the kind of thing you only find out by scoring it. Staked at $100 a trade, paper results at the whale's entry price.

01

Write a rule

Size, price, category, league, keyword. Or start from one of four we built.

02

Rivo catches them

Every whale trade that fits is recorded automatically and included in your strategy digest.

03

Markets keep score

Each trade is marked won or lost when its market settles. Your return updates itself.

Prove it on the past. Trade it in the present.

This is why both halves matter. History is where you find out whether a rule is any good, because those markets already resolved and cannot be argued with. Live is where that answer is worth something, because a rule you trust becomes a live record with daily updates whenever trades fit it.

Last 90 days

Your rule, scored against markets that already closed. You know whether it works before you risk anything.

From now on

The same rule, running on open markets. Every match is recorded, and the daily digest keeps you updated.

Use a preset

Four strategies, ready to run. One click.

Build your own

Set the rule yourself. Takes a minute.

Follow a market

Search any market and add it directly.

No trading experience needed. Paper results, based on the whale's entry price.

Build a strategy
Connect your AI

Let Claude do the digging.

Plug Rivo into Claude or ChatGPT and just ask. It will test hundreds of rules against every big trade on Polymarket and Kalshi, check which ones actually held up, and tell you in a sentence. Takes a minute to set up and you never write a line of code.

claude rivo mcp

> Find me a rule that beat the market on longshots.

describe_universe({})

57,412 trades · 90 days · 53,208 settled · 5 categories · 2 platforms

sweep({ field: "priceMax", values: [0.10, 0.15, 0.20, 0.30] })

0.10: -44% 0.15: +45% 0.20: +60% 0.30: +28%

backtest({ criteria: { priceMax: 0.2, minAmountUsd: 10000 }, holdout: true })

in-sample +58% · out-of-sample +58% · holds: true

save_strategy({ name: "Longshot Hunters", backfill: true })

saved · 449 trades claimed · daily digest on

Longshots under 20¢ with over $10K behind them returned +58% across 449 settled trades, and held on data they were never tuned on. Saved as "Longshot Hunters". New matches will appear in the daily digest.

Real numbers from a real run. Paper results at $100 a trade.
01

Ask in plain English

"Find me a rule that beat the market on longshots." No syntax, no code.

02

It tests hundreds of rules

Your AI runs them against markets that already settled, in seconds, and throws away the ones that lost.

03

It tells you what held up

Including whether the rule still worked on data it was never tuned on. Then it can save the winner and track it live.

Or drive it yourself

MCP server · REST API

A remote MCP server, so it works with Claude, ChatGPT, Cursor and anything else that speaks the protocol. Nothing to install. There is a plain REST API underneath if you would rather script it.

https://api.rivo.markets/mcpDocs and setup
Get access

Included with a subscription.

Backtesting is standard practice in equities and futures and almost absent from prediction markets, even though prediction markets are unusually well suited to it. Every contract resolves to a known outcome at a known price, so there is no ambiguity about whether a position was right and no modelling required to value it at settlement. A contract either paid 1 or paid 0.

Why a live feed cannot answer the question

The common advice in prediction markets is to follow large traders. It is incomplete advice, because large traders do several different things and those things have very different economics.

A large position on a heavy favourite at 90 cents resolves correctly most of the time and returns about 11 cents on the dollar when it does. A large position on a longshot at 12 cents loses far more often than it wins and returns more than seven times the stake when it lands. One strategy can show a high win rate and lose money; the other can lose three quarters of its trades and finish well ahead. Watching either happen in a feed does not tell you which is which. Only scoring a large sample does.

How a backtest is constructed here

A strategy is a named rule. The rule can constrain the venue, the market category, the sports league, the trade size, the entry price band, the position type (a new position, an increase to an existing one, or a reversal), and free text matched against the market title. Specific markets can also be followed directly.

Every recorded trade that satisfies the rule is claimed by the strategy, along with the side, entry price and size as they stood when the trade printed. Snapshotting rather than re-deriving matters: it means a strategy's history stays reproducible and cannot be quietly rewritten by a later correction upstream.

When the underlying market resolves, each claimed trade is scored a win or a loss against the real outcome, and profit and loss is computed the way the contract actually settles. Trades in markets that are still open are priced against current odds and reported separately as unrealised, never blended into the settled figure.

Position sizing changes the answer

A backtest that sizes each position the way the original trader sized it is mostly a report on whichever single trade was largest. One eight-figure position will dominate several hundred ordinary ones, and two strategies sized that way cannot be meaningfully compared.

Rivo defaults to a flat stake per trade, which weights every signal in the rule equally and makes the resulting return a property of the rule rather than of one outlier. The original trader's size is still shown alongside, both because it is information about conviction and because it bounds what could realistically have been filled. A hypothetical stake far above what the original trader achieved is flagged, since the order book would not have absorbed it.

What a backtest here does not tell you

Results are paper results. They assume a fill at the price the observed trade printed at, and they exclude fees, slippage and the market impact of your own order. Thin markets are where these assumptions break down hardest, and thin markets are also where the largest percentage moves occur, so a rule that looks exceptional on longshots deserves more scepticism than the same rule on liquid markets.

A backtest is also a statement about a sample, not a law. A rule scored over a few dozen resolved trades is close to meaningless; the same rule over several hundred is worth something. Each strategy reports how many of its trades have actually settled for exactly that reason.

None of this is investment advice, and past results do not predict future ones.

Related reading

Frequently asked questions

What does it mean to backtest a prediction market strategy?

It means defining a rule for which trades you would have taken, applying that rule to markets that have already resolved, and measuring what the rule returned. Because the outcomes are known, the result is a measurement rather than a forecast. On Rivo the rule is written over whale trade activity on Polymarket and Kalshi: trade size, entry price, market category, position type, and keywords in the market name.

Where does the historical data come from?

Rivo records large trades on Polymarket and Kalshi as they print, storing the side, entry price and size at that moment. When the underlying market resolves, each trade is scored a win or a loss against the actual outcome. A backtest runs a rule over that recorded history, which currently covers a rolling 90-day window.

How is the return calculated?

Positions are priced the way prediction market contracts settle: a winning contract pays out at 1 and a losing contract pays 0. A stake of $100 at an entry price of 20 cents returns $400 profit on a win and loses $100 on a loss. You choose the stake, either a flat amount per trade, the size the original trader used, or a per-trade amount you set yourself.

Why does the stake matter?

Because sizing by the original trader's position makes a backtest a readout of whichever single trade was largest. A flat stake per trade weights every signal equally, which is what makes two strategies comparable. Rivo defaults to a flat $100 for that reason.

Can a strategy keep running after the backtest?

Yes, and that is the point of testing it. A strategy runs forward on live markets at the same time, claiming new trades that fit the rule as they print, pricing open positions against current odds, and scoring them as those markets resolve. Alerts fire on Telegram, web push and an in-app inbox.

Are the results real money results?

No. They are paper results that assume a fill at the price the original trade printed at, with no fees or slippage. A large stake on a thin market would not have filled at that price in reality, which is why the size the original trader achieved is shown next to your hypothetical stake.