{
 "schema_version": "1.0",
 "page_kind": "article",
 "pack_kind": "generate",
 "slug": "how-the-speed-tool-works",
 "title": "How the speed tool works",
 "dek": "The speed tool is one web page that plays an answer back at a token speed: first the wait before the first word, then the writing. It opens on three filled boxes and one playback. Type any numbers, or fill the boxes from a graphics card and model this workshop measured: one run from the research hub's hardware roster, linked to the page that printed it.",
 "published": "2026-10-25",
 "series": [
  "guide"
 ],
 "licence": "CC BY 4.0",
 "status": "pending",
 "pack_note": "7 chip(s) survived the gates and 6 of them were removed by hand, leaving 1; the floor is 2; no judge is seated, so every chip is held",
 "notice": "items with published:false are held and are not this page's published words",
 "source": {
  "url": "https://research.strata2signal.com/how-the-speed-tool-works/",
  "md_url": "https://research.strata2signal.com/how-the-speed-tool-works/index.md",
  "md_sha": "a6d39dd8a6f8dcd909c9d0f28d49d6ff7b9f56960ca1fa5f24b56bbee148c834",
  "html_sha": "d2f568bd9c3034d2094db49b8ef767bbd66fa34fa0a4038cea150cf2cdcd5cc8",
  "anchors_sha": "91022421a1658c43ea6596dece8052aa610ad7026aefe99b6b418a3ff9a27bc8"
 },
 "short": {
  "paragraph": "The tool is playback, not a model. Three boxes drive it: the writing speed (136.3 tokens a second to start), the wait before the first word (0.51 seconds) and the reading speed (2,271 tokens a second, used only when the wait is empty). One button fills them from six graphics cards and the models we ran on them, 22 choices; each shows ONE run we measured, the one in the middle by writing speed, never an average, because an average can be a speed no run produced. The 191 rows the card list's rules leave out are on its data page with their reasons. What you type and pick stays in the tab until you copy the link; the link keeps it after the #, which no server receives.",
  "from_dek": false,
  "counts": {
   "words": 2322,
   "minutes": 11,
   "tables": 1,
   "kit": false
  },
  "bullets": []
 },
 "sections": [
  {
   "id": "the-words-this-page-leans-on",
   "heading": "The words this page leans on",
   "level": 2,
   "span": [
    1746,
    2731
   ],
   "chunks": [
    [
     1746,
     2731
    ]
   ],
   "chars": 985,
   "digest": "this section defines terms used in the article, including token, writing speed (decode), wait before the first word (time to first token, TTFT), quantization, engine, and the roster.",
   "digest_skipped": null
  },
  {
   "id": "three-boxes",
   "heading": "Three boxes and one answer",
   "level": 2,
   "span": [
    2731,
    4840
   ],
   "chunks": [
    [
     2731,
     4840
    ]
   ],
   "chars": 2109,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "why-one-run",
   "heading": "Why one run, and why no mean",
   "level": 2,
   "span": [
    4840,
    6595
   ],
   "chunks": [
    [
     4840,
     6595
    ]
   ],
   "chars": 1755,
   "digest": "the tool selects a single run from the roster based on specific rules to avoid the inaccuracies of means or medians. it explains how a single measured run is used to populate the three boxes.",
   "digest_skipped": null
  },
  {
   "id": "what-each-box-means",
   "heading": "What each box means",
   "level": 2,
   "span": [
    6595,
    7764
   ],
   "chunks": [
    [
     6595,
     7764
    ]
   ],
   "chars": 1169,
   "digest": "this section explains the function of each box: writing speed must be a number between 0.5 to 2,000 tokens a second, wait before the first word ranges from 0.01 to 120 seconds, and reading speed is used if the wait box is empty.",
   "digest_skipped": null
  },
  {
   "id": "which-runs",
   "heading": "Which runs can fill the boxes",
   "level": 2,
   "span": [
    7764,
    10638
   ],
   "chunks": [
    [
     7764,
     10638
    ]
   ],
   "chars": 2874,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "the-settings-panel",
   "heading": "The settings panel",
   "level": 2,
   "span": [
    10638,
    11394
   ],
   "chunks": [
    [
     10638,
     11394
    ]
   ],
   "chars": 756,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "what-it-cannot-tell-you",
   "heading": "What it cannot tell you",
   "level": 2,
   "span": [
    11394,
    12000
   ],
   "chunks": [
    [
     11394,
     12000
    ]
   ],
   "chars": 606,
   "digest": "the article notes that the playback is steady, whereas a live model's stream is not. it lists factors like heat, the engine, and the tokenizer that affect real-world performance.",
   "digest_skipped": null
  },
  {
   "id": "what-the-page-keeps",
   "heading": "What the page keeps, and does not",
   "level": 2,
   "span": [
    12000,
    13392
   ],
   "chunks": [
    [
     12000,
     13392
    ]
   ],
   "chars": 1392,
   "digest": null,
   "digest_skipped": null
  },
  {
   "id": "how-to-check-our-work",
   "heading": "How to check our work",
   "level": 2,
   "span": [
    13392,
    13978
   ],
   "chunks": [
    [
     13392,
     13978
    ]
   ],
   "chars": 586,
   "digest": null,
   "digest_skipped": "credits"
  },
  {
   "id": "who-ran-this",
   "heading": "Who ran this, and thanks",
   "level": 2,
   "span": [
    13978,
    15492
   ],
   "chunks": [
    [
     13978,
     15492
    ]
   ],
   "chars": 1514,
   "digest": null,
   "digest_skipped": "credits"
  }
 ],
 "chips": [
  {
   "id": "c-0461ab3b",
   "q": "what happens if the wait box is left empty?",
   "a": "If the wait box is empty, the reading speed is used to calculate the wait. The wait is determined by dividing the question's length by the reading speed, and the status indicates that the calculation is based on reading only and excludes setup time.",
   "cites": [
    "what-each-box-means"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  }
 ],
 "related": [
  {
   "slug": "reading-is-fast",
   "why": "shares ground with § What each box means · § A measurement, from our own card"
  },
  {
   "slug": "ten-minutes-with-living-artists",
   "why": "shares ground with § What it cannot tell you · § What to take with you"
  },
  {
   "slug": "chopin-in-five-minutes",
   "why": "shares ground with § What it cannot tell you · § What we did NOT measure"
  }
 ],
 "thanks": "## Who ran this, and thanks {#who-ran-this}\n\n**Ollama**, **llama.cpp**, **vLLM** and the **Strata engine** served every run a pick can show; the figures are theirs before they are ours. The **Hugging Face** `tokenizers` library (0.23.2) split the two texts, and **Google**, **OpenBMB**, **Mistral AI**, **Unsloth**, **NVIDIA**, **Microsoft** and **Qwen** published the eight tokenizer files the tool carries, each named with its repository and revision in `samples.json`. **Marc Brysbaert**'s 2019 review gives the chip its 238 words a minute. None of them owed us anything. If we have named your work wrongly, tell us at [hello@strata2signal.com](mailto:hello@strata2signal.com); corrections are dated on this page.\n\nA small (human) team asked for the tool and this page, ruled the open questions the agents brought it, and signed both for publication. A fleet of AI agents built the tool, drafted this page with a table tracing each figure to the tool's files, audited both, and checked every figure against those files before release. The agents are Anthropic's Claude models; no Anthropic model is measured by the tool or on this page.\n\nCorrections and later measurements will be added below, each dated (UTC), with a window at both ends where one applies, saying in plain words what it counts. The tool's figures are rows from other exhibits, so when a starting number or the card list changes, the dated block here names the exhibit row the new figure was read from and the one it replaces, in one sentence.",
 "kit": null,
 "seat_class": {
  "writer": "gemma-class",
  "judge": null,
  "writer_runtime": "vllm"
 },
 "bench": {
  "bullets_written": 3,
  "bullets_kept": 0,
  "digests_written": 8,
  "digests_kept": 4,
  "chips_written": 8,
  "chips_kept": 1,
  "chips_grounded": 0,
  "chips_published": 0,
  "dropped_by": {
   "new_noun": 1,
   "figure": 0,
   "length": 0,
   "cite": 0,
   "judge": 0,
   "quote": 0,
   "directive": 0,
   "redaction": 0,
   "profanity": 0,
   "identifier": 0,
   "bare_figure": 1,
   "house_voice": 0,
   "editorial": 0,
   "hand-edit": 12
  },
  "new_noun_tokens_checked": [
   "0.01",
   "0.5",
   "000",
   "072",
   "096",
   "1",
   "10",
   "120",
   "12b-instruct-2407",
   "131",
   "136.274",
   "136.3",
   "14",
   "2",
   "30",
   "3090",
   "350",
   "4",
   "47",
   "510.56",
   "7",
   "GeForce",
   "NVIDIA",
   "RTX",
   "TTFT",
   "W"
  ],
  "new_noun_tokens_withheld": 1,
  "figure_definition": "v3",
  "figure_boundary": "guarded",
  "drops": [
   {
    "kind": "bullet",
    "reason": "bare_figure",
    "item": "an NVIDIA GeForce RTX 3090 writes at 136.274",
    "detail": "the cited section writes this figure as '136.274 tokens' and the bullet prints '136.274' alone"
   },
   {
    "kind": "chip",
    "reason": "new_noun",
    "item": null,
    "item_chars": 3,
    "withheld": "a string naming something the article does not",
    "detail": ""
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 201,
    "text_sha": "ac142189579e",
    "section": "three-boxes",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "prints the writing speed 136.3 and the reading speed 2,271 with no unit; the page gives both as tokens a second, and units go at the point of use",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-24: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-24 (matched on its section). The earlier record reads: removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: prints the writing speed 136.3 and the reading speed 2,271 with no unit; the page gives both as tokens a second, and units go at the point of use. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 182,
    "text_sha": "711c18b98bc2",
    "section": "the-settings-panel",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "puts the compare feature in the settings panel; the page says '+ Compare with another speed' sits below the playback",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-24: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-24 (matched on its section). The earlier record reads: removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: puts the compare feature in the settings panel; the page says '+ Compare with another speed' sits below the playback. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 205,
    "text_sha": "a943682df48a",
    "section": "which-runs",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "says the build selects its 47 writing speeds, 14 waits and 7 reading rates from 22 options on six cards; the page starts from the roster's 143, 89 and 27 and says what is left sits in 22 options, so the options are the result, not the source",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-24: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-24 (matched on its section). The earlier record reads: removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: says the build selects its 47 writing speeds, 14 waits and 7 reading rates from 22 options on six cards; the page starts from the roster's 143, 89 and 27 and says what is left sits in 22 options, so the options are the result, not the source. Not a gate drop, and recorded here so the ledger a…"
   },
   {
    "kind": "digest",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 192,
    "text_sha": "9533614c5fab",
    "section": "what-the-page-keeps",
    "withheld": "one section digest removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "compresses the page's privacy paragraph to user inputs that stay in the tab or address bar, and drops what the page says next: copying the link writes it to the clipboard and the browser's history, which a synced browser sends to an account, and anyone it is shared with can read it",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-24: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-24 (matched on its section). The earlier record reads: removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: compresses the page's privacy paragraph to user inputs that stay in the tab or address bar, and drops what the page says next: copying the link writes it to the clipboard and the browser's history, which a synced browser sends to an account, and anyone it is shared with can read it. Not a gat…"
   },
   {
    "kind": "chip",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 295,
    "text_sha": "64cde3ffce77",
    "chip_id": "c-352f078c",
    "withheld": "one chip removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "merges the answer's two ranges into '1 to 4,096 tokens'; the page gives 1 to 5 paragraphs or 10 to 4,096 tokens",
    "detail": "Carried forward by --carry-hand-edits on 2026-10-24: the writer produced this line again and the pack on disk records it removed by hand on 2026-10-24 (matched on its question). The earlier record reads: removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: merges the answer's two ranges into '1 to 4,096 tokens'; the page gives 1 to 5 paragraphs or 10 to 4,096 tokens. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "bullet",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 54,
    "text_sha": "53d4082aff52",
    "figure": "350",
    "withheld": "one bullet removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "a card model written with 'the'; and the page gives 350 W as the stock limit the card's exhibit names, not as every board's",
    "detail": "removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: a card model written with 'the'; and the page gives 350 W as the stock limit the card's exhibit names, not as every board's. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "bullet",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 62,
    "text_sha": "f67f6033605f",
    "figure": "510.56",
    "withheld": "one bullet removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "drops the conditions the page prints with the wait (Ollama 0.32.13, the 300 W limit, a repeated 519-token question), and the page says about 0.49 s of it is that Ollama version re-reading the model file's metadata",
    "detail": "removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: drops the conditions the page prints with the wait (Ollama 0.32.13, the 300 W limit, a repeated 519-token question), and the page says about 0.49 s of it is that Ollama version re-reading the model file's metadata. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "chip",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 335,
    "text_sha": "5e1f85640ad4",
    "chip_id": "c-1afbcdb3",
    "withheld": "one chip removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "makes the page's ratio general ('typically about four-fifths of a word'); the page gives it for the prose the tool types alone (343 words, 415 to 420 tokens) and says each model splits text its own way",
    "detail": "removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: makes the page's ratio general ('typically about four-fifths of a word'); the page gives it for the prose the tool types alone (343 words, 415 to 420 tokens) and says each model splits text its own way. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "chip",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 293,
    "text_sha": "02e3eaf8267a",
    "chip_id": "c-b0337548",
    "withheld": "one chip removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "says the page gives the model, engine and power limit behind each starting number; the reading speed's exhibit does not name the model, and the reading speed is not played back: it works out a wait only when the wait box is empty",
    "detail": "removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: says the page gives the model, engine and power limit behind each starting number; the reading speed's exhibit does not name the model, and the reading speed is not played back: it works out a wait only when the wait box is empty. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "chip",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 305,
    "text_sha": "e4cbb28dfd66",
    "chip_id": "c-03f3c15b",
    "withheld": "one chip removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "drops the rule's condition: the middle run by writing speed is chosen among the runs that measured the most of the three numbers, not among every run of that card, model and engine",
    "detail": "removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: drops the rule's condition: the middle run by writing speed is chosen among the runs that measured the most of the three numbers, not among every run of that card, model and engine. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "chip",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 316,
    "text_sha": "e7715d1bccf1",
    "chip_id": "c-f9b2785d",
    "withheld": "one chip removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "adds a purpose the page does not give ('to ensure consistency'), and the page says the runs in one option still differ in weights, cache, window and settings",
    "detail": "removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: adds a purpose the page does not give ('to ensure consistency'), and the page says the runs in one option still differ in weights, cache, window and settings. Not a gate drop, and recorded here so the ledger adds up."
   },
   {
    "kind": "chip",
    "reason": "hand-edit",
    "item": null,
    "item_chars": 268,
    "text_sha": "9c8ba0cf5a6f",
    "chip_id": "c-31376420",
    "withheld": "one chip removed from this pack by hand",
    "removed_utc": "2026-10-24",
    "why": "asks what 'prevents' the tool from showing real-world variability; the tool is steady playback by design, and the factors it lists are what move a live model's stream",
    "detail": "removed from this pack by hand on 2026-10-24 (UTC), after the writer ran and after the gates had counted: asks what 'prevents' the tool from showing real-world variability; the tool is steady playback by design, and the factors it lists are what move a live model's stream. Not a gate drop, and recorded here so the ledger adds up."
   }
  ]
 },
 "generated_utc": "2026-10-24T20:44:41Z"
}
