The weekly sweep only ever checked engines. A repriced model was invisible to it — a wrong price does not crash anything, it just reports the wrong cost, indefinitely. That is how all three GPT-5.6 tiers sat at their launch rates until this week, with the unit test meant to catch it pinning the same stale literals and staying green alongside them.
The sweep now diffs src/models.ts against both vendors' published price tables. They publish as markdown, so reading them needs no model. A model is reported as missing only when the vendor prices it and the engine binary can select it — the same test used by hand to keep gpt-5.6-pro and gpt-5.6-cyber out. A price source that cannot be fetched is reported as a regression rather than skipped, because an unverified pass is what let a spent Grok quota carry a pin for a week.
Its first run found two more wrong entries.
| model | registry had | published (Standard) |
|---|---|---|
o4-mini |
0.55 / — / 4.4 | 1.1 / 0.275 / 4.4 |
o3 |
2 / — / 8 | 2 / 0.5 / 8 |
o4-mini had been taken from the Batch column — OpenAI publishes four identically shaped tables per model, and nothing in a copied row marks which one it came from — so spend on it was under-reported by half. Neither model carried a cached rate, so cached reads were reported at the full input price instead of a quarter of it.
Note the direction: GPT-5.6 was over-reporting, these were under-reporting. Same class of defect, and neither is visible without diffing against the source.