A signal is an actionable trading recommendation with position sizing. It’s the output of POST /v1/signals and combines a full analysis with Kelly-derived sizing.
The Signal object
{
"platform" : "kalshi" ,
"market_id" : "KXFED-26MAR19" ,
"title" : "Will the Fed cut rates at the March 2026 meeting?" ,
"recommendation" : "BUY_YES" ,
"target_price" : 0.58 ,
"edge" : 0.12 ,
"confidence" : 0.73 ,
"risk_rating" : "medium" ,
"size_pct" : 0.042 ,
"time_horizon" : "days" ,
"hedge" : "Buy NO on KXFED-26MAR26 at 0.82" ,
"freshness" : "fresh" ,
"generated_at" : "2026-03-24T14:30:00Z" ,
"expires_at" : "2026-03-25T14:30:00Z"
}
Recommendation types
Value Meaning BUY_YESThe event is more likely than the market implies — buy YES contracts BUY_NOThe event is less likely than the market implies — buy NO contracts NO_TRADEEdge is too small or confidence too low to justify a position
Edge
The edge field is the core of every signal:
edge = estimated_probability - market_price
Positive edge → market underprices the event → BUY_YES
Negative edge → market overprices the event → BUY_NO
Near-zero edge → no actionable opportunity → NO_TRADE
Example: if Rekko estimates 74% probability but the market prices it at 62%, the edge is +0.12 (12 percentage points).
Position sizing (Kelly criterion)
The size_pct field is a Kelly-derived position size as a fraction of your bankroll:
0.042 means “risk 4.2% of your bankroll on this trade”
Accounts for edge magnitude, confidence, and risk rating
Conservative half-Kelly by default — designed to avoid ruin
size_pct is a suggestion, not financial advice. Always apply your own risk management.
Risk ratings
Rating Meaning lowWell-understood event, high source quality, multiple confirming signals mediumModerate uncertainty, mixed signals, or limited source coverage highSignificant uncertainty, potential for insider information, or thin markets
Time horizon
Value Meaning hoursSignal is time-sensitive — act quickly or edge may evaporate daysEdge likely persists for 1-7 days weeksStructural mispricing, slower to correct
Signal expiry
Always check expires_at before acting. After this timestamp, the signal is stale and should not be traded. Market conditions may have changed.
Requesting a signal
curl -X POST https://api.rekko.ai/v1/signals \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform": "kalshi", "market_id": "KXFED-26MAR19"}'
Signals include a full analysis under the hood. If you only need the analysis without sizing, use the Analysis Pipeline instead — it’s a cheaper INSIGHT-tier call.
Portfolio-aware signals
For position-adjusted sizing that accounts for correlation with your existing holdings, use POST /v1/signals/portfolio. Pass your current positions and bankroll to get adjusted sizing, concentration warnings, and hedge recommendations.
Portfolio Signal endpoint Full endpoint documentation with playground.