{
  "rows": [
    {
      "replicas": 1,
      "repeat": 1,
      "requests": 1166,
      "http_200": 1164,
      "http_non_200": 2,
      "offered_rps_per_gpu": 4.319,
      "served_rps_per_gpu": 4.293,
      "premium_burst_p95_ttft_ms": 415.733,
      "premium_burst_p99_ttft_ms": 713.929,
      "premium_burst_p95_tpot_ms": 17.185,
      "standard_burst_p95_ttft_ms": 716.118,
      "max_epp_queue": 5.0,
      "max_vllm_waiting": 1.0,
      "max_kv_cache_pct": 4.695,
      "preemptions": 0.0,
      "epp_restarted": false,
      "run_name": "1 model replica - repeat 1"
    },
    {
      "replicas": 1,
      "repeat": 2,
      "requests": 1166,
      "http_200": 1164,
      "http_non_200": 2,
      "offered_rps_per_gpu": 4.319,
      "served_rps_per_gpu": 4.293,
      "premium_burst_p95_ttft_ms": 374.167,
      "premium_burst_p99_ttft_ms": 520.643,
      "premium_burst_p95_tpot_ms": 17.134,
      "standard_burst_p95_ttft_ms": 666.022,
      "max_epp_queue": 2.0,
      "max_vllm_waiting": 2.0,
      "max_kv_cache_pct": 4.514,
      "preemptions": 0.0,
      "epp_restarted": false,
      "run_name": "1 model replica - repeat 2"
    },
    {
      "replicas": 1,
      "repeat": 3,
      "requests": 1166,
      "http_200": 1165,
      "http_non_200": 1,
      "offered_rps_per_gpu": 4.319,
      "served_rps_per_gpu": 4.296,
      "premium_burst_p95_ttft_ms": 366.486,
      "premium_burst_p99_ttft_ms": 501.625,
      "premium_burst_p95_tpot_ms": 16.156,
      "standard_burst_p95_ttft_ms": 679.059,
      "max_epp_queue": 2.0,
      "max_vllm_waiting": 1.0,
      "max_kv_cache_pct": 4.507,
      "preemptions": 0.0,
      "epp_restarted": false,
      "run_name": "1 model replica - repeat 3"
    },
    {
      "replicas": 2,
      "repeat": 1,
      "requests": 2338,
      "http_200": 2337,
      "http_non_200": 1,
      "offered_rps_per_gpu": 4.33,
      "served_rps_per_gpu": 4.317,
      "premium_burst_p95_ttft_ms": 332.381,
      "premium_burst_p99_ttft_ms": 508.074,
      "premium_burst_p95_tpot_ms": 14.055,
      "standard_burst_p95_ttft_ms": 737.231,
      "max_epp_queue": 5.0,
      "max_vllm_waiting": 2.0,
      "max_kv_cache_pct": 6.026,
      "preemptions": 0.0,
      "epp_restarted": false,
      "run_name": "2 model replicas - repeat 1"
    },
    {
      "replicas": 2,
      "repeat": 2,
      "requests": 2338,
      "http_200": 2338,
      "http_non_200": 0,
      "offered_rps_per_gpu": 4.33,
      "served_rps_per_gpu": 4.319,
      "premium_burst_p95_ttft_ms": 340.03,
      "premium_burst_p99_ttft_ms": 456.038,
      "premium_burst_p95_tpot_ms": 14.667,
      "standard_burst_p95_ttft_ms": 761.285,
      "max_epp_queue": 1.0,
      "max_vllm_waiting": 2.0,
      "max_kv_cache_pct": 5.029,
      "preemptions": 0.0,
      "epp_restarted": false,
      "run_name": "2 model replicas - repeat 2"
    },
    {
      "replicas": 2,
      "repeat": 3,
      "requests": 2338,
      "http_200": 2338,
      "http_non_200": 0,
      "offered_rps_per_gpu": 4.33,
      "served_rps_per_gpu": 4.317,
      "premium_burst_p95_ttft_ms": 348.581,
      "premium_burst_p99_ttft_ms": 451.98,
      "premium_burst_p95_tpot_ms": 14.026,
      "standard_burst_p95_ttft_ms": 646.192,
      "max_epp_queue": 2.0,
      "max_vllm_waiting": 2.0,
      "max_kv_cache_pct": 4.936,
      "preemptions": 0.0,
      "epp_restarted": false,
      "run_name": "2 model replicas - repeat 3"
    },
    {
      "replicas": 4,
      "repeat": 1,
      "requests": 4650,
      "http_200": 4650,
      "http_non_200": 0,
      "offered_rps_per_gpu": 4.306,
      "served_rps_per_gpu": 4.303,
      "premium_burst_p95_ttft_ms": 348.565,
      "premium_burst_p99_ttft_ms": 711.494,
      "premium_burst_p95_tpot_ms": 14.296,
      "standard_burst_p95_ttft_ms": 885.665,
      "max_epp_queue": 1.0,
      "max_vllm_waiting": 3.0,
      "max_kv_cache_pct": 6.473,
      "preemptions": 0.0,
      "epp_restarted": false,
      "run_name": "4 model replicas - repeat 1"
    },
    {
      "replicas": 4,
      "repeat": 2,
      "requests": 4650,
      "http_200": 4650,
      "http_non_200": 0,
      "offered_rps_per_gpu": 4.306,
      "served_rps_per_gpu": 4.302,
      "premium_burst_p95_ttft_ms": 321.926,
      "premium_burst_p99_ttft_ms": 538.0,
      "premium_burst_p95_tpot_ms": 14.008,
      "standard_burst_p95_ttft_ms": 736.757,
      "max_epp_queue": 0.0,
      "max_vllm_waiting": 4.0,
      "max_kv_cache_pct": 4.966,
      "preemptions": 0.0,
      "epp_restarted": false,
      "run_name": "4 model replicas - repeat 2"
    },
    {
      "replicas": 4,
      "repeat": 3,
      "requests": 4650,
      "http_200": 4650,
      "http_non_200": 0,
      "offered_rps_per_gpu": 4.306,
      "served_rps_per_gpu": 4.301,
      "premium_burst_p95_ttft_ms": 306.126,
      "premium_burst_p99_ttft_ms": 426.212,
      "premium_burst_p95_tpot_ms": 14.78,
      "standard_burst_p95_ttft_ms": 714.948,
      "max_epp_queue": 1.0,
      "max_vllm_waiting": 2.0,
      "max_kv_cache_pct": 8.006,
      "preemptions": 0.0,
      "epp_restarted": false,
      "run_name": "4 model replicas - repeat 3"
    }
  ],
  "topologies": {
    "1": {
      "runs": 3,
      "requests": 3498,
      "http_non_200": 5,
      "epp_restarted_runs": 0,
      "median_offered_rps_per_gpu": 4.319,
      "median_served_rps_per_gpu": 4.293,
      "median_premium_burst_p95_ttft_ms": 374.167,
      "median_premium_burst_p99_ttft_ms": 520.643,
      "median_premium_burst_p95_tpot_ms": 17.134,
      "median_standard_burst_p95_ttft_ms": 679.059,
      "median_max_epp_queue": 2.0,
      "median_max_vllm_waiting": 1.0,
      "median_max_kv_cache_pct": 4.514,
      "median_preemptions": 0.0
    },
    "2": {
      "runs": 3,
      "requests": 7014,
      "http_non_200": 1,
      "epp_restarted_runs": 0,
      "median_offered_rps_per_gpu": 4.33,
      "median_served_rps_per_gpu": 4.317,
      "median_premium_burst_p95_ttft_ms": 340.03,
      "median_premium_burst_p99_ttft_ms": 456.038,
      "median_premium_burst_p95_tpot_ms": 14.055,
      "median_standard_burst_p95_ttft_ms": 737.231,
      "median_max_epp_queue": 2.0,
      "median_max_vllm_waiting": 2.0,
      "median_max_kv_cache_pct": 5.029,
      "median_preemptions": 0.0
    },
    "4": {
      "runs": 3,
      "requests": 13950,
      "http_non_200": 0,
      "epp_restarted_runs": 0,
      "median_offered_rps_per_gpu": 4.306,
      "median_served_rps_per_gpu": 4.302,
      "median_premium_burst_p95_ttft_ms": 321.926,
      "median_premium_burst_p99_ttft_ms": 538.0,
      "median_premium_burst_p95_tpot_ms": 14.296,
      "median_standard_burst_p95_ttft_ms": 736.757,
      "median_max_epp_queue": 1.0,
      "median_max_vllm_waiting": 3.0,
      "median_max_kv_cache_pct": 6.473,
      "median_preemptions": 0.0
    }
  },
  "decision": {
    "data_publishable": true,
    "scale_out_pass": false,
    "comparisons_to_one_replica": {
      "2": {
        "offered_rps_per_gpu_change_pct": 0.25,
        "offered_load_matched": true,
        "served_rps_per_gpu_change_pct": 0.56,
        "premium_burst_p95_ttft_change_pct": -9.12,
        "pass": false
      },
      "4": {
        "offered_rps_per_gpu_change_pct": -0.3,
        "offered_load_matched": true,
        "served_rps_per_gpu_change_pct": 0.21,
        "premium_burst_p95_ttft_change_pct": -13.96,
        "pass": false
      }
    },
    "criteria": "Per-GPU offered load within 1%, no more than 15% served-RPS-per-GPU loss, no more than 20% premium burst p95 TTFT regression, zero non-200 responses, and no Endpoint Picker restarts in every topology."
  },
  "schema": "stable-upstream-multi-replica-analysis-v1",
  "business_question": "Does token-aware priority protection remain stable as the model pool scales?",
  "answer": "At matched offered load per GPU, served throughput remained flat and median premium p95 TTFT did not regress as the pool scaled from one to four model replicas. Sparse HTTP 429 responses at one and two replicas mean the data does not prove rejection-free service at every pool size.",
  "claim_boundary": "This package shows scale-out behavior for one Endpoint Picker and one, two, or four model replicas. It does not test multiple Endpoint Picker replicas."
}
