Ask a trading agent what its edge is and it will tell you about the signal. Ask what it costs to get out and you get silence. We measured it. Thirteen tickers, same market, same minute. Crossing the bid-ask cost 0.52% of contract value on NVDA and 1.27% on AAPL. On contracts with 26 minutes to expiry: SPY 14.29%, QQQ 33.33%, IWM 100%. The only variable is time remaining. The spread is not a rounding error. Near expiry it is the trade. Paying it twice is optional: a contract that expires out of the money costs nothing to leave. HALFSPREAD is built backwards from that. It measures execution cost on every leg before an order exists, ranks verticals and condors by expected value after that cost, then holds to settlement instead of buying its way out. Not a hunch. Vilkov's 2026 0DTE study was corrected for charging the half-spread at a hundredth of its true size. Every net Sharpe flipped negative. The structures it invalidated are the ones most 0DTE agents still run. Underneath we solve Black-Scholes ourselves because Alpaca's feed returns zero greeks, recover index forwards from put-call parity because it publishes no spot for XSP or SPXW, and count breach probability from 668 measured sessions instead of assuming lognormal returns. A language model reads live headlines for event risk and may only shrink a position. That clamp is in code, not in a prompt. On the judged account: two spreads settled, $71.00 realised, $7.00 paid entering, $0.00 leaving. Closed conventionally the same trades return $61.00. Not paying to exit was 14% of the gain. Every figure above re-derives from an append-only journal with one command: no key, no account, no network. It runs in CI and fails the build when a number stops reproducing. When our dashboard once showed $316 that had not happened, the bug, the deletion and the reasoning went into the journal as a correction. Alpaca Trading API, CLI, MCP server, Market Data. Zero dependencies. Price a trade yourself against the live chain.
Category tags: