{"i":18,"slug":"json-schema-vs-instructions","chart":{"id":"structured-output-tokens","title":"Output and reasoning tokens per call, instructions vs schema mode","subtitle":"Median per call; ranges and sample sizes are in the note","kind":"grouped-bar","unit":"tokens","yLabel":"Tokens","series":[{"name":"Median output tokens per call","points":{"$k":["label","value","n"],"$r":[["Claude Haiku 4.5 (instructions) · Claude Code",1128,24],["Claude Haiku 4.5 (JSON schema) · Claude Code",1036,24],["Claude Sonnet 5.5 (instructions) · Claude Code",368,12],["Claude Sonnet 5.5 (JSON schema) · Claude Code",424,12],["GPT-6.1 Sol (low, instructions) · Codex CLI",117,12],["GPT-6.1 Sol (low, JSON schema) · Codex CLI",123,12]]}},{"name":"Median reasoning tokens per call (thinking)","points":{"$k":["label","value","n"],"$r":[["Claude Haiku 4.5 (instructions) · Claude Code",934,24],["Claude Haiku 4.5 (JSON schema) · Claude Code",727,24],["Claude Sonnet 5.5 (instructions) · Claude Code",182,12],["Claude Sonnet 5.5 (JSON schema) · Claude Code",109,12],["GPT-6.1 Sol (low, instructions) · Codex CLI",21,12],["GPT-6.1 Sol (low, JSON schema) · Codex CLI",23,12]]}}],"note":"Output tokens include reasoning tokens. Claude schema-mode output includes the CLI’s structured-output tool call. Input counts include CLI context and are not compared. Ranges (not intervals): Claude Haiku 4.5 (instructions) · Claude Code: output 698 to 2059 (n = 24); reasoning 559 to 1830 (n = 24); Claude Haiku 4.5 (JSON schema) · Claude Code: output 716 to 1462 (n = 24); reasoning 522 to 1187 (n = 24); Claude Sonnet 5.5 (instructions) · Claude Code: output 154 to 456 (n = 12); reasoning 54 to 278 (n = 12); Claude Sonnet 5.5 (JSON schema) · Claude Code: output 273 to 541 (n = 12); reasoning 0 to 260 (n = 12); GPT-6.1 Sol (low, instructions) · Codex CLI: output 69 to 259 (n = 12); reasoning 0 to 60 (n = 12); GPT-6.1 Sol (low, JSON schema) · Codex CLI: output 98 to 181 (n = 12); reasoning 0 to 49 (n = 12).","sourceIds":["agent-structured-output"]}}