{
  "chart": "s2s-chart/1",
  "kind": "bars",
  "title": "Why some pages claim a 0.2-second first word: the same prompt sent again, against a fresh one",
  "subtitle": "Seconds to the first word on the mini PC when the same prompt is sent again to a loaded model, against a fresh prompt; the short bars are cache hits.",
  "unit": "s",
  "series": [
    "The same prompt sent again (cached)",
    "A fresh prompt"
  ],
  "rows": [
    {
      "label": "qwen3.5:9b",
      "notes": "",
      "values": [
        {
          "value": "0.21",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m1.json derived.ttft_ms.median 210.78 ms ÷ 1,000 (the warm runs, which re-sent one prompt)"
        },
        {
          "value": "16.03",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m1.json cold_load[] (ttft_ms − load_duration_ns ÷ 1e6) ÷ 1,000, median of 2 (rule 3 item 2) 16.0311"
        }
      ]
    },
    {
      "label": "gemma4:12b",
      "notes": "",
      "values": [
        {
          "value": "0.60",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m2.json derived.ttft_ms.median 597.6 ms ÷ 1,000 (the warm runs, which re-sent one prompt)"
        },
        {
          "value": "25.61",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m2.json cold_load[] (ttft_ms − load_duration_ns ÷ 1e6) ÷ 1,000, median of 2 (rule 3 item 2) 25.6059"
        }
      ]
    },
    {
      "label": "phi4:14b",
      "notes": "",
      "values": [
        {
          "value": "0.20",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m3.json derived.ttft_ms.median 196.62 ms ÷ 1,000 (the warm runs, which re-sent one prompt)"
        },
        {
          "value": "35.39",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m3.json cold_load[] (ttft_ms − load_duration_ns ÷ 1e6) ÷ 1,000, median of 2 (rule 3 item 2) 35.3861"
        }
      ]
    },
    {
      "label": "mistral-small3.2",
      "notes": "",
      "values": [
        {
          "value": "0.31",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m4.json derived.ttft_ms.median 314.85 ms ÷ 1,000 (the warm runs, which re-sent one prompt)"
        },
        {
          "value": "97.67",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m4.json cold_load[] (ttft_ms − load_duration_ns ÷ 1e6) ÷ 1,000, median of 2 (rule 3 item 2) 97.6731"
        }
      ]
    },
    {
      "label": "gemma4:26b",
      "notes": "",
      "values": [
        {
          "value": "0.33",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m5.json derived.ttft_ms.median 326.21 ms ÷ 1,000 (the warm runs, which re-sent one prompt)"
        },
        {
          "value": "11.43",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m5.json cold_load[] (ttft_ms − load_duration_ns ÷ 1e6) ÷ 1,000, median of 2 (rule 3 item 2) 11.4255"
        }
      ]
    },
    {
      "label": "Nemotron 30B-A3B",
      "notes": "",
      "values": [
        {
          "value": "0.18",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m6.json derived.ttft_ms.median 183.42 ms ÷ 1,000 (the warm runs, which re-sent one prompt)"
        },
        {
          "value": "14.08",
          "source": "/two-hours-on-battery/data/runs/cpu-mini-m6.json cold_load[] (ttft_ms − load_duration_ns ÷ 1e6) ÷ 1,000, median of 2 (rule 3 item 2) 14.0751"
        }
      ]
    }
  ],
  "source": "The battery page's kit, runs/cpu-mini-m1…m6.json: derived.ttft_ms.median from the warm runs (the cached figure) and cold_load[] for the fresh prompt (its counting rule 3). Table T9."
}
