What I got wrong
For a while this page displayed what each run cost, and those numbers were fabricated: a hardcoded constant plus your character count divided by four. Fixing it exposed a second problem. Prompt caching had never fired at all, because the cache marker sat on a prompt too short to qualify on either model.
Both are fixed, and everything below is what I rebuilt. The lesson is narrower than test your code: measure the thing you are claiming. I had written confidently about model routing on a page whose own instrumentation was guessing.
And I shipped this page as three separate tools, each with its own name, icon, and accent color. Three was branding, not architecture — the corpus, the guardrails, and the judgment underneath never changed. It took an outside eye pointing out how machine-made the symmetry felt before I collapsed them into the single question box above.
