rivomarkets

Give your bot a record you can inspect

Test filters against recorded Polymarket and Kalshi activity, inspect settled and open results separately, then keep the strongest ideas running on paper as new qualifying trades arrive.

How a Rivo bot makes its trades

  1. 1You pick who or what the bot trades

    Copy a trader you select or build your own signal. Choose the venue and category. Set the trade size and entry price range. Narrow the signal with keywords or specific markets.

  2. 2Test the idea at your size

    Set a fixed stake or a percentage of the source trade with a dollar cap. Review historical paper returns and the trades behind them. Signal backtests include a holdout period to help you assess the result.

  3. 3Watch the bot work on paper

    Run your bot against new matching activity with virtual money. Follow its profit curve and open positions. Inspect each settled result from the bot dashboard.

  4. 4Put your account and limits in control

    Choose live execution on a supported venue when you are ready. Connect your account and set your spending limits. Rivo checks each entry and logs the outcome. You can pause the bot from its detail view.

Build a bot

Build the signal you want to follow. Let the record guide your next move.

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 signal bot settles it. Write the signal 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.

Write a signal

Choose the category and entry price. Set the source trade size. Start with a template or build from scratch.

Rivo catches them

Rivo records matching trades. Choose daily summaries or every-trade updates.

Markets keep score

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

Test the history. Track the next trade.

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

Last 90 days

Your signal, scored against markets that already closed. Inspect the result before you decide how to run it.

From now on

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

Use a template

Four signal bots, ready to run. One click.

Build your own

Set the signal 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 bot

Let Claude do the digging.

Plug Rivo into Claude or ChatGPT and just ask. It will test hundreds of rules against every big trade across Polymarket, Polymarket US, Kalshi, and Gemini, 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.

Ask in plain English

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

It tests hundreds of rules

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

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.

A live feed cannot tell you what wins

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 Rivo builds a backtest

A strategy is a named rule. The signal 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 signal 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 signal equally and makes the resulting return a property of the signal 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 cannot 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 signal that looks exceptional on longshots deserves more scepticism than the same filter on liquid markets.

A backtest is also a statement about a sample, not a law. A signal scored over a few dozen resolved trades is close to meaningless; the same filter 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 signal for which trades you would have taken, applying that filter to markets that have already resolved, and measuring what the signal returned. Because the outcomes are known, the result is a measurement rather than a forecast. On Rivo the signal 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 signal 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. A strategy can continue on paper as new qualifying trades arrive, mark open positions against current odds, and score them when markets resolve. Choose daily summaries or per-trade updates while the bot records matching activity. A signal with a paper record behind it can then be switched to supported live execution through your own connected account and the caps you set.

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.