Discover how Predexy detects, scores, and classifies cross-platform price discrepancies — and what each opportunity field tells you before you act.
When the same prediction market outcome trades at different prices on different platforms, you can theoretically buy where the price is low and sell where it is high, locking in a risk-free profit. Predexy continuously scans all seven integrated platforms and surfaces these discrepancies as structured, scored opportunities — giving you the intelligence to act, without executing any trades on your behalf.
Predexy is a market intelligence tool. It identifies and scores potential
arbitrage opportunities but does not execute trades, manage positions, or
move any funds. All execution decisions and actions are entirely your
responsibility.
Predexy detects two structural patterns:Direct arbitrage (direct) — The same Yes outcome is priced differently on two platforms. You buy Yes where it is cheap and sell Yes where it is expensive.Dutch-book arbitrage (dutch_book) — You buy Yes on one platform and No on another, and the combined cost of both is less than 1.00.Becauseoneofthemmustresolveto1.00, you are guaranteed a profit if both positions fill.The type field on every ArbitrageOpportunity object is either direct or dutch_book.
Each opportunity receives an arbitrage_score between 0 and 100. The score combines three dimensions:
Execution quality — spread magnitude, net profit after fees, fee efficiency across both legs
Market quality — liquidity depth and 24-hour trading volume on both sides
Temporal quality — time remaining until market expiry (longer runways score higher)
The score is designed to rank practically useful opportunities above ones that look attractive on paper but are undermined by thin liquidity, high fees, or imminent expiry.
Use min_score when querying the opportunities endpoint to filter out low-quality
signals before they reach your workflow. The default is 40 (informational and above).
Opportunities are not deleted when they age — they move through a state machine so you always know whether a signal is fresh, fading, or historical:
Status
Meaning
active
Recently re-observed in the latest scan cycle
stale
Missed one or more scan cycles; treat with caution
resolved
Hard-expired or missed the maximum consecutive miss threshold
The consecutive_misses counter tells you how many scan cycles have passed since the opportunity was last confirmed. Use stale_after_at and expire_after_at as the soft and hard lifecycle boundaries.