Read the page that has the prices on it - #39
Merged
Merged
Conversation
Both Grok rows were marked vendorVerified against https://docs.x.ai/docs/models — a page that lists context windows and capabilities and no prices at all. Neither row carried a pricing block, so the numbers came from the LiteLLM feed while wearing a first-party stamp, and one of them was wrong: cached input on grok-4.5 sat at $0.50 where xAI publishes $0.30. LiteLLM has the same error, from the same cause — its entry cites /docs/models too. Both rows also lacked a long-context tier, and xAI bills every token in a request at the long-context rate once the prompt reaches 200k. A 250k -token grok-4.5 request was understated by half. Pin what the pricing table actually says, read today: grok-4.5 $2.00 / $0.30 / $6.00 >=200k: $4.00 / $0.60 / $12.00 grok-4.3 $1.25 / $0.20 / $2.50 >=200k: $2.50 / $0.40 / $5.00 and point verifiedUrl at /developers/pricing, which is where those figures live. The wider issue this exposes is left alone deliberately: 27 of the 43 vendorVerified rows carry no hand-entered price, so they inherit whatever the feed says under a stamp that reads first-party. That may be the intended workflow — confirm the feed against the vendor, record the date, do not duplicate the number — but it means a row can change underneath its own verification, which is how a LiteLLM error acquired a vendor badge here. Worth a decision rather than a quiet fix.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was wrong
Both Grok rows were marked
vendorVerified: trueagainsthttps://docs.x.ai/docs/models— a page that lists context windows and capabilities and no prices at all. Neither row carried apricingblock, so the numbers came from the LiteLLM feed while wearing a first-party stamp.One of them was wrong. From xAI's actual pricing table, read today:
Cached input on grok-4.5 was published here as $0.50; xAI says $0.30. LiteLLM has the identical error from the identical cause — its entry cites
/docs/modelstoo.Both rows also had no long-context tier. xAI bills every token in a request at the long rate once the prompt reaches 200k, so a 250k-token grok-4.5 request was understated by half.
The change
Pin the figures above, and point
verifiedUrlat/developers/pricing, which is where they live.The wider issue, left alone on purpose
27 of the 43
vendorVerifiedrows carry no hand-entered price. They are stamped verified with averifiedUrland a date, but their numbers come from the feed.That may well be the intended workflow — read the vendor page, confirm the feed agrees, record the date, don't duplicate the number by hand. It is a reasonable way to avoid maintaining 43 prices twice.
But it means a row can change underneath its own verification stamp. The human who checked grok-4.5 on 2026-08-03 saw whatever the feed said then, against a page that could not have confirmed the cached figure either way — and
$0.50kept the badge.Two defensible resolutions, and it is a design decision rather than a bug fix, so I have not made it:
vendorVerifiedrequires a pinnedpricingblock, enforced invalidate-catalog.ts. Costs duplication; makes the stamp mean exactly what it says.Verification
Root
npm run verifygreen: 742 tests, catalog valid, 159 pages, budgets, CSP, SEO. The sync re-ran and recorded both changes indocs/pricing-changelog.md.Noted but not included, to keep this to one problem: xAI publishes a 20% batch discount for grok-4.3 (and none for grok-4.5) which the catalog does not carry.