Skip to main content
A strategy is a rule that can be tested against settled markets: buy one side of markets on a venue, in a category, priced in a 10-cent band, some days before they close. Its result is what those markets actually did. This page covers the strategy id, how the return and its range are computed, what gets a rule listed, and how open matches are found. You need it when reading GET /v1/insights/strategies or acting on a match.

Listing rules

The first rule reads: across both venues, Culture markets whose Yes was priced 80¢ to 90¢ one day before close resolved No 37% of the time. No cost 15¢ on average, so $100 spread across all 119 came back as $243, and the 95% range on that rate puts the return between $86 and $200.

The id

{venue}~{category}~{horizon}d~b{band}~{side}, for example kalshi~tech-and-science~7d~b1~yes. Ids are stable, so a rule can be bookmarked and re-read.

How returns are computed

A rule is one calibration band with a side attached. With the band’s average price p and the side’s win rate w:
  • Price. For Yes, p is the band’s avg_price_usd; for No, it is 1 − avg_price_usd. History prices markets at the daily midpoint, not at an ask.
  • Return. $100 spread evenly buys `100 / p` contracts; winners pay $1 each. return_per_100_usd = 100 × (w / p − 1), before fees.
  • Range. w is bounded at 95% by w ± 1.96 × √(w (1 − w) / n), with n the settled markets, then clamped to 0 and 1. return_low_usd and return_high_usd are the return at the two ends. Large samples give a narrow range; small samples give a wide one.
  • Horizons. A band has an edge on a horizon when its Yes rate differs from its average price by at least 2¢ in the side’s direction. horizons counts the horizons where it does.
A rule is listed only with at least 100 settled markets, a return of 3% or more, and an edge on at least one horizon. Bands below 10¢ and above 90¢ are left out: that far out the ask sits several times above the midpoint, so a return measured on a 3¢ price is not one anyone could have bought. Rules are ranked by return_low_usd, ties by markets, so a large sample with a steady edge outranks a lucky small one.

Markets that fit now

A match is a listed market in the latest graph run that:
  • is on the rule’s venue (all matches both) and whose event is in the rule’s category;
  • has a Yes ask at or above from_usd and below to_usd, whatever the side;
  • closes inside the horizon’s window, measured from now: within 2 days for the 1-day horizon, 4 to 11 days for 7, 20 to 45 days for 30;
  • has not started, for games;
  • has a No ask, for a No rule.
Each match carries price_usd, the ask for the rule’s side, and closes_at. Matches come tradeable first, then most traded, then soonest to close, and the liquidity floors apply unless include_thin=true. limit runs from 1 to 100, default 30. An id that is well-formed but has no rule behind it returns 404 with strategy_not_found.
Returns are historical and before fees, and use each band’s average midpoint rather than the ask you would pay. A market priced at 15¢ in a band whose average is 14.9¢ is not the average. History is not a forecast, and on the day this page was written no rule was listed for venue=polymarket alone: its settled history is still too small.
  • Calibration: the bands the rules come from.
  • Liquidity: the floors applied to matches.
  • Signals: the ticker mixes the strongest rule’s matches with moves and fills.
  • Strategy matches: watching a rule’s matches over time.