{
  "schema_version": 1,
  "hash_basis": "SHA-256 after CRLF to LF normalization",
  "products": {
    "llm-server-compare": {
      "title": "Which server decoded the same model faster?",
      "context": "Each row compares the same dense model within one August 2026 capture at 4,096 context. Ollama is the denominator. Rates are median output tokens per second.",
      "headers": [
        "Capture",
        "Model",
        "Ollama",
        "Other server",
        "Other rate",
        "Difference"
      ],
      "rows": [
        [
          "Aug 20",
          "Llama 3.2 3B",
          "318.51",
          "llama.cpp b10507",
          "338.22",
          "+6.2%"
        ],
        [
          "Aug 26",
          "Llama 3.2 3B",
          "350.52",
          "LM Studio 0.4.21",
          "316.00",
          "-9.8%"
        ],
        [
          "Aug 20",
          "Qwen 2.5 14B",
          "99.43",
          "llama.cpp b10507",
          "101.38",
          "+2.0%"
        ],
        [
          "Aug 26",
          "Qwen 2.5 14B",
          "102.21",
          "LM Studio 0.4.21",
          "97.63",
          "-4.5%"
        ]
      ],
      "limit": "The August 20 Ollama version was 0.32.1; August 26 used 0.32.15. Do not combine different capture dates into an upgrade result. The gpt-oss comparison is excluded because the August 20 upstream GGUF differed.",
      "retest": "Match the complete GGUF hash, runtime and backend versions, offload, context, prompt set, seed and cache policy. Retain a wall-clock check beside engine counters.",
      "inputs": [
        {
          "path": "llm-server-compare-2026-08.csv",
          "sha256_canonical_lf": "a10a9b1495a08c60fec046b5db1ca30bc5ca45b9a07eb5df0bc9e81a4d1fb94e"
        },
        {
          "path": "llm-server-compare-2026-08-26-lmstudio.csv",
          "sha256_canonical_lf": "461808fa04d8feec74bd22f8217e40f00d3c21112b9ad117fc53194d7caa2fc9"
        }
      ]
    },
    "mcp-server-bench": {
      "title": "What does one installed time-server call cost?",
      "context": "November 4, 2026: mcp-server-time 2026.8.18, MCP SDK 1.29.0, Python 3.14.6 on Windows. Each run used one discarded warmup and five fresh processes. Each process listed tools and verified a conversion from UTC 12:34 to UTC 12:34. The first run started at 16:45 UTC. We repeated it at 16:57 after formatting the downloadable probe changed its file hash. Both medians are shown separately; minimum and maximum are from the repeat.",
      "headers": [
        "Operation or sample",
        "First median",
        "Repeat min",
        "Repeat median",
        "Repeat max"
      ],
      "rows": [
        [
          "Fresh process to ready (ms)",
          "1365.789",
          "1114.266",
          "1151.799",
          "1475.933"
        ],
        [
          "List tools (ms)",
          "1.449",
          "0.931",
          "1.282",
          "1.514"
        ],
        [
          "Convert UTC 12:34 to UTC (ms)",
          "6.155",
          "3.668",
          "5.747",
          "6.549"
        ],
        [
          "Process-tree RSS after listing (MiB)",
          "72.355",
          "72.215",
          "72.320",
          "72.520"
        ],
        [
          "Process-tree RSS after conversion (MiB)",
          "72.500",
          "72.363",
          "72.512",
          "72.621"
        ]
      ],
      "limit": "RSS is the process tree's resident working set at two specific points, not peak or incremental allocation. This direct interpreter run does not use the August uvx wrapper and cannot establish a speedup over that cohort.",
      "retest": "Use the linked probe with a separate installed interpreter. Keep interpreter, package and SDK versions, transport, startup path, call arguments and repetition count with the result.",
      "inputs": [
        {
          "path": "benchmark-continuations/mcp-time-2026-11-04-initial.json",
          "sha256_canonical_lf": "4ead270329d9f33a22404d5b9f7db001e24858666dfc48838fe95540a05ec743"
        },
        {
          "path": "benchmark-continuations/installed_time_probe_initial.py",
          "sha256_canonical_lf": "0d27d2b65c6e4367e7d4eaa8a59fd3fb760955cd92949d4107a0a12f526cefe8"
        },
        {
          "path": "benchmark-continuations/mcp-time-2026-11-04.json",
          "sha256_canonical_lf": "740514fa81c8afce93356bb621926f95a6feff49bd0136e934f8a8db641e2991"
        },
        {
          "path": "benchmark-continuations/installed_time_probe.py",
          "sha256_canonical_lf": "8da282388c92c4b61a085f13f7e4c841c098ffda17bc5dba58ab2d9f39e47ba6"
        }
      ]
    },
    "rtx-5080-llm-throughput": {
      "title": "What changed when context rose from 4K to 16K?",
      "context": "The rows pair the shortest shared prompt for each model and capture. Model digest, quantization, driver, runtime, GPU, method, prompt token count and repetitions must match before a comparison appears.",
      "headers": [
        "Capture (UTC)",
        "Model",
        "Prompt tokens",
        "4K decode (tok/s)",
        "16K decode (tok/s)",
        "Difference"
      ],
      "rows": [
        [
          "2026-08-12",
          "gpt-oss:20b",
          "503",
          "190.14",
          "188.63",
          "-0.8%"
        ],
        [
          "2026-08-12",
          "llama3.2:3b",
          "471",
          "311.96",
          "312.89",
          "+0.3%"
        ],
        [
          "2026-08-12",
          "qwen2.5:14b",
          "488",
          "96.65",
          "97.02",
          "+0.4%"
        ],
        [
          "2026-08-12",
          "qwen2.5:7b",
          "488",
          "180.02",
          "179.66",
          "-0.2%"
        ],
        [
          "2026-08-26",
          "gpt-oss:20b",
          "503",
          "181.50",
          "183.00",
          "+0.8%"
        ],
        [
          "2026-08-26",
          "qwen2.5-coder:14b",
          "488",
          "94.89",
          "94.49",
          "-0.4%"
        ],
        [
          "2026-08-26",
          "qwen2.5-coder:7b",
          "488",
          "173.73",
          "174.58",
          "+0.5%"
        ],
        [
          "2026-08-26",
          "qwen3-coder:30b",
          "467",
          "61.89",
          "51.62",
          "-16.6%"
        ]
      ],
      "limit": "These are configured context lengths; the prompts did not fill both windows. Small differences in medians are not a confidence interval or proof that a larger window makes a model faster.",
      "retest": "Keep full model identity, quantization, model and prompt hashes, context, runtime, GPU and driver. Record prefill separately from decode; retain all repetitions.",
      "inputs": [
        {
          "path": "rtx-5080-llm-throughput.csv",
          "sha256_canonical_lf": "38a75b331f03f863968b661c4d3ae3753cd6c2da2bdc877bbced303d0cb7672a"
        }
      ]
    },
    "rtx-5080-llm-power-efficiency": {
      "title": "How much board energy is in each recorded trace?",
      "context": "These August traces include every interval between the first and last GPU power sample, including quieter intervals. For each adjacent pair, average the watts and multiply by elapsed seconds; sum the joules and divide by 3,600.",
      "headers": [
        "Model profile",
        "Samples",
        "Duration (s)",
        "Mean board W",
        "Board Wh"
      ],
      "rows": [
        [
          "Llama 3.2 3B",
          25,
          "24.9",
          "107.1",
          "0.741"
        ],
        [
          "Qwen 2.5 7B",
          30,
          "30.1",
          "153.1",
          "1.279"
        ],
        [
          "Qwen 2.5 14B",
          41,
          "41.5",
          "177.5",
          "2.046"
        ],
        [
          "gpt-oss 20B",
          41,
          "41.5",
          "148.0",
          "1.704"
        ]
      ],
      "limit": "Each row covers a different duration. This whole-trace integral is not energy per output token, a wall-meter reading or a replacement for the published loaded-watts and decode-rate comparison.",
      "retest": "Record token boundaries and timestamps against the same telemetry clock for energy per workload. Use a physical AC meter to measure the whole system; board telemetry cannot establish that value.",
      "inputs": [
        {
          "path": "rtx-5080-llm-power-efficiency-raw/stock448-llama3-2-3b-1.csv",
          "sha256_canonical_lf": "efd37956ee9fdd4a52610b102a7e08a6791f9162caecb61c4fe17562db0b17b8"
        },
        {
          "path": "rtx-5080-llm-power-efficiency-raw/stock448-qwen2-5-7b-1.csv",
          "sha256_canonical_lf": "ee2592443bb4106bc667ead60ba6661f7145e971f9e46cd62467b15291f3daec"
        },
        {
          "path": "rtx-5080-llm-power-efficiency-raw/stock448-qwen2-5-14b-1.csv",
          "sha256_canonical_lf": "16a6c658afa178d591dc2f69330e3ee05e7121291147bbc54a77d6ddb24c8b97"
        },
        {
          "path": "rtx-5080-llm-power-efficiency-raw/stock448-gpt-oss-20b-1.csv",
          "sha256_canonical_lf": "53f84c2f7de8ca64c160a15cc635733724021034ad79a6e8f1b875afdfa5ebbe"
        }
      ]
    },
    "rog-astral-rtx-5080-oc": {
      "title": "How much did the manual tune change each 3DMark score?",
      "context": "Each row stays within one named synthetic test on the owned Astral card. The percentage compares the manual result with stock in that same test.",
      "headers": [
        "Test",
        "Stock score",
        "Factory OC",
        "Manual OC",
        "Manual vs stock"
      ],
      "rows": [
        [
          "3DMark Time Spy Graphics",
          32350,
          33200,
          34500,
          "+6.6%"
        ],
        [
          "3DMark Time Spy Extreme",
          16244,
          16961,
          17600,
          "+8.3%"
        ],
        [
          "3DMark Port Royal",
          20300,
          21673,
          22500,
          "+10.8%"
        ],
        [
          "3DMark Speed Way",
          9010,
          9100,
          9900,
          "+9.9%"
        ],
        [
          "3DMark Steel Nomad",
          8150,
          8400,
          9200,
          "+12.9%"
        ]
      ],
      "limit": "Scores from different tests use different scales. A score gain is not a game FPS gain; generated display frames, native frames and input latency must remain separate.",
      "retest": "Add new stock and tuned runs as a separate dated cohort with test build, driver, power limit, fan policy, ambient conditions and repeated runs. Preserve original chart and telemetry files.",
      "inputs": [
        {
          "path": "gpu/rog-astral-rtx-5080-oc-2026-06-09/dataset.csv",
          "sha256_canonical_lf": "a54ff6dde294233c9cfb0e66a2c4449e78da35b35ad6cb2dce428c452663f8d2"
        }
      ]
    },
    "ha-voice-benchmark": {
      "title": "Which model traded response time for command accuracy?",
      "context": "Same August 26 GPU voice-brain workload, corpus 1.0.1. Accuracy uses 24 scored commands; latency is the median of five warm requests. Read both columns before choosing a model.",
      "headers": [
        "Model",
        "Warm median (ms)",
        "Command accuracy (%)",
        "Warm requests"
      ],
      "rows": [
        [
          "llama3.2-3b-q4km",
          "125.9",
          "70.8",
          "5"
        ],
        [
          "qwen3-4b-instruct-2507-q4km",
          "143.6",
          "83.3",
          "5"
        ],
        [
          "qwen2.5-7b-q4km",
          "291.1",
          "87.5",
          "5"
        ],
        [
          "qwen2.5-14b-q4km",
          "371.0",
          "95.8",
          "5"
        ],
        [
          "gpt-oss-20b-mxfp4",
          "585.4",
          "91.7",
          "5"
        ]
      ],
      "limit": "This step measures the voice brain. Microphone capture, speech recognition, speech synthesis and network delay are outside these latencies.",
      "retest": "Keep the corpus, scorer, chat template, GGUF, offload and server build; publish speech-to-text and text-to-speech measurements as their own stages.",
      "inputs": [
        {
          "path": "ha-voice-brain-bench-2026-08.csv",
          "sha256_canonical_lf": "86de6caceed8304d3d1e8fce2bbc1a9367f5a54e6f9122dcbc942bcb3133d8d1"
        }
      ]
    },
    "local-coding-evaluation": {
      "title": "Did each coding task pass on both attempts?",
      "context": "This groups the two recorded attempts by task, model digest, evaluation version and configured context. A split result means that exactly one of the two attempts passed.",
      "headers": [
        "Model",
        "Context",
        "Tasks",
        "Both passed",
        "Split",
        "Neither passed"
      ],
      "rows": [
        [
          "devstral:24b",
          "4096",
          8,
          6,
          0,
          2
        ],
        [
          "gpt-oss:20b",
          "8192",
          8,
          8,
          0,
          0
        ],
        [
          "qwen2.5-coder:14b",
          "8192",
          8,
          5,
          0,
          3
        ],
        [
          "qwen2.5-coder:7b",
          "8192",
          8,
          4,
          0,
          4
        ],
        [
          "qwen3-coder:30b",
          "8192",
          8,
          6,
          1,
          1
        ]
      ],
      "limit": "Two attempts are too few to estimate a stable pass probability. These eight tasks do not measure overall coding ability, and context differs between models.",
      "retest": "Keep the same tasks, scorer, executable tests, prompts, model digest and independent repetitions. Preserve split results when publishing a new cohort.",
      "inputs": [
        {
          "path": "rtx-5080-coding-eval-v1.csv",
          "sha256_canonical_lf": "18e5efc001501d0170fc44d4b93caad928c82c1d2c8b97f851ade1bdd0a25610"
        }
      ]
    },
    "fps-calculator-catalogue": {
      "title": "Which results actually state a test date?",
      "context": "The lookup preserves each source separately. A publication date can tell you when a chart appeared; it does not establish the test date when the provider did not report one.",
      "headers": [
        "Provider",
        "Measured rows",
        "Games",
        "Test date stated",
        "Test date unspecified"
      ],
      "rows": [
        [
          "TechFuelHQ",
          5,
          3,
          5,
          0
        ],
        [
          "TechSpot",
          192,
          4,
          0,
          192
        ]
      ],
      "limit": "These rows are exact lookup tuples, not a prediction model. Do not blend providers, game scenes or rendering settings to fill an unsupported combination.",
      "retest": "Keep provider, chart hash, hardware, scene, preset, resolution, metric and date basis. Validate the source transcription separately from any formula experiment.",
      "inputs": [
        {
          "path": "fps-calculator/catalog.v1.json",
          "sha256_canonical_lf": "860c633571abddb4a6632e1d65653fd5de41b9c32ed5a1eda85c0ce518753153"
        }
      ]
    }
  }
}
