Skip to content
PROBORA

Methodology

How Probora predicts, resolves and scores

The public rules behind every market on the network, from the independent price index to calibration-aware rankings. Proprietary model internals stay private. The scoreboard never does.

Overview

Probora runs one simple loop at very large scale. For every asset and timeframe it opens a standardized prediction window, fixes a reference price from an independent index, freezes each agent's probability before anything is known, resolves the window from the same index, and adds the result, win or loss, to a public record that cannot be edited. Every resolved window also becomes a learning observation.

10 × 5
assets × timeframes, each a recurring market
10
agent families: 9 specialists and the Meta Agent
470
active model instances (of 500 possible)
100
resolved observations required before an instance may publish

Probora is not a prediction exchange. It does not sell contracts, is not affiliated with any prediction platform and never uses prediction-market odds to determine outcomes. It creates and resolves its own markets from independent external price data.

Probora Price Index

Every market resolves against the Probora Price Index for its asset: the median of independent price sources sampled at the same instant. A median is robust: one bad print from one venue cannot move it, and no single venue can decide an outcome.

  • Freshness. A quote older than 5 seconds relative to the target instant is treated as stale and excluded.
  • Outliers. After a provisional median, any source deviating by more than 50 bps is excluded and the median is recomputed.
  • Quorum. At least 2 valid sources are required. Without quorum, no index value exists for that instant.
  • Normalization. Venues quoting in stablecoins (USDT, USDC) are converted to USD with a live conversion rate before the median is taken.
  • Rounding. The index is rounded to the asset's tick size.
fresh = { q_s(t) : |t_s − t| ≤ 5s } m0 = median(fresh) valid = { q ∈ fresh : |q − m0| / m0 ≤ 50 bps } index(t) = round_tick( median(valid) ) if |valid| ≥ 2 = unavailable otherwise
Index procedure at instant t. Every step is deterministic, so any environment recomputes the same value from the same quotes.
AssetIndex sourcesTick
BTC · CryptoBinanceUSDT→USDOKXUSDT→USDCoinbase0.01
ETH · CryptoBinanceUSDT→USDOKXUSDT→USDCoinbase0.01
SOL · CryptoBinanceUSDT→USDOKXUSDT→USDCoinbase0.01
XRP · CryptoBinanceUSDT→USDOKXUSDT→USDCoinbase0.0001
DOGE · CryptoBinanceUSDT→USDOKXUSDT→USDCoinbase0.00001
HYPE · CryptoOKXUSDT→USDBybitUSDT→USDHyperliquidUSDC→USD0.001
BNB · CryptoBinanceUSDT→USDOKXUSDT→USDBybitUSDT→USD0.01
GOLD · CommoditiesGold API (spot)Binance FuturesUSDT→USDOKX PerpetualsUSDT→USDBybit PerpetualsUSDT→USD0.01
SILVER · CommoditiesGold API (spot)Binance FuturesUSDT→USDOKX PerpetualsUSDT→USDBybit PerpetualsUSDT→USD0.001
OIL · CommoditiesBinance FuturesUSDT→USDOKX PerpetualsUSDT→USDBybit PerpetualsUSDT→USD0.01

Commodity sources

Gold and Silver combine a spot reference (Gold API) with the gold and silver perpetual markets on Binance, OKX and Bybit. Oil uses the WTI crude perpetual markets on the same venues. Every source for an asset tracks the same instrument, so the outlier filter never compares spot prices with futures prices. Commodity windows only open while the CME Globex session is open (Sunday 18:00 to Friday 17:00 New York time, with a daily one-hour break).

Price To Beat & Settlement

Price To Beat is the Probora Price Index at the window's exact start instant. Settlement Price is the index at the window's exact end instant, which is also the start of the next window. Windows are aligned to the UTC epoch, so their boundaries are identical everywhere: 5 Min, 15 Min, 1 Hour, 4 Hours, 1 Day; daily windows open at 00:00 UTC.

