simmer_sdk.sizing gives skill authors a tested, opinionated way to size trades on binary prediction markets. It combines the Kelly Criterion with an Expected Value gate so trades below your edge threshold are automatically skipped — no extra branching in your skill.
The default is fractional Kelly (0.25x). This is what most disciplined Polymarket traders use: it scales position size with edge but resists the drawdowns that full Kelly creates when your probability estimates are off.
Available in
simmer-sdk >= 0.9.21. Don’t roll your own — these helpers are tested and maintained alongside the SDK.Quick start
API
Sizing methods
max_fraction (default 0.95) is a safety cap so even an aggressive Kelly call cannot go all-in.
NO bets
size_position is written from the YES perspective. For NO trades, flip both inputs:
Config-driven sizing
Skills should expose sizing as user-tunable config rather than hard-coding values. MergeSIZING_CONFIG_SCHEMA into your skill’s CONFIG_SCHEMA:
External market data
The SDK does not bundle clients for third-party APIs (Polymarket Gamma, Kalshi public data, price feeds, etc.). The SDK’s job is to expose the Simmer API surface plus universal primitives every skill needs. If your skill needs Polymarket metadata beyond whatSimmerClient.get_markets() returns, call Polymarket’s Gamma API directly from your skill — it’s free, no auth, and well-documented. Keep third-party helpers next to the skill that uses them.