Operations
Plans and ceilings
Every tenant resolves to one of four tiers, and the tier decides four things about every turn they take.
The table
Defaults, configurable under AI:Tiers:
| Tier | Chat / analysis model | Agent + vision model | Output ceiling | Tool turns | Deep analysis |
|---|---|---|---|---|---|
| Free | gpt-5.6-luna | gpt-4o-mini | 8,000 | 3 | no |
| Starter | gpt-5.6-luna | gpt-4o-mini | 12,000 | 5 | no |
| Growth | gpt-5.6-luna | gpt-4o-mini | 16,000 | 6 | yes |
| Enterprise | gpt-5.6-luna | gpt-4o | 25,000 | 8 | yes |
Note what does not change across the first three rows: the conversational model is the same on every tier. What a higher tier buys is budget and capability — a longer answer, more tool rounds, and deep analysis — rather than a better model for ordinary questions.
The stronger model is reserved for the agent and vision paths on Enterprise, where the reasoning matters most and the turn count is lowest.
Resolving a tenant to a tier
The tenant record carries plan_code, and the code decides the tier. The three plan codes the
product issues come first; the older prefix rule is what is left.
plan_code | Tier | Why |
|---|---|---|
free | Free | Development and testing only; a signup tenant is always here |
bring_your_ai | Free | Tether calls no model on this door, so it gets the smallest model budget rather than one it is not paying for. It buys governance, not managed models |
use_tether_ai | Starter | This door buys managed models |
Any other value is read by its prefix, case-insensitively:
plan_code starts with | Tier |
|---|---|
ENTERPRISE | Enterprise |
GROWTH | Growth |
STARTER | Starter |
FREE | Free |
| anything else, or empty | Free |
An unrecognised plan code resolves to the cheapest budget rather than the most generous one. Resolution is cached for 10 minutes, so a plan change takes up to that long to take effect. An operator assigns the plan when issuing a key; see Signup.
What each ceiling stops
Output tokens bound one response. Reasoning tokens come out of the same budget — that is why these are 8k–25k rather than the 1–2k an answer of this length suggests.
Tool turns bound the model-calls-tools loop. Reaching the ceiling is not an error — the model answers with what it gathered, and telemetry records the tool count so you can see which questions hit the wall.
Deep analysis gates capabilityMode: "Deep". A Deep request from a tenant on Free or
Starter is silently clamped to Standard rather than rejected, and any tool registered
deep_analysis_only is simply not offered.
Ceilings that are not per tier
| Bound | Default | Setting |
|---|---|---|
| Concurrent tool calls per turn | 4 | AI:Orchestration:MaxConcurrentTools |
| Per-attempt tool timeout | 20s | ToolTransport:TimeoutSeconds |
| Tool response size | 256 KB | ToolTransport:MaxResponseBytes |
| Request timeout | 60s | AI:Unified:TimeoutSeconds |
| Conversation history | 10 messages / 7 days | AI:Policy:HistoryWindowDays |
| Deep-analysis tool turns | 12, clamped to the tier | AI:DeepOps:MaxToolTurns |
Deep analysis raises the tool-turn ceiling but is still clamped by the tier: a Growth tenant
requesting Deep gets 6 rounds, not 12.
Changing the table
{
"AI": {
"Tiers": {
"Growth": {
"ChatModel": "gpt-5.6-luna",
"AnalysisModel": "gpt-5.6-luna",
"AgentModel": "gpt-4o-mini",
"VisionModel": "gpt-4o-mini",
"MaxOutputTokens": 16000,
"MaxToolTurns": 6,
"DeepOpsAllowed": true
}
}
}
}
The table is stated explicitly in configuration so a model or ceiling change is a config edit rather than a code change.
Every model named here must have a price entry, or the process will not start. See Configuration.
A known piece of debt
Plans do not gate tools
A tier controls the model, the ceilings and deep analysis. It does not control which tools a
tenant has: that is their catalog, and deep_analysis_only is the only visibility flag a plan
influences.