Market start20:00:00 UTC
OKX76,228.00
CoinbaseMedian76,230.00
Binance76,232.00
Price To Beat$76,230.00
Settlement20:15:00 UTC
Coinbase76,237.00
BinanceMedian76,239.00
OKX76,241.00
Settlement Price$76,239.00
76,239.00 > 76,230.00→Settlement above Price To Beat
Outcome UP
BTC · 15 Min window. Quotes are sorted; the median of three sources is the middle value. Deviations are measured against the provisional median before outlier filtering.

UP / DOWN resolution

Both prices are rounded to the asset's tick size and compared as whole numbers of ticks, so floating-point noise can never flip an outcome. The rule is deterministic and documented. Probora never silently fabricates an UP or DOWN.

ptb_ticks = round(Price To Beat / tick_size) settle_ticks = round(Settlement Price / tick_size) settle_ticks > ptb_ticks → UP settle_ticks < ptb_ticks → DOWN settle_ticks = ptb_ticks → FLAT index unavailable at T₀ or T₁ (no quorum) → VOID data collection interrupted inside the window → VOID
OutcomePrediction resultScoredKept on recordUsed for learning
UP or DOWNWIN or LOSSYesYesYes
FLATPUSHNo, excluded from every metricYesNo
VOIDVOIDNo, excluded from every metricYesNo

FLAT outcomes are more likely where the tick size is large relative to typical movement over the window. They are reported separately as pushes, never folded into wins or losses.

Prediction timing

Predictions are made once, at the start of the window, and frozen. Each one is stored with the model version that produced it and a publication timestamp. Nothing about a published prediction is ever modified.

  1. T₀Window opensPrice To Beat is fixed from the Probora Price Index at the exact start instant.
  2. T₀Feature snapshotMarket features are captured using only data available at T₀. Nothing from inside the window is used.
  3. T₀ + msPredictions frozenEvery eligible agent runs once. Direction, probabilities, confidence, model version and timestamp are stored and published.
  4. T₀ → T₁Window runsThe live index is displayed for context. Predictions cannot be modified, withdrawn or re-issued.
  5. T₁SettlementSettlement Price is computed, the market resolves and every prediction is marked WIN, LOSS, PUSH or VOID.
  6. After T₁LearningThe resolved observation is stored permanently and queued for learning, wins and losses alike.
Frozen prediction record
{
  "asset": "BTC",
  "timeframe": "15m",
  "market_id": "btc-15m-20261114-2000",
  "agent": "Order Flow",
  "direction": "UP",
  "up_probability": 0.682,
  "down_probability": 0.318,
  "confidence": 0.81,
  "model_version": "orderflow-btc15-v12",
  "prediction_timestamp": "2026-11-14T20:00:00.412Z"
}

Minimum sample threshold

Every model instance begins learning at market #1. It may publish probabilities only after resolving at least 100 observations. Until then its public output is Insufficient Data on the website, in the API and on leaderboards.

training_observations
Every resolved window from market #1, used for learning. Never shown as predictions.
public_predictions
Predictions published before settlement, once the instance had 100+ observations.
resolved_public_predictions
Public predictions after settlement, with their result. This is the public track record.

The three are stored separately. A training observation is never retroactively turned into a public prediction: public history starts with the first prediction that was actually published before its window settled. Shorter timeframes therefore reach eligibility sooner:

5 Min
8 h 20 min
to first publication
15 Min
1 d 1 h
to first publication
1 Hour
4 d 4 h
to first publication
4 Hours
16 d 16 h
to first publication
1 Day
100 d
to first publication

Agent families

There are exactly 10 named agent families: 9 specialists and the Meta Agent. Each family runs one reusable engine with a separately learned instance for every asset × timeframe it covers, so Trend · BTC · 5m and Trend · BTC · 1h are different models within the same family. That gives 470 active instances today.

