How we work
Where the numbers come from.
Every plan on TokenPlans is a hand-checked record with a source URL and a verification date. This page explains how we gather, verify and rate each figure — and where an estimate stops being a quote.
At a glance
What this site tracks
We track 28 providers and 81 plans in a single live table, and keep an append-only ledger of 75 plan-value changes. The scope is deliberately narrow: fixed-price, monthly AI coding subscriptions for the models you run in an agent harness.
01 · Verification
Every figure is sourced and dated
Plan and provider records are edited manually from the provider's own pricing page. Each record carries the source URL it was read from and the date it wasverified, plus alastChecked timestamp so you can judge freshness at a glance.
Manual, not scraped blindly
A human reviews the pricing-page HTML and encodes the numbers into typed records. No automated scraper decides what a plan costs — the trade-off for accuracy over volume.
Checked on build
A build-time validator checks referential integrity — orphan plans, missing brand colors, empty model lists, broken prices — so a broken data edit fails the build rather than shipping silently.
Community cross-check
Pricing changes and new plans are cross-checked against Reddit community reports (r/opencodeCLI, r/hermesagent) — when the community flags a change, the table follows after re-verification against the provider's own page.
02 · Confidence
How much stock to put in a Req/$1 figure
The calculator's absolute Req / $1 number is only as good as its inputs. We label each plan with a confidence level so you know whether it's a figured rate or an anchored estimate.
Exact
No marker
The per-token rates and the budget are both published by the provider. The absolute number is a direct computation from stated figures.
Proxy
Prefixed ~
Anchored to a published allowance, pool, or energy structure combined with stand-in rates. The true per-$1 rate is likely within ~20–50%; relative comparisons between plans are still useful.
Coarse
Prefixed ≈
The subscription publishes only fair-use or message caps, not token math. The absolute figure may be off by an order of magnitude (±5–10×) — compare within this provider only.
A plan that bills by a published API cap included at list price carries aborrowed-cap annotation: its Req/$1 is a value comparison — what the included API usage is worth per $1 of subscription — not a dollar allowance you paid for.
03 · Exclusions
What we deliberately don't track
Keeping the scope tight is how the numbers stay honest. A few things never make it into the table:
Non-monthly billing and one-off deals
Only standard monthly plans are priced. Annual-billing anchors, temporary promos and one-off credit bumps are not tracked as the headline price — recurring discounts that materially change a plan get a separate discount field and a changelog event.
Non-text and non-coding models
The catalog is coding and agentic text LLMs only. Audio, image and video generation models are out of scope and never enter model lists or the calculator.
Invented per-model rates
If a provider publishes no per-model pricing, we render an honestn/a rather than borrowing another provider's rate for the same model name. A missing number beats a fabricated one.
Future and past states
Records describe what's available now. Discontinued plans, upcoming price moves and past promotions live only in the changelog ledger, never in the current plan fields.
04 · Corrections
When we get it wrong, it's on the record
The changelog is an append-only ledger: corrections are new entries, never edits to history. A site correction names what changed and why, so the fix is as auditable as the original data. Requests and corrections are welcome on the r/opencodeCLI or r/hermesagent launch threads.
Newsletter
The weekly brief — plan churn, dated.
A plain weekly digest of every tracked price move, ceiling change and model-list update — pulled straight from the dated changelog ledger, with a one-line “worth switching?” note on each. Free. No spam, unsubscribe anytime.