Costs and forecasts
Quota, cost, and service status answer different questions. Vibe Bar places them together, but it does not convert one into another or treat an estimate as a bill.
What the cost scanner reads
| Tool | Local input | Important limitation |
|---|---|---|
| Codex | ~/.codex/sessions/**/*.jsonl | Only locally recorded Codex activity is included. |
| Claude Code | ~/.claude/projects/**/*.jsonl | Claude Web/Desktop conversations are not included. |
| Gemini CLI | telemetry and local chat-history records under ~/.gemini/ | Availability depends on the local record format and model metadata. |
| AntiGravity | local conversation databases under ~/.gemini/antigravity/ | Unsupported CLI-only containers are skipped. |
| Grok Build | ~/.grok/sessions/**/updates.jsonl | Session totals require a blended price approximation. |
Vibe Bar resolves recorded model usage against bundled pricing data. Totals are useful for trends and comparisons, but they can differ from invoices due to discounts, plan bundling, provider rounding, cache accounting, missing records, or model-price changes.
Cost history controls
The cost chart opens on a recent window and lets you:
- choose a time-range preset;
- pan or pinch to navigate the full recorded domain;
- use the brush strip to move or resize the visible window;
- choose Auto, Hour, Day, Week, or Month buckets;
- hover for a compact value and click for the model breakdown.
Auto adapts bucket width to the visible span. Hourly display falls back to daily data when the underlying records have no reliable hourly evidence. The footer summarizes total, average, and peak for the visible window—not necessarily the entire retained history.
How the quota forecast works
Each independently resetting core quota gets its own forecast. The model uses:
- current quota observations and recent consumption slope;
- comparable completed reset cycles;
- the user's weekday and hour-of-day activity shape;
- recent activity trend;
- freshness and coverage of the evidence.
Token and cost history contributes when you tend to work, not a token-to-quota conversion. Provider quota units are not assumed to equal token counts.
Verdicts
| Verdict | Interpretation | Suggested response |
|---|---|---|
| Learning | Evidence is too sparse for a stable conclusion. | Keep normal refreshes running through more of the cycle. |
| Enough | The projected demand should fit before reset. | No immediate change is needed. |
| Surplus | Even a conservative projection leaves materially more than the safety target. | Consider whether a smaller plan would still fit; do not create work just to consume quota. |
| Watch | The uncertainty range can reach the limit. | Watch recent usage and prepare another quota or provider. |
| At risk | Median demand reaches or exceeds the quota before reset. | Slow down or shift work if continuity matters. |
Risk takes priority over surplus. Surplus is not merely “a high percentage remains”; it requires at least medium confidence and both the median and a conservative bound to clear the adaptive safety target.
Confidence and uncertainty
Confidence can be Learning, Medium, or High. It increases with observation coverage, completed-cycle evidence, fresh samples, and useful activity history. The safety target adapts between roughly 5% and 13% remaining: lower-confidence forecasts reserve a larger margin.
The colored forecast interval is a range, not a promise. The median marker stays inside that range. If the model predicts exhaustion before reset, the UI shows an estimated run-out time; otherwise it says the quota is projected to last until reset.
Elapsed-time pace versus personal forecast
The legacy pace marker compares quota used with wall-clock progress through the current window:
- Reserve means usage is behind the linear clock.
- Deficit means usage is ahead of it.
- On pace means the two are close.
The personal forecast is richer because work is rarely distributed evenly across every hour. Provider detail pages keep both views visible so you can compare the simple clock with the learned pattern.
Build better history
For useful forecasts:
- Keep Vibe Bar running or refresh it regularly.
- Use a refresh cadence that captures changes inside short quota windows.
- Avoid repeatedly clearing history while the model is learning.
- Check that local activity sources are available if you want behavioral weighting.
- Read verdict, confidence, interval, and reset time together.
Changing the retention period prunes cost and subscription history together. Privacy Mode clears derived cost data and keeps it off disk, so some behavioral evidence will need to rebuild after Privacy Mode is disabled.