{
  "_comment": "Service level objectives used to compute goodput. A request counts toward goodput only if it meets EVERY threshold below at once — that is what makes goodput stricter, and more useful, than any single metric. These thresholds are a stated editorial choice, not a law: they describe a responsive chat-style application. Change them and the goodput column changes, which is why they are published alongside the results.",
  "_rationale": {
    "ttft_s": "2.0s is roughly where a user stops believing the page is working.",
    "total_s": "15s is a generous ceiling for a short answer; beyond it the interaction is broken regardless of streaming.",
    "itl_ms": "80ms between tokens reads as smooth; above that the text visibly stutters.",
    "min_format_score": "0.8 allows graded partial credit (valid JSON wrapped in prose) but rejects a wrong or malformed answer.",
    "errors": "Any error fails the request. There is no partial credit for a 429."
  },
  "ttft_s": 2.0,
  "total_s": 15.0,
  "itl_ms": 80.0,
  "min_format_score": 0.8
}
