Methodology

How 99market screens markets and calculates annualized return.

Read how 99market filters active Polymarket markets, calculates simple annualized return, scores rule quality and handles data freshness.

Updated July 15, 2026 · Educational content · Not financial advice

Market inclusion rules

  1. The market must be active, open, not archived and scheduled to end in the future.
  2. The highest-priced outcome must display between 98.0¢ and 99.5¢, inclusive.
  3. The market must report at least $1,000 in total volume.
  4. Duplicate market IDs are removed and qualifying markets are ranked by APR, then by end time.

The filter is a discovery screen, not an endorsement. It does not prove that the displayed price is executable, the implied probability is accurate or the market will resolve as expected.

APR formula

Simple return = (1 − purchase price) ÷ purchase price

APR = simple return ÷ (seconds to scheduled end ÷ 31,536,000)

99market uses simple annualization and assumes a $1 winning payout. It does not compound, estimate win probability or automatically deduct fees, slippage, taxes or settlement delay. APR can exceed 1,000% when a small potential return is divided by very little time.

Displayed market information

Each feed row shows the favored outcome, current cached price, simple APR, scheduled time remaining, reported volume, reported liquidity and potential gross profit per $100 at the cached price. The original Polymarket link is the source for current order-book data and complete resolution rules.

Rule-quality score

The score is a heuristic that considers resolution language, category, liquidity, volume, price and time. It can reward objective sources and measurable thresholds and flag subjective language, rumors or common category-specific edge cases. It is automated, may be incomplete and must not replace reading the market rules.

Data source and freshness

99market reads active markets from Polymarket's public Gamma API. A background refresh builds a cached snapshot, and pages render the last successful snapshot with a visible update time. The operational label indicates whether that cache is recent. Data can change after the timestamp, and API availability or classification errors can affect coverage.