Skip to main content
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. Merge SIZING_CONFIG_SCHEMA into your skill’s CONFIG_SCHEMA:
Users can then tune behavior via env vars without editing code:

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 what SimmerClient.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.