{
  "claim": "A 32×32 jev-paint painting is between 1 and 8 Jev requests and roughly 1,000 to 3,100 typed questions, for about a fifth of a US cent to a bit over one cent. The request and question counts are exact — they come from running jev-paint's own buildRequests() offline. The cost is an estimate, because the request bodies were never sent: the token counts are inferred from a characters-per-token ratio calibrated on a different project's recorded Jev usage.",
  "method": "Ran jev-paint's web/jev.mjs buildRequests(prompt, method, 32) in Node and counted the returned batches and questions directly. Serialized each batch with JSON.stringify and counted characters. Converted characters to input tokens using the 2.726-3.444 chars/token band measured over the 226 recorded Jev requests in openroboto-ai/jev-robot-control (which log both the exact request payload and the API's own input_tokens). Priced at $0.042 per 1M input tokens, output free, which is the rate that fits those 226 recorded (input_tokens, output_tokens, cost_usd) triples to the cent.",
  "source": "https://github.com/achimala/jev-paint · https://github.com/openroboto-ai/jev-robot-control",
  "captured": "2026-09-19",
  "note": "Latency is NOT estimated here and no wall-clock claim is made: nobody has published a Jev latency figure for a 27k-token request, and these bodies were never sent. Four requests run concurrently, so an 8-request painting is two waves. The prompt used for sizing is jev-paint's own committed sunflower fixture prompt; a longer prompt shifts every row up slightly because the state block is repeated in every batch.",
  "columns": [
    { "key": "rep", "label": "representation" },
    { "key": "per", "label": "questions / pixel" },
    { "key": "type", "label": "question type · options" },
    { "key": "q", "label": "questions", "align": "right" },
    { "key": "req", "label": "requests", "align": "right" },
    { "key": "tok", "label": "input tokens (est)", "align": "right" },
    { "key": "cost", "label": "cost (est)", "align": "right" }
  ],
  "rows": [
    {
      "rep": "silhouette",
      "per": 1,
      "type": "noul",
      "q": 1024,
      "req": 1,
      "tok": "35k–44k",
      "cost": "$0.0015–0.0018"
    },
    {
      "rep": "palette",
      "per": 1,
      "type": "choice · 16 colours",
      "q": 1024,
      "req": 8,
      "tok": "98k–123k",
      "cost": "$0.0041–0.0052"
    },
    {
      "rep": "rgb",
      "per": 3,
      "type": "noul × R/G/B",
      "q": 3072,
      "req": 4,
      "tok": "110k–139k",
      "cost": "$0.0046–0.0058"
    },
    {
      "rep": "hsl",
      "per": 3,
      "type": "choice · 9 hues, score · 3, score · 5",
      "q": 3072,
      "req": 8,
      "tok": "218k–275k",
      "cost": "$0.0091–0.0116"
    }
  ]
}
