MarketQualityRanker
Score every market across volume, spread, depth, dispute history, rule clarity, implied volatility, and time-to-resolution into a single quality rank.
What it does
Score every market across volume, spread, depth, dispute history, rule clarity, implied volatility, and time-to-resolution into a single quality rank. Sits before every strategy and replaces ad-hoc per-strategy quality checks with a shared, consistent score.
Pipeline placement
Applies to: All markets surfaced by MarketScanner
Why it matters
| If this fails | Consequence |
|---|---|
| No shared quality score | Each strategy re-derives its own quality filter, producing inconsistent rankings and wasted per-strategy compute. Worked example Setup: A strategy is allowed to trade any market with `quality_score >= 0.6`. Market 0x9c2 has quality_score=0.42 (low depth, wide spread, recent rule edit pending review). Without bot: Without a ranker, the strategy uses its own heuristics. Two strategies disagree about whether 0x9c2 is tradeable, one enters, the other doesn't, and the team has no shared definition of 'tradeable' to debug against. With bot: MarketQualityRanker emits `quality_score=0.42, breakdown={depth: 0.3, spread: 0.5, rule_state: 0.2}`. All strategies read the same number, the entry is rejected by Risk with reason `QUALITY_BELOW_THRESHOLD`, and the breakdown explains why. |
| High-dispute markets not penalised | Markets with frequent UMA disputes carry elevated resolution risk; without a dispute-penalty weight they appear equivalent to clean markets. |
| Short-horizon markets ignored | Markets resolving in <24h may have inflated spreads or thin books that are artefacts of the final trading window, not genuine signals. |
Inputs
Polymarket inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Book depth, spread, and 24h volume per market | CLOB + Data API | required | Compute liquidity sub-score. |
| Market resolution rules text and neg-risk flag | Gamma API | required | Derive rule-clarity sub-score and flag ambiguous resolution criteria. |
| Historical dispute frequency for UMA markets | Data API / onchain | optional | Penalise markets with elevated dispute history in the composite score. |
Internal inputs
| Input | Source | Required | Use |
|---|---|---|---|
| MarketScanner candidate list | disc.marketscanner | required | Only score markets that have already passed MarketScanner tradability filters. |
| KillSwitch active flag | risk.kill_switch | required | Suppress quality report emissions when KillSwitch is active. |
Authority
What this bot is permitted to do
State
Readiness
Spec started
Status
planned
Class
Signal Service
Default mode
shadow_only
Developer owner
Polytraders core — Intelligence pod
Capital impact
Indirect
Reason codes emitted
| Code | Severity | Meaning | Action |
|---|---|---|---|
| LOW_QUALITY_SCORE | HARD_REJECT | Composite quality score is below the hard floor; market dropped from candidate list. | Do not forward to strategy layer; log with sub-scores for debugging. |
| LOW_QUALITY_SCORE | WARN | Score is between warning and hard floor; market forwarded with quality warning. | Include in ObservationReport with WARN annotation. |
| STALE_MARKET_DATA | HARD_REJECT | Gamma API or Data API unavailable; scoring cycle halted. | Halt emissions for this cycle; retry next cycle. |
| RULE_AMBIGUITY_DETECTED | EXPLAIN | Market resolution text contains ambiguity keywords that lower the rule_clarity sub-score. | Penalise rule_clarity sub-score; annotate report. |
| KILL_SWITCH_ACTIVE | HARD_REJECT | KillSwitch is active; all report emissions suppressed. | Return immediately; do not emit any ObservationReports. |
Related bots in Market Discovery
Used by
Reverse index — strategies that currently reference disc.marketqualityranker. If you change this bot's authority or reason codes, these strategies must re-pass shadow.
| Strategy | State | Activity |
|---|---|---|
| NBA H2H — moneyline market-make | demo-wired | last triggered 44m ago |
Showing 1 of 1 · demo-wired ≠ production-live
Why this matters
Market Discovery bots does NOT propose or execute trades; only scores and ranks. Understanding the authority boundary prevents misuse and makes promotion-gate reviews faster and more reliable. View raw spec JSON →