{
  "window": "30d",
  "license": {
    "id": "CC-BY-4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "Measured by batchwatch - https://batchwatch.dev",
    "attribution_html": "Measured by <a href=\"https://batchwatch.dev\">batchwatch</a>",
    "source_url": "https://batchwatch.dev/license"
  },
  "models": [
    {
      "provider": "openai",
      "model": "gpt-5-nano",
      "mode": "batch",
      "requested_service_tier": "standard",
      "n": 3888,
      "completed_calls": 7741,
      "contributors": 0,
      "probes": 7741,
      "crowdsourced": false,
      "probe_only": true,
      "p50_s": 50,
      "p90_s": 1718,
      "p95_s": 6612,
      "latest_at": 1792763036,
      "last_measured_age_s": 489,
      "answerable": true,
      "confidence": "very_low"
    },
    {
      "provider": "openai",
      "model": "gpt-5-nano",
      "mode": "sync",
      "requested_service_tier": "flex",
      "n": 3945,
      "completed_calls": 4196,
      "contributors": 0,
      "probes": 4196,
      "crowdsourced": false,
      "probe_only": true,
      "p50_s": 2,
      "p90_s": 3,
      "p95_s": 3,
      "latest_at": 1792763162,
      "last_measured_age_s": 363,
      "answerable": true,
      "confidence": "very_low",
      "measurement_basis": {
        "measured_at_input_tokens": 8,
        "floor_clause": "Flex is measured at 8 input tokens and is synchronous, so that figure is the model's own work and a longer prompt makes it larger: read it as a floor. A batch figure is dominated by the wait to be scheduled, so the same extra work is a much smaller part of it.",
        "note": "Flex latency is measured on a fixed 8-input-token probe, the same fixed prompt size our batch probes use. A flex call is synchronous, so the figure is the model's own work and it grows with the prompt: read it as the floor a larger prompt starts from. A batch figure is dominated by queue time -- the wait to be scheduled -- so the same extra work is a much smaller part of it. The refusal rate is unaffected by prompt size: admission control happens before inference, so this probe measures it exactly as well as a large one would."
      }
    },
    {
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "mode": "sync",
      "requested_service_tier": "flex",
      "n": 3668,
      "completed_calls": 4059,
      "contributors": 0,
      "probes": 4059,
      "crowdsourced": false,
      "probe_only": true,
      "p50_s": 1,
      "p90_s": 2,
      "p95_s": 3,
      "latest_at": 1792763160,
      "last_measured_age_s": 365,
      "answerable": true,
      "confidence": "very_low",
      "measurement_basis": {
        "measured_at_input_tokens": 8,
        "floor_clause": "Flex is measured at 8 input tokens and is synchronous, so that figure is the model's own work and a longer prompt makes it larger: read it as a floor. A batch figure is dominated by the wait to be scheduled, so the same extra work is a much smaller part of it.",
        "note": "Flex latency is measured on a fixed 8-input-token probe, the same fixed prompt size our batch probes use. A flex call is synchronous, so the figure is the model's own work and it grows with the prompt: read it as the floor a larger prompt starts from. A batch figure is dominated by queue time -- the wait to be scheduled -- so the same extra work is a much smaller part of it. The refusal rate is unaffected by prompt size: admission control happens before inference, so this probe measures it exactly as well as a large one would."
      }
    },
    {
      "provider": "google",
      "model": "gemini-3.6-flash",
      "mode": "sync",
      "requested_service_tier": "flex",
      "n": 3465,
      "completed_calls": 3952,
      "contributors": 0,
      "probes": 3952,
      "crowdsourced": false,
      "probe_only": true,
      "p50_s": 2,
      "p90_s": 3,
      "p95_s": 3,
      "latest_at": 1792763164,
      "last_measured_age_s": 361,
      "answerable": true,
      "confidence": "very_low",
      "measurement_basis": {
        "measured_at_input_tokens": 8,
        "floor_clause": "Flex is measured at 8 input tokens and is synchronous, so that figure is the model's own work and a longer prompt makes it larger: read it as a floor. A batch figure is dominated by the wait to be scheduled, so the same extra work is a much smaller part of it.",
        "note": "Flex latency is measured on a fixed 8-input-token probe, the same fixed prompt size our batch probes use. A flex call is synchronous, so the figure is the model's own work and it grows with the prompt: read it as the floor a larger prompt starts from. A batch figure is dominated by queue time -- the wait to be scheduled -- so the same extra work is a much smaller part of it. The refusal rate is unaffected by prompt size: admission control happens before inference, so this probe measures it exactly as well as a large one would."
      }
    },
    {
      "provider": "openai",
      "model": "gpt-5.6-luna",
      "mode": "batch",
      "requested_service_tier": "standard",
      "n": 3333,
      "completed_calls": 3337,
      "contributors": 0,
      "probes": 3337,
      "crowdsourced": false,
      "probe_only": true,
      "p50_s": 61,
      "p90_s": 233,
      "p95_s": 1154,
      "latest_at": 1792762494,
      "last_measured_age_s": 1031,
      "answerable": true,
      "confidence": "very_low"
    },
    {
      "provider": "anthropic",
      "model": "claude-haiku-4-5",
      "mode": "batch",
      "requested_service_tier": "standard",
      "n": 2582,
      "completed_calls": 2797,
      "contributors": 0,
      "probes": 2797,
      "crowdsourced": false,
      "probe_only": true,
      "p50_s": 114,
      "p90_s": 204,
      "p95_s": 204,
      "latest_at": 1792762562,
      "last_measured_age_s": 963,
      "answerable": true,
      "confidence": "very_low"
    },
    {
      "provider": "google",
      "model": "gemini-3.7-flash",
      "mode": "batch",
      "requested_service_tier": "standard",
      "n": 2158,
      "completed_calls": 2170,
      "contributors": 0,
      "probes": 2170,
      "crowdsourced": false,
      "probe_only": true,
      "p50_s": 127,
      "p90_s": 166,
      "p95_s": 175,
      "latest_at": 1792762607,
      "last_measured_age_s": 918,
      "answerable": true,
      "confidence": "very_low"
    },
    {
      "provider": "openai",
      "model": "gpt-5.6-sol",
      "mode": "batch",
      "requested_service_tier": "standard",
      "n": 1730,
      "completed_calls": 1794,
      "contributors": 0,
      "probes": 1794,
      "crowdsourced": false,
      "probe_only": true,
      "p50_s": 50,
      "p90_s": 55,
      "p95_s": 123,
      "latest_at": 1792758336,
      "last_measured_age_s": 5189,
      "answerable": true,
      "confidence": "very_low"
    }
  ]
}