changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "description": "Realizable fill risk against live order-book depth, plus Polymarket's own taker fee and the breakeven win-rate it implies (fleet #3446).",
+ "properties": {
+ "_hint": {
+ "description": "Usage note — what is gross vs net of fees, and what is still unmodeled.",
+ "type": "string"
+ },
+ "all_in_cost_pp": {
+ "description": "Single-market mode: slippage_pp + fee_pp — the full round-trip cost of this fill.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "book_levels_visible": {
+ "description": "Single-market mode: count of price levels on the side priced.",
+ "type": "number"
+ },
+ "breakeven_win_rate_maker": {
+ "description": "Single-market mode: win-rate a maker (no taker fee charged) would need — equals top_of_book.",
+ "type": "number"
+ },
+ "breakeven_win_rate_taker": {
+ "description": "Single-market mode: win-rate (0-1) the filled side needs to break even as a taker, INCLUDING the fee — always worse than the raw fill price.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "capture_ratio": {
+ "description": "Basket mode: fraction of the theoretical edge that survives depth AND fees (fleet #3446 — was gross of fees before).",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "capture_ratio_gross": {
+ "description": "Basket mode: the pre-fee figure capture_ratio used to report.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "dead_legs": {
+ "description": "Basket mode: leg slugs with zero visible depth on the priced side.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "error": {
+ "description": "Error code (orderbook_unavailable, event_books_unavailable, empty_book, bad_side, missing_input) — present only on failure.",
+ "type": "string"
+ },
+ "event": {
+ "description": "Basket mode: resolved event slug.",
+ "type": "string"
+ },
+ "fee_pp": {
+ "description": "Single-market mode: the taker fee as a percentage point of a $1 share — size-invariant, so it's the same number at any trade size.",
+ "type": "number"
+ },
+ "fee_schedule": {
+ "description": "Polymarket's published taker-fee parameters for this market, read off the market payload (fleet #3446) — never assumed fee-free.",
+ "properties": {
+ "basis": {
+ "description": "Where the rate came from — payload (read off this market) is the most trustworthy.",
+ "enum": [
+ "payload",
+ "category",
+ "fallback",
+ "fee_free"
+ ],
+ "type": "string"
+ },
+ "category": {
+ "description": "Polymarket's fee category, e.g. 'crypto_fees_v2'.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "exponent": {
+ "description": "Exponent in fee = shares × rate × (p×(1-p))^exponent — 1 on every market observed.",
+ "type": "number"
+ },
+ "fees_enabled": {
+ "description": "false means this market genuinely charges no taker fee.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "maker_rebate_rate": {
+ "description": "Polymarket's published maker rebate rate, when known.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "taker_rate": {
+ "description": "Taker-fee rate actually applied (0 means genuinely fee-free, never \"unknown\").",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "fee_usd": {
+ "description": "Single-market mode: Polymarket taker fee in USD on the shares actually filled.",
+ "type": "number"
+ },
+ "forced_directional_risk": {
+ "description": "Basket mode: plain-English risk note naming dead/thin legs.",
+ "type": "string"
+ },
+ "leg_count": {
+ "description": "Basket mode: number of legs priced.",
+ "type": "number"
+ },
+ "market": {
+ "description": "Single-market mode: resolved market slug.",
+ "type": "string"
+ },
+ "max_fillable_usd": {
+ "description": "Single-market mode: total USD value of the entire visible side of the book.",
+ "type": "number"
+ },
+ "message": {
+ "description": "Human-readable error detail — present only on failure.",
+ "type": "string"
+ },
+ "mode": {
+ "description": "Which mode answered — set by which of market/event was passed.",
+ "enum": [
+ "single_market",
+ "basket"
+ ],
+ "type": "string"
+ },
+ "partition_complete": {
+ "description": "Basket mode: false means truncated_legs > 0 — edge figures are directional only.",
+ "type": "boolean"
+ },
+ "per_leg": {
+ "description": "Basket mode: per-leg fill detail.",
+ "items": {
+ "properties": {
+ "depth_shares": {
+ "type": "number"
+ },
+ "fee_usd": {
+ "description": "This leg's own Polymarket taker fee in USD at the executed size.",
+ "type": "number"
+ },
+ "fills_requested_size": {
+ "type": "boolean"
+ },
+ "question": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "slippage_pp": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "slug": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "top_of_book": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "vwap_at_executed_size": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "question": {
+ "description": "Single-market mode: the market question.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "realizable_at_executed_size": {
+ "description": "Basket mode: VWAP sum across all legs at the executed size, net of each leg's own Polymarket taker fee (fleet #3446 — profit_usd was gross before).",
+ "properties": {
+ "edge_pp": {
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "fees_usd_total": {
+ "description": "Sum of per_leg[].fee_usd across every leg.",
+ "type": "number"
+ },
+ "note": {
+ "description": "Present only when the basket is not executable at any size.",
+ "type": "string"
+ },
+ "profit_usd": {
+ "description": "NET of every leg's own Polymarket taker fee.",
+ "type": "number"
+ },
+ "profit_usd_gross": {
+ "description": "Before fees — kept alongside profit_usd so the fee cost is never hidden.",
+ "type": "number"
+ },
+ "sum_yes": {
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "reasoning": {
+ "description": "Plain-English explanation of the verdict, naming the all-in cost and breakeven.",
+ "type": "string"
+ },
+ "scaled_down_by_thinnest_leg": {
+ "description": "Basket mode: true if executed size was capped below the requested size.",
+ "type": "boolean"
+ },
+ "settlement_notional_executed_usd": {
+ "description": "Basket mode: shares-per-leg actually executable, scaled down by the thinnest leg.",
+ "type": "number"
+ },
+ "settlement_notional_requested_usd": {
+ "description": "Basket mode: requested shares-per-leg (the size_usd argument).",
+ "type": "number"
+ },
+ "shares_filled": {
+ "description": "Single-market mode: shares actually fillable from visible depth.",
+ "type": "number"
+ },
+ "side": {
+ "description": "Single-market mode: the side actually priced (buy_yes|sell_yes|buy_no|sell_no).",
+ "type": "string"
+ },
+ "side_auto_selected": {
+ "description": "Basket mode: true if side was inferred from the partition sum rather than passed explicitly.",
+ "type": "boolean"
+ },
+ "size_usd_requested": {
+ "description": "Single-market mode: the size_usd argument, clamped.",
+ "type": "number"
+ },
+ "slippage_pp": {
+ "description": "Single-market mode: |vwap - top_of_book| in percentage points.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "strategy": {
+ "description": "Basket mode: which side was priced across every leg.",
+ "enum": [
+ "sell_yes_every_leg",
+ "buy_yes_every_leg"
+ ],
+ "type": "string"
+ },
+ "theoretical": {
+ "description": "Basket mode: top-of-book sum across all legs, before depth.",
+ "properties": {
+ "basis": {
+ "type": "string"
+ },
+ "edge_pp": {
+ "type": "number"
+ },
+ "sum_yes": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "thin_legs": {
+ "description": "Basket mode: leg slugs that cannot cleanly absorb the requested size.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "title": {
+ "description": "Basket mode: event title.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "top_of_book": {
+ "description": "Single-market mode: best price on the side priced.",
+ "type": "number"
+ },
+ "truncated_legs": {
+ "description": "Basket mode: legs dropped by the 80-leg cap, if any.",
+ "type": "number"
+ },
+ "usd_filled": {
+ "description": "Single-market mode: dollars actually fillable from visible depth.",
+ "type": "number"
+ },
+ "verdict": {
+ "description": "Single-market mode: fill-quality verdict based on depth/slippage (independent of the fee).",
+ "enum": [
+ "clean",
+ "degraded",
+ "cannot_fill"
+ ],
+ "type": "string"
+ },
+ "vwap_fill_price": {
+ "description": "Single-market mode: volume-weighted fill price across the requested size; null if nothing filled.",
+ "type": [
+ "number",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}