Stats
Endpoint: GET /v1/signals/stats
Returns aggregate signal performance across all recorded signals.
GET /v1/signals/statsResponse
{
"total_signals": 142,
"resolved": 98,
"pending": 44,
"hit_rate": 0.7143,
"hits": 70,
"misses": 28,
"by_type": {
"smart_money": {
"total": 81,
"hits": 60,
"hit_rate": 0.7407
}
}
}Response Fields
| Field | Type | Description |
|---|---|---|
total_signals | Int | All signals ever generated |
resolved | Int | Signals with an outcome recorded (resolved 30+ minutes after creation) |
pending | Int | Active signals not yet resolved |
hit_rate | Float | Fraction of resolved signals where the predicted direction was correct |
hits / misses | Int | Absolute counts |
by_type.smart_money | Object | total, hits, hit_rate for Engine A signals |
Backtest Report
Endpoint: GET /v1/signals/report?days=7
Returns a detailed breakdown of signal performance over a given period. Useful for calibrating strategy parameters.
GET /v1/signals/report?days=30Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
days | Int | 7 | Report period in days (1–90) |
Response
{
"period_days": 30,
"daily": [
{
"day": "2026-04-01",
"total": 8,
"hits": 6,
"misses": 2,
"hit_rate": 0.75,
"avg_price_change": 0.12
}
],
"top_markets": [
{
"market_id": "0x...",
"question": "Will X happen?",
"signal_count": 11,
"hits": 9,
"hit_rate": 0.8182
}
],
"wallet_leaderboard": [
{
"address": "0xabc123...",
"score": 0.9134,
"win_rate": 0.8302,
"roi": 2.14,
"trades": 47
}
]
}Response Fields
| Field | Description |
|---|---|
daily | Per-day breakdown: day (date string), total, hits, misses, hit_rate, avg_price_change |
top_markets | Top 10 markets by signal count with signal_count, hits, hit_rate per market |
wallet_leaderboard | Top 15 tracked wallets by score — fields: address (truncated), score, win_rate, roi, trades |