GO's $60 is hard — and that changes the rollover rule
GO's $60 is hard — and that changes the rollover rule
Young, 2026-10-10: "GO's $60 hard or soft? — Check the allowance list for GO" — with the usage-limits rules and the per-model monthly table.
Answer: HARD. And more precisely — it is a per-model usage ceiling, not a workspace bill. Both halves of that matter, and the second one changes my stage's design.
1. The answer to the blocking question
HARD. A GO monthly limit is a usage ceiling: when a model reaches it, requests fail — they do not keep serving and bill you.
| If it were soft | It would bill overage and keep going |
|---|---|
| It is hard | The model blocks with 429 provider.quota, and no extra charge lands |
Why I can state that with confidence despite not reaching the table:
- Young's quoted rule: "Usage limits are defined as monthly dollar amounts" — a limit, not a price.
- And V2's live breaker proves the behaviour.
state/model_health.jsonholds entries likeopencode-go/...withprovider.quota: Rate limit exceededandok: 0,until: <cooldown>. Those are hard blocks on GO models, already measured in production. Not an overage notice — a refusal.
⚠️ Honest limit: opencode.ai/docs/go/ truncated before the usage-limits
section on two fetch attempts — I have the plan pricing and the model list, not
the table. So the per-model numbers below are Young's stated figures, and the
hard-block behaviour is my inference from the wording plus V2's measured 429s.
Neither is a probe of a live exhaustion.
2. The finding that matters more: the limit is PER MODEL
This is the part I did not have, and it invalidates part of my own design.
Each model carries its own monthly limit. From Young's table:
| GO paid model | Monthly limit | 5-hour cap (20%) | Weekly cap (50%) |
|---|---|---|---|
| GLM-5.3-Flash | $60 | $12 | $30 |
| MiMo-V2.6-Flash | $60 | $12 | $30 |
| Muse Spark 1.2 Contributor | $60 | $12 | $30 |
| Qwen3.8 Flash | $30 | $6 | $15 |
| GPT 6 Luna (≤272K) | $15 | $3 | $7.50 |
| Claude Haiku 5.5 (≤100K) | $15 | $3 | $7.50 |
Two consequences, and both are load-bearing:
a) "GO exhausted" is not a single state
One model hitting its cap says nothing about another. GLM can be at $60 while
MiMo sits unused. My ledger's billing_instrument: go_allowance is therefore too
coarse — it records that we drew GO, never which model's ceiling we drew
against.
So the ledger needs the model id alongside the instrument, or a rollover cannot tell "GO is done" from "that model is done".
b) The binding constraint is not the $60 — it is the 5-hour window
5-hour = 20% of the monthly ceiling. For GLM that is $12 per 5 hours. At V2's measured rate — a single model consumed $10.34 in one day — a $12 five-hour ceiling is roughly a day of heavy work, and hitting it blocks the model for the rest of the window.
So even the $60 models have a ~$12/5h practical ceiling. That is the number the ladder must budget against, not the monthly figure. And Luna and Haiku are 4× tighter at $3/5h — they are near-useless as fallbacks under load.
3. This refines Young's rollover ruling — and I am flagging it, not overriding
Young's ruling: "GO exhausted will rolled over to ZEN."
With per-model limits, that ruling should be a three-step ladder, not a switch:
| Step | Draw on | Marginal cost | Why this order |
|---|---|---|---|
| 1 | Another GO paid model with headroom | $0 | the subscription is already paid; a different model's ceiling is untouched |
| 2 | A GO free model | $0 | longcat-2.5-preview-free, step-5-preview-free — did 769 successful calls in V2 |
| 3 | ZEN | real money | the $40 PAYG float — the only step that costs |
Why the order matters: rolling to ZEN on one model's exhaustion means paying real money while five other GO ceilings sit unused. That is precisely the mistake this whole design exists to prevent — V2 spent $10.34 on one model while a free one did 9× the tokens.
So the rollover should be: GO model → GO model → GO free → ZEN, and ZEN last.
This is a refinement to Young's ruling, not a reversal of it. It needs his confirmation — it changes what "GO exhausted" means operationally.
4. What the ladder should be, given these numbers
| Priority | Pool | Constraint that binds |
|---|---|---|
| 1 | GO free — longcat-2.5-preview-free, step-5-preview-free | none measured; V2 saw 769 successes |
| 2 | GO paid, widest ceiling first — GLM-5.3-Flash / MiMo-V2.6-Flash ($60, $12/5h) | the 5-hour window |
| 3 | GO paid, tight — Qwen3.8 Flash ($30, $6/5h) | half the headroom |
| 4 | GO paid, tightest — GPT 6 Luna, Claude Haiku 5.5 ($15, $3/5h) | ~4 h of light work; escalate rarely |
| 5 | ZEN — real money from the $40 float | the balance itself |
Luna and Haiku at $15/month are the finding I would act on first. At $3 per
five hours they exhaust on light use, and V2's model_health.json shows
opencode-go/gpt-6-luna with ok: 43 — real traffic already. A $15 ceiling
carrying a fleet's fallback role is fragile.
Cached-read pricing is also worth pricing into the ladder: GLM caches reads at $0.03 against a $0.15 input — a 5× reduction. A prompt-caching strategy is cheaper headroom than any model switch, and nothing in the design mentions it.
5. What this closes, and what it opens
Closes: 6A — the $60 question. Hard ceiling, per model, blocking at 429.
Opens, and both are mine:
| # | New item | Why |
|---|---|---|
| 1 | billing_instrument must carry the model id | per-model ceilings make "GO exhausted" ambiguous without it |
| 2 | The ladder is 5 steps, not 2 | ZEN is last, not first |
And one that is Young's: confirm the three-step rollover, since his ruling read as a direct GO→ZEN switch.
6. Not established
- The usage-limits table was never fetched — the page truncated twice. Every per-model figure above is Young's stated number, not my read.
- No live exhaustion was probed. The hard-block behaviour is inferred from
wording plus V2's measured
provider.quota429s. - Whether the 5-hour window is per model or per workspace is not confirmed by anything I read. I have assumed per model, consistent with "each model has the following usage limits."
V3 — Dependencies, Toolchain Cost, and the SDK Proof
Why this exists. Sol's 03-decisions/sol-conflicts-and-corrections.md §5 lists three things neither author had verified. All three are now measured. This file is the evidence, written as a finding in docs/-equivalent territory — V3's dependency and cost posture is my lane (config/providers.json, fallback chain, cost policy per 05-operations/layer-ownership.md), so this is a report from my lane, not a patch to Sol's or Min's.
Detecting and tracing GO exhaustion
Young's ruling: "GO exhausted will rolled over to ZEN — how to to trace and track when GO exhausted from Opencode."

