The $0.71/pack ceiling was never stale on rates; it was stale on mix
The question
"What are current (Sept 2026) per-token/per-call rates for Sonnet 5, Grok Imagine, and FLUX, to refresh Scribble Works' stale $0.71/pack cost ceiling (last sourced 2026-06-24)?"
Scribble Works sells printable kids' game packs. Its credit tiers and break-even tables are all computed from a per-pack model-cost ceiling of $0.71, whose model rates were read from a cached table dated 2026-06-24 and never re-fetched.
What we already know (from the vault)
- The original derivation is fully documented and reproducible. [[2026-08-31-studio-charter]] §4 prices a 7-page pack at 8 Sonnet calls (4 build/revise + 4 critic), ~156,000 input tokens (4x25,000 build + 4x14,000 critic) and 40,000 output tokens (4x8,300 artifact emissions + 4x1,500 critic verdicts, rounded up from 39,200). At $2.00/$10.00 per MTok that is $0.312 + $0.400 = $0.712, carried as $0.71.
- The charter flagged its own weakest link correctly. It states the rates were "read from the local
claude-apiskill's model table, which carries its own cache date of 2026-06-24" and "not fetched from a live pricing page today... Confirm against anthropic.com/pricing before any of this sets a price." - The ceiling is text-only. Images were never in it. [[2026-09-01-engine-build-spec]] §6: "image cost is noise. The binding generation cost is TEXT." So Grok Imagine and FLUX contribute $0.00 to the $0.71 as derived.
- Prompt caching was named as an unpriced lever. The charter: "~20,000 of the 25,000 input tokens per build call are a stable prefix (design contract + template), exactly what caching is for, but no cache-read rate was verified, so no discount is claimed."
- The mix itself was already challenged. [[2026-09-01-strategy-spec-audit]] §1.10 notes the charter prices a 7-page pack at 4 critic rounds while Customize regenerates only one game, so the two surfaces do not share a cost unit. [[2026-09-11-unit-economics-cost-basis]] adds that no per-call cost counter was ever built, so nothing has replaced the derived figure with a measured one.
What the web says
- Claude Sonnet 5 list rates are unchanged: $2 / MTok input, $10 / MTok output. Fetched from https://claude.com/pricing on 2026-09-16 (anthropic.com/pricing now 301-redirects there). These are identical to the 2026-06-24 cached figures.
- Sonnet 5 prompt caching is now priced and confirmed: $2.50 / MTok cache write (5-minute TTL), $0.20 / MTok cache read. Same page, same date. That is the 1.25x write / 0.1x read multiplier applied to the $2 base.
- 1-hour TTL pricing is not displayed on the pricing page. The page states only "Prompt caching pricing reflects 5-minute TTL." The $4.00/MTok 1-hour write figure used below is derived from the documented 2x multiplier in the local
claude-apiskill, not fetched. Labeled as derived, not verified. - Batch API: "Save 50% with batch processing." Same page, same date.
- Grok Imagine image generation is $0.02 / image. Fetched from https://docs.x.ai/docs/models on 2026-09-16. Per-image billing, no per-token component for image models. This matches the rate already hard-noted in the repo.
- FLUX pricing was not fetched, because FLUX is not the right vendor and is not wired. The dispatch assumed Black Forest Labs / fal.ai / Replicate. The repo actually routes FLUX through Cloudflare Workers AI (
@cf/black-forest-labs/flux-1-schnellon the gateway's/workers-ai/path), so Cloudflare would have been the pricing source. It is moot: see the next section.
Convergences and contradictions
- The vault and the web agree exactly on Sonnet 5, and that is the headline. The 2026-06-24 cached table was right. Three months of drift produced a $0.00 change. The "stale rate" premise of the question does not survive contact with the pricing page.
- The repo contradicts the brief's premise about FLUX, and it contradicts it in the safe direction.
src/lib/customize/art-rail.jscarries the comment "Grok Imagine only. Decline to the original artwork on failure," and itsgenerateImagefunction imports only the Grok helpers.FLUX_MODEL,fluxUrlandextractFluxImageare still exported fromart.jsbut nothing imports them — FLUX is dead code onmain@6f15421. Pricing it would have produced a number for a model that cannot be called. - The repo already did a partial version of this refresh, and nobody propagated it.
src/lib/generation-budget.js:19carries the comment "Rates checked 2026-09-11: Sonnet $2/$10 per MTok; Grok $0.02/image." Both figures are confirmed correct today. That check landed five days ago and never reached the charter, the engine spec, or the break-even tables, which all still cite 2026-06-24.
Synthesis for RDCO
The refresh, priced on the identical mix. Re-pricing the charter's own 8-call, 156,000-in / 40,000-out mix at 2026-09-16 list rates gives $156,000/1M x $2.00 = $0.312 plus $40,000/1M x $10.00 = $0.400, for $0.712. The delta is $0.71 → $0.71, zero change. No component moved, because no rate moved. Every break-even cell in the charter and every credit-tier decision computed from $0.710 remains arithmetically valid. That is the defensible answer to the founder's question, and it is worth more than a new number would have been: it converts a flagged-unverified figure into a verified one at no cost to the model.
The real movement is caching, exactly where the charter predicted. The charter identified ~20,000 of each build call's 25,000 input tokens as a stable prefix but declined to claim a discount without a verified rate. That rate is now verified. Applying it to the same mix: the 4 build calls write the 20,000-token prefix once at $2.50/MTok ($0.050) and read it three times at $0.20/MTok ($0.012), with the 4x5,000 volatile remainder at full price ($0.040), so build input falls from $0.200 to $0.102. Critic input stays at $0.112 because the charter states page images dominate those 14,000 tokens and they change every round. Output is never cacheable and stays at $0.400. New total: $0.614, call it $0.61 — a 14% cut, and the only genuine change this refresh produces. On a 1-hour TTL (needed if start-to-start gaps between build calls exceed 5 minutes, which is plausible given each call emits ~8,300 tokens) the write doubles to a derived $4.00/MTok and the total lands at ~$0.64. Either way the driver is caching, not list rates.
Batch is the larger lever and it is structurally available on one rail only. A 50% discount would take the mix to $0.356/pack. It cannot apply to interactive Customize, where a parent waits. It can apply to the scheduled-delivery Workflow in charter §3, which fires per subscriber per period on cron and has no latency constraint. That rail is precisely the one the charter expects to force the API flip regardless of volume. Nobody has costed it as a batch workload, and doing so would roughly halve the marginal cost of the subscription product's core loop.
The image line needs a correction, not a refresh. "Image cost is noise" was asserted when images were unpriced. At $0.02/image with MAX_ICONS = 2 plus one art image, a Customize run generates up to 3 images for $0.06. Against a $0.71 pack that is 8%; against the $0.61 cached figure it is 10%. That is small, but "noise" is the wrong word for a line item approaching a tenth of unit cost, and it is additive to the $0.71 rather than included in it. Worse, art-rail.js states "The vision screen is MANDATORY for every model on both rails: no verdict, no picture" — every generated image triggers a Sonnet 5 vision evaluator call that appears in no cost model anywhere. The image rail's true cost is $0.02 plus an unmeasured text call, and the second term is the one nobody has bounded.
Why this is in the vault
This closes the explicit "confirm against anthropic.com/pricing before any of this sets a price" caveat in [[2026-08-31-studio-charter]] §4, which every Scribble Works credit-tier and break-even figure depends on, and it supplies the caching arithmetic the charter deferred. It also corrects two propagated errors: that FLUX is part of the image rail, and that image cost is negligible.
Open follow-ups
- The mandatory per-image Sonnet 5 vision evaluator call appears in no cost model. What are its real input tokens (it sends an image plus a long structured-audit rubric) and how many fire per Customize run including retries on a failed verdict?
- Do the build calls actually land inside a 5-minute TTL window? The $0.61 figure assumes they do. Measuring start-to-start gaps decides between $0.61 and $0.64, and is a prerequisite to claiming either.
- Should the scheduled-delivery Workflow rail move to the Batch API for a 50% cut? Nothing has been written on batch feasibility for that path, and it is the largest unexploited lever found here.
- Should the dead FLUX exports (
FLUX_MODEL,fluxUrl,extractFluxImage) be deleted, or was a Grok-to-FLUX fallback intended and silently dropped? The "Decline to the original artwork on failure" comment suggests deliberate removal, but no vault note records that decision. - The charter's 8-call mix is still unverified against a real call log, and the per-call cost counter proposed 2026-09-08 remains unbuilt. Until it ships, this refresh re-prices an assumption precisely rather than measuring reality.
- Does the 2026-09-11 in-repo rate check imply a general propagation gap, where verified figures land in code comments but never reach the vault docs that set prices?
Related
- [[2026-08-31-studio-charter]]
- [[2026-09-11-unit-economics-cost-basis]]
- [[2026-09-01-engine-build-spec]]
- [[2026-09-01-strategy-spec-audit]]
- [[2026-09-05-kids-subscription-box-comparables-scribble-works]]
Sources
Vault
~/rdco-vault/01-projects/printables-product/2026-08-31-studio-charter.md§4 — the original $0.71 derivation, call mix, token split, sourcing caveat~/rdco-vault/01-projects/printables-product/reviews/2026-09-11-unit-economics-cost-basis.md— no cost instrumentation exists; $0.71 unreplaced~/rdco-vault/01-projects/printables-product/2026-09-01-engine-build-spec.md§6 — "image cost is noise"~/rdco-vault/01-projects/printables-product/2026-09-01-strategy-spec-audit.md§1.10 — cost model measures the wrong unit~/rdco-vault/06-reference/research/2026-09-05-kids-subscription-box-comparables-scribble-works.md— break-even bands built on $0.710
Repo (~/Projects/scribble-works, main @ 6f15421, read 2026-09-16)
src/lib/customize/art-rail.js— "Grok Imagine only"; mandatory vision screen per imagesrc/lib/customize/art.js—GROK_MODEL, unusedFLUX_MODEL/fluxUrl,MAX_ICONS = 2src/lib/generation-budget.js— "Rates checked 2026-09-11: Sonnet $2/$10 per MTok; Grok $0.02/image";LIMIT_MICROS$19/week cap
Web (all fetched 2026-09-16)
- https://claude.com/pricing — Sonnet 5 $2/$10 per MTok; cache write $2.50/MTok (5-min TTL), cache read $0.20/MTok; "Save 50% with batch processing". 1-hour TTL rate not shown.
- https://docs.x.ai/docs/models — grok-imagine-image $0.02/image
- Cloudflare Workers AI pricing not fetched: FLUX is dead code on
main, so the figure would price a model that cannot be called. Flagged as deliberately unverified.