Specializes in directional market structure and trend persistence.
Analyzes: moving-average structure, directional strength, price structure, trend acceleration and multi-horizon momentum.
Specializes in detecting strengthening or weakening price momentum.
Analyzes: price velocity, momentum shifts, volume behavior and directional acceleration.
Specializes in identifying stretched markets likely to revert toward equilibrium.
Analyzes: price deviation, market extremes, relative positioning and reversion pressure.
Specializes in detecting momentum divergence and potential directional reversals.
Analyzes: relative strength behavior, divergence structures and momentum exhaustion.
Specializes in real-time buying and selling pressure.
Analyzes: market depth, order imbalance, aggressive trading activity and liquidity behavior.
Specializes in identifying volatility regimes and expansion or contraction conditions.
Analyzes: market range, volatility shifts, compression, expansion and price instability.
Specializes in leveraged-market liquidation pressure and squeeze conditions.
Analyzes: liquidation activity, leverage stress, cascade behavior and directional pressure.
Specializes in derivatives positioning and leveraged market sentiment.
Analyzes: open-interest behavior, funding conditions, positioning changes and leverage imbalance.
Specializes in detecting significant activity from large market participants.
Analyzes: large transactions, unusual capital flows and major participant behavior.
Combines intelligence from all specialist agents to produce a unified prediction.
Analyzes: agent agreement, historical reliability, market conditions and cross-agent signals.

Coverage rules

Liquidation Agent and OI/Funding Agent require leveraged-derivatives data and are not available on Gold, Silver and Crude Oil. On those markets Base Consensus counts only the specialists that can run, and the interface marks the others as not applicable rather than hiding them. Public descriptions explain what each agent analyzes. They never reveal formulas, weights, thresholds, indicator periods or feature engineering.

Base Consensus

Base Consensus is a transparent count of the specialists that published an eligible prediction for the window: k / n UP or k / n DOWN, where n includes only specialists that published. Agreement is the majority share. A tie is reported as SPLIT and is never rounded into a direction.

Majority
7 / 9 UP
Agreement 7 / 9 = 77.8%
Tie
4 / 8 split
One specialist not publishing; 4 / 8 is SPLIT

Meta Agent

The Meta Agent is not a tenth vote. Base Consensus says how many specialists agree; the Meta Agent estimates how much that agreement is worth for this market, right now, and produces its own independent probability. It may learn:

  • which specialists are historically stronger, by asset and by timeframe;
  • which specialists perform better under specific market regimes;
  • disagreement patterns, agreement quality and confidence quality.

Its weighting is never published. The current baseline is a reliability-weighted ensemble; the architecture allows it to evolve into a learned ensemble, validated walk-forward exactly like every specialist.

Base Consensus
6 / 9 UP
Meta prediction
UP64.0%
6 / 9 agree (66.7%), but Meta assigns 64% after weighing each specialist's reliability.

Accuracy

Directional accuracy is the share of scored predictions whose called direction matched the outcome. PUSH and VOID results are excluded and reported separately. Because 56% over 200 markets and 56% over 50,000 markets are very different claims, every accuracy figure carries a 95% Wilson score interval.

accuracy = wins / (wins + losses) p̂ = accuracy, n = wins + losses, z = 1.96 center = (p̂ + z²/2n) / (1 + z²/n) margin = z · √( p̂(1 − p̂)/n + z²/4n² ) / (1 + z²/n) CI95 = [center − margin, center + margin]

Probability scoring

Accuracy ignores how confident a prediction was. Probability scores do not: a 90% call that loses costs far more than a 55% call that loses. Probora uses two proper scoring rules, which are optimized only by reporting honest probabilities.

Brier = mean( (p_up − 1[outcome = UP])² ) lower is better Brier skill = 1 − Brier / 0.25 shown as "Prob. Score" Log loss = mean( −ln p(realized outcome) ) lower is better
Brier reference = 0.25 (an uninformed 50/50 forecast). Log-loss reference = ln 2 ≈ 0.693.

Prob. Score is the Brier skill score expressed as a percentage: +6.4% means probabilities that are 6.4% better than always answering 50/50. A negative value means worse than a coin-flip forecast. Short-horizon markets are noisy, so honest skill scores are small. That is exactly why they are informative.

Calibration

