{
  "schema_version": "1.0.0",
  "note": "Why each value on the board moved. A diff can prove that a number changed; it cannot say whether the provider changed its price or this board changed what it prints, and publishing the second as the first would be a price rise that never happened. build_history.py fails the build on any change not listed here.",
  "kinds": {
    "vendor-change": "the provider changed the number on its own page",
    "board-correction": "what this board prints changed; the provider's charge did not",
    "newly-stated": "the provider documented a value it had not stated before"
  },
  "retrospective": "true on entries classified from the diff during backfill because the changelog of the day did not record the change.",
  "changes": [
    {
      "date": "2026-08-06",
      "model": "gpt-5.6-luna",
      "fields": [
        "price.in",
        "price.cached_in",
        "price.out"
      ],
      "kind": "vendor-change",
      "note": "OpenAI cut Luna by 80%, effective 2026-07-30: $1.00/$0.10/$6.00 to $0.20/$0.02/$1.20."
    },
    {
      "date": "2026-08-06",
      "model": "gpt-5.6-terra",
      "fields": [
        "price.in",
        "price.cached_in",
        "price.out"
      ],
      "kind": "vendor-change",
      "note": "OpenAI cut Terra by 20%, effective 2026-07-30: $2.50/$0.25/$15.00 to $2.00/$0.20/$12.00."
    },
    {
      "date": "2026-08-06",
      "model": "gpt-5.6-luna",
      "fields": [
        "price.cache_write"
      ],
      "kind": "board-correction",
      "note": "The pricing page had stated this rate all along and the board carried it as null. OpenAI disclosed nothing new; we filled a gap of our own making."
    },
    {
      "date": "2026-08-06",
      "model": "gpt-5.6-terra",
      "fields": [
        "price.cache_write"
      ],
      "kind": "board-correction",
      "note": "As above — the page stated the cache-write rate and the board had carried null."
    },
    {
      "date": "2026-08-06",
      "model": "gpt-5.6-sol",
      "fields": [
        "price.cache_write"
      ],
      "kind": "board-correction",
      "note": "As above — the page stated the cache-write rate and the board had carried null."
    },
    {
      "date": "2026-08-06",
      "model": "claude-fable-5",
      "fields": [
        "context.max_output"
      ],
      "kind": "newly-stated",
      "note": "Anthropic's launch doc states 128K max output per request; the board had carried it as null."
    },
    {
      "date": "2026-08-06",
      "model": "glm-5.2",
      "fields": [
        "context.window",
        "context.max_output"
      ],
      "kind": "newly-stated",
      "note": "Picked up from the secondary comparison source. Z.ai's own pricing page still states no window, which the row says."
    },
    {
      "date": "2026-08-06",
      "model": "mistral-medium-3.5",
      "fields": [
        "weights"
      ],
      "kind": "board-correction",
      "note": "Licence resolved against Mistral's models doc rather than left as 'check model card', which moved the row from partial to open. Mistral's terms did not change."
    },
    {
      "date": "2026-08-06",
      "model": "mistral-small-4",
      "fields": [
        "weights"
      ],
      "kind": "board-correction",
      "note": "As above — Apache-2.0 (v26.03) confirmed against the models doc."
    },
    {
      "date": "2026-08-06",
      "model": "mistral-large-3",
      "fields": [
        "weights"
      ],
      "kind": "board-correction",
      "note": "As above — Apache-2.0 (v25.12) confirmed against the models doc."
    },
    {
      "date": "2026-08-06",
      "model": "qwen3.7-plus",
      "fields": [
        "price.in",
        "price.out"
      ],
      "kind": "board-correction",
      "note": "Re-sourced from Together AI to Alibaba's own Model Studio page. The first-party rate is higher than the host rate the board had been printing; Alibaba did not raise anything."
    },
    {
      "date": "2026-08-06",
      "model": "qwen3.7-max",
      "fields": [
        "price.cached_in"
      ],
      "kind": "board-correction",
      "note": "Withdrawn, not cut: the $0.25 cached rate came from a host, and Alibaba's own page states no cached-input rate. A null here means unstated, not free."
    },
    {
      "date": "2026-08-06",
      "model": "qwen3.5-397b-a17b",
      "fields": [
        "price.cached_in"
      ],
      "kind": "board-correction",
      "note": "Withdrawn on the same grounds as Qwen3.7-Max — the $0.35 was a host's number."
    },
    {
      "date": "2026-08-06",
      "model": "llama-3.3-70b",
      "fields": [
        "context.window"
      ],
      "kind": "board-correction",
      "note": "128,000 corrected to the model's own 131,072. Not recorded in the 2026-08-06 changelog; classified from the diff when this history was backfilled.",
      "retrospective": true
    },
    {
      "date": "2026-08-14",
      "model": "gemini-3.6-flash",
      "fields": [
        "price.in",
        "price.cached_in",
        "price.out"
      ],
      "kind": "vendor-change",
      "note": "Halved to $0.75/$0.075/$3.75 when Gemini 3.7 Flash superseded it three weeks after launch."
    },
    {
      "date": "2026-08-14",
      "model": "llama-3.3-70b",
      "fields": [
        "context.max_output"
      ],
      "kind": "newly-stated",
      "note": "Filled in at 32,768 from Groq's models page."
    },
    {
      "date": "2026-08-20",
      "model": "deepseek-v4-flash",
      "fields": [
        "price.in",
        "price.cached_in",
        "price.out"
      ],
      "kind": "vendor-change",
      "note": "The peak/off-peak change announced 2026-08-13 went live on schedule at 2026-08-16 16:00 UTC. At this pass the board printed the off-peak rate — see the 2026-08-27 correction."
    },
    {
      "date": "2026-08-20",
      "model": "deepseek-v4-pro",
      "fields": [
        "price.in",
        "price.cached_in",
        "price.out"
      ],
      "kind": "vendor-change",
      "note": "As above: live 2026-08-16, printed here at the off-peak rate."
    },
    {
      "date": "2026-08-20",
      "model": "kimi-k2.6",
      "fields": [
        "price.in",
        "price.cached_in",
        "price.out"
      ],
      "kind": "board-correction",
      "note": "Moonshot's per-model pricing pages became citable again, and the first-party rate was lower than the host figure the board had been carrying. Moonshot did not cut the price; we stopped quoting a host for it."
    },
    {
      "date": "2026-08-20",
      "model": "kimi-k2.6",
      "fields": [
        "context.window"
      ],
      "kind": "newly-stated",
      "note": "262,144 documented on the restored per-model pricing page."
    },
    {
      "date": "2026-08-20",
      "model": "kimi-k2.7-code",
      "fields": [
        "context.window"
      ],
      "kind": "newly-stated",
      "note": "262,144 documented on the restored per-model pricing page."
    },
    {
      "date": "2026-08-27",
      "model": "gpt-5.6-sol",
      "fields": [
        "price.in",
        "price.cached_in",
        "price.cache_write",
        "price.out"
      ],
      "kind": "vendor-change",
      "note": "OpenAI cut Sol from $5.00/$0.50/$6.25/$30.00 to $4.00/$0.40/$5.00/$20.00. The pricing page carries no announcement date, so this is recorded on the date the board observed it."
    },
    {
      "date": "2026-08-27",
      "model": "deepseek-v4-flash",
      "fields": [
        "price.in",
        "price.cached_in",
        "price.out"
      ],
      "kind": "board-correction",
      "note": "Re-based from the off-peak rate to the peak rate, which DeepSeek's own pages call the standard rate. DeepSeek charged the same before and after; the board's column header promises list rates and was printing a time-of-day discount."
    },
    {
      "date": "2026-08-27",
      "model": "deepseek-v4-pro",
      "fields": [
        "price.in",
        "price.cached_in",
        "price.out"
      ],
      "kind": "board-correction",
      "note": "Re-based from off-peak to peak on the same grounds. No change to what DeepSeek charges."
    },
    {
      "date": "2026-09-03",
      "model": "mistral-medium-3.5",
      "fields": [
        "price.cached_in"
      ],
      "kind": "newly-stated",
      "note": "$0.15 sourced from docs.mistral.ai/inference/pricing, a third Mistral pricing page that prints the cached-input column filled per model. Mistral's rate did not change — this board could not previously cite one, and the row carried null. The page is now cited by the row."
    },
    {
      "date": "2026-09-03",
      "model": "mistral-small-4",
      "fields": [
        "price.cached_in"
      ],
      "kind": "newly-stated",
      "note": "$0.015 from the same newly cited page. No change to what Mistral charges."
    },
    {
      "date": "2026-09-03",
      "model": "codestral",
      "fields": [
        "price.cached_in"
      ],
      "kind": "newly-stated",
      "note": "$0.03 from the same newly cited page. No change to what Mistral charges."
    },
    {
      "date": "2026-09-03",
      "model": "mistral-large-3",
      "fields": [
        "price.cached_in"
      ],
      "kind": "newly-stated",
      "note": "$0.05 from the same newly cited page. No change to what Mistral charges."
    },
    {
      "date": "2026-09-03",
      "model": "claude-opus-5",
      "fields": [
        "context.max_output"
      ],
      "kind": "newly-stated",
      "note": "128,000 read off Anthropic's models overview page, which this row now cites. Previously null."
    },
    {
      "date": "2026-09-03",
      "model": "claude-sonnet-5",
      "fields": [
        "context.max_output"
      ],
      "kind": "newly-stated",
      "note": "128,000 from the same page. Previously null."
    },
    {
      "date": "2026-09-03",
      "model": "claude-haiku-4.5",
      "fields": [
        "context.window",
        "context.max_output"
      ],
      "kind": "newly-stated",
      "note": "200,000 window and 64,000 max output from the same page. Both had been null since the row was added; the row previously said only that it predates the 4.6+ 1M guarantee."
    },
    {
      "date": "2026-09-03",
      "model": "minimax-m3",
      "fields": [
        "context.max_output"
      ],
      "kind": "newly-stated",
      "note": "262,144 stated on the OpenRouter model page this row already cites. The price is unchanged: Together still lists $0.30/$0.06/$1.20, which is the rate this row prints."
    }
  ]
}