For quantitative traders
Mid-price is not execution price.
Theoretical edge is not executable edge.
We give you the orderbook-aware numbers.
SimpleFunctions computes executable edge = thesis price - ask price (for YES buyers). Factors in spread, top-3 depth, slippage estimation, and liquidity scoring. Across both Kalshi and Polymarket, normalized to cents.
Quantitative capabilities
Orderbook microstructure
Bid/ask levels (top 5+), spread, depth (top-3 sum), depth ratio (bid/ask imbalance), total depth. Persisted as time series — detect spread widening, depth withdrawal, buyer/seller aggression.
Executable edge
YES buyer: executableEdge = thesisPrice - askPrice. NO buyer: executableEdge = bidPrice - thesisPrice. Recalculated from live orderbook every 15 minutes. Historical edge tracking since first detection.
Liquidity scoring
High (spread ≤ 2¢, depth ≥ 500), Medium (spread ≤ 5¢, depth ≥ 100), Low (everything else). Same scoring across Kalshi and Polymarket for cross-venue comparison.
What-if scenario engine
Override causal tree node probabilities → see how all edges shift. Scale factor clamped [0, 2]. Parent node overrides propagate to child-linked edges. Zero LLM cost — pure computation. Run batch scenarios via API.
Implied returns tracking
For each edge: entry price (when first detected) vs current price. YES/NO direction-aware return calculation. Win rate, average return, portfolio-level P&L.
JSON output everywhere
sf edges --json # all edges with orderbook data
sf book TICKER --json # full orderbook depth
sf liquidity oil --json # topic-wide liquidity
sf context ID --json # full thesis state
sf positions --json # cross-venue positions
sf dashboard --json # full portfolio dump
Every command supports --json. Pipe to your models, backtests, or dashboards.
Or book a 30-min walkthrough →
Open source: github.com/spfunctions/simplefunctions-cli