A forecaster is calibrated when its probabilities mean what they say: calls made at 70% should win about 70% of the time. Probora groups every scored prediction by the probability assigned to the called direction and compares, bucket by bucket, the mean probability with the realized accuracy.

50–55%55–60%60–65%65–70%70–75%75%+
ECE = Σ_b (n_b / N) · | accuracy_b − mean_p_b | Calibration = 100 · max(0, 1 − ECE / 0.1)
Perfect calibrationWell-calibratedOverconfident
Reliability diagram. Horizontal axis: mean predicted probability per confidence bucket. Vertical axis: realized accuracy. Well-calibrated: 50–55% 53.1%, 55–60% 56.9%, 60–65% 63.1%, 65–70% 66.8%, 70–75% 73.4%, 75%+ 78.1%. Overconfident: 50–55% 50.8%, 55–60% 53.6%, 60–65% 55.8%, 65–70% 58.4%, 70–75% 60.7%, 75%+ 63.1%50%50%55%55%60%60%65%65%70%70%75%75%80%80%85%85%Mean predicted probability (called direction)Realized accuracyWell-calibratedOverconfident
View as table
BucketMean predictedWell-calibratedOverconfident
50–55%52.5%53.1%50.8%
55–60%57.5%56.9%53.6%
60–65%62.5%63.1%55.8%
65–70%67.5%66.8%58.4%
70–75%72.5%73.4%60.7%
75%+79.0%78.1%63.1%
Illustrative example, not network data. A well-calibrated forecaster tracks the diagonal; an overconfident one sits below it, with its 75%+ calls winning far less often than claimed. Live agent diagrams are on each agent profile.

Leaderboard ranking

Accuracy is the most prominent number on every leaderboard because it is intuitive. Rankings, however, use all three dimensions (accuracy alone rewards bold, poorly calibrated calls) and shrink small samples so that a lucky streak cannot top a board.

AccuracyScore = 100 · clamp( (accuracy − 0.5) / 0.15, 0, 1 ) ProbabilityScore = 100 · clamp( BrierSkill / 0.1, 0, 1 ) CalibrationScore = 100 · max(0, 1 − ECE / 0.1) reliability = n / (n + 250) Overall = reliability · ( 0.4 · AccuracyScore + 0.35 · ProbabilityScore + 0.25 · CalibrationScore )
Weights 0.4 / 0.35 / 0.25; reliability prior 250 scored markets. Leaderboards exist overall, by asset, by timeframe and by asset × timeframe; scopes pool the underlying confidence-bucket statistics rather than averaging percentages.

Integrity & anti-overfitting

A model that only looks good in hindsight is worthless. Probora's research and production pipeline is built so that every published number is out-of-sample.

  • No look-ahead. At market start an agent may only use data available at that timestamp. Feature snapshots are taken at T₀ and stored with the prediction.
  • Chronological splits. Training, validation and test sets are split in time order and never shuffled.
  • Walk-forward evaluation. Models are trained on the past, evaluated on the next unseen block, then rolled forward.
  • Feature ablation. Feature groups can be removed to verify they add out-of-sample value. More features is not assumed to be better.
  • Model versioning. Every prediction records its model version. A new version must beat the incumbent out-of-sample before promotion, and promotion never rewrites old predictions.
  • Diagnostics. Calibration, regime analysis and performance by date and time blocks, by asset and by timeframe are measured continuously.
  • Immutable history. No cherry-picking, no deletion of bad periods, no rewriting of historical outputs. Correct and wrong predictions are both learning data.

Demo and live data

Probora separates demo data from live data at the infrastructure level. In DATA_MODE=mock a deterministic simulator powers the interface; every payload is flagged demo and a Demo data marker is shown. In DATA_MODE=live only real index data and real predictions from production storage are served. The two are never mixed, and demo data is never written into the production track record.

Disclaimer

Probora provides probabilistic market analytics for informational purposes only. It is not financial advice, and past performance does not guarantee future results.

Predictions are probabilistic. A 65% probability means the opposite outcome is expected roughly a third of the time. Read the full disclaimer.