Methodology

How Orrery computes everything

Every signal rule, every calibration tier, every formula. Read this once and you can predict exactly what Orrery will say about any market.

How to read a market on Orrery

The five-step decision loop the rest of the site is built around.

  1. 1
    Pick a market

    Open the Markets scanner at /scanner or pick a category at /category/{slug}. The scanner exposes filterable columns: 1h/24h/7d change, volume, liquidity, spread, end-date, resolution risk.

  2. 2
    Read the per-market terminal

    Open the market detail page. You'll see a 7-day probability chart, recent trades scoped to this market, top YES/NO holders, all firing signals (with Evidence / Backtest / Action tiers), the extracted resolution source, and an AI-generated movement explanation.

  3. 3
    Verify the source

    Read the Resolution block. It shows the extracted source, its type, confidence, and the verbatim market description from Polymarket. If the source is `ambiguous` or UMA is in `proposed/disputed/challenged`, treat any move as a signal of dispute, not new information.

  4. 4
    Read the calibration tiers

    Every active signal shows Evidence (live confidence), Backtest (historical edge), and Action. If Action is `Watch only` or `Verify source`, do not treat the signal as a recommendation.

  5. 5
    Cite

    Use the Markdown variant at /markets/{slug}/markdown for citation. It returns a single, timestamped artifact with a Cite-this stanza ready to paste.

Frequently asked

How does Orrery compute a momentum signal?

Momentum fires when the 1-hour and 24-hour price changes share the same sign and the 1-hour move is at least 1pp. Confidence is min(|Δ1h| × 8, 0.95) and is multiplied by a liquidity factor (capped at 1) so a fast move on a thin market gets dampened. Output is a deterministic { kind: 'momentum', confidence ∈ [0, 0.95], factors, message } record.

How does Orrery compute a divergence signal?

Divergence fires when the 1-hour and 24-hour price changes have opposite signs AND |Δ1h| ≥ 1pp AND |Δ24h| ≥ 1pp. Confidence is min(|Δ1h| × 6, 0.85) × liquidity factor. The signal describes that the short-term move is running counter to the 24h trend — it does not predict reversion.

How does Orrery compute a flow signal?

Flow fires when ≥ 3 trades ≥ $5,000 hit the same market within the recent window AND ≥ 70% of them are on the same outcome. Confidence is min((sameOutcomeFraction − 0.5) × 2 × Math.log10(uniqueWallets + 1), 0.9). The factors expose buys count, unique wallets, and net USD.

How does Orrery compute resolution_risk?

Resolution-risk fires on three independent triggers, taking the max confidence across them: (1) UMA optimistic oracle is in `proposed`, `disputed`, or `challenged` state — confidence 0.8; (2) the resolution source is missing or matches the `ambiguous` extractor pattern — confidence 0.6; (3) market endDate is within 24 hours but probability is between 5% and 95% (i.e. the market hasn't yet decided despite imminent settlement) — confidence 0.5.

What does the Backtest tier mean?

Backtest is the historical edge from a 1-month replay over Polymarket's CLOB price history. We run the same deterministic rules forward across recorded data and measure win rate + average post-spread move at 1h, 6h, and 24h. Tiers: `strong` if win rate > 60% on ≥ 50 samples; `mixed` if win rate is 50–60%; `weak` if < 50%; `forward-only` if we don't have a snapshot store yet (currently flow / resolution_risk / news_lag).

What is the Edge Score?

Edge Score (used on /opportunities) ranks markets by composite signal quality. Formula: `signal_confidence × 100 + multi_kind_bonus + log10(liquidity) × 5 − spread_pct × 50 − resolution_risk × 30`. Multi-kind bonus is +20 if two non-resolution-risk signals fire on the same market. The score is normalised to 0..100 within the result set.

How does Orrery classify market categories?

Polymarket's `category` field is `Other` for many markets. Orrery runs a deterministic keyword + tag classifier on top: a per-category regex over the question text, the description, and the event tags, applied in priority order — Crypto, AI, Macro, Geopolitics, Politics, Sports, Weather, Entertainment, Science, Business, Tech, then `Other`. Specific categories are evaluated before broader ones to avoid Macro swallowing crypto markets.

How does Orrery extract the resolution source?

Polymarket frequently leaves the `resolutionSource` field empty and inlines the source in the market description ("resolves according to Binance BTC/USDT close"). Orrery runs a deterministic regex extractor that tags the source with a `type` (one of: `exchange_price`, `official_government`, `sports_official_result`, `court_record`, `company_filing`, `news_consensus`, `social_media_post`, `ambiguous`) and a `confidence` (low / medium / high). The result feeds the Resolution & Risk block on per-market pages.

How are AI explanations grounded?

When `ANTHROPIC_API_KEY` is configured, /api/explain and /api/copilot stream answers from `claude-sonnet-4-6` with prompt caching on the system prompt. The system prompt is strict: every claim must cite supplied data fields, the model must never predict future direction, must never recommend trades, and must refuse any "insider intelligence" framing. The supplied context is a snapshot of the top 60 markets and 10 active signals at request time. Without a key the route falls back to a deterministic heuristic generated from the public market metrics.

What does Orrery NOT do?

Orrery does not facilitate trading, does not connect a wallet for signing, does not predict outcomes, and does not provide investment, legal, or tax advice. The Portfolio page is read-only multi-wallet aggregation by address (no signing, no key custody). Signals describe why a price moved, not whether to trade.

Need machine-readable methodology? /llms-full.txt covers the full agent-facing reference. /openapi.yaml is the OpenAPI 3.1 spec for every endpoint. The structured-data FAQ on this page is exposed as JSON-LD for grounding.

Methodology — how Orrery computes signals, edge, and resolution risk | Orrery