Appearance
Capacity And Model Tiers
This page captures the pricing axis for clone creation and strategy capacity. The backend now has audition-fee pricing, payment verification, entitlement grants, and a lightweight entitlement projection so the UI, pipeline API, and runtime enforce the same limits.
Related:
Product Decision
Clone pricing should scale on two dimensions:
text
asset capacity x model strengthAsset capacity controls how many Asset Blocks a clone can actively trade. Model strength controls which model family/tier the clone can use for trading decisions. The same tier also caps executable strategy topology.
Tiers
Tier names and capacities are the product-facing contract. The exact audition-fee matrix lives in the Economy module and Clash spec; do not duplicate prices in frontend copy.
| Tier | Active assets | Enabled prompts | Max data links / asset | Max total expanded data links | Model strength |
|---|---|---|---|---|---|
| Starter | 1-3 | 1 | 3 | 9 | Cheapest decision models |
| Builder | 4-6 | 3 | 5 | 30 | Medium decision models |
| Pro | 7-10 | 5 | 8 | 80 | Best decision models, such as GPT-5.5 and Claude Opus |
In v1, active assets also cap expanded Asset Block -> Trading Prompt Block assignments because each active asset can be claimed by exactly one enabled prompt.
Positioning:
- Starter: simple clones and first auditions.
- Builder: more serious strategy testing.
- Pro: power users competing seriously.
Hard v1 cap:
text
maximum active assets per clone = 10Strategy Topology Limits
AI trading limits are topology-based. They are not normal trading token budgets.
One model run is created per due Trading Prompt Block and active asset:
text
Trading Prompt Block + active asset symbol = one decision runData Stream Block connections add context to that asset's decision run. They do not create extra model runs.
V1 allows each active asset to be assigned to exactly one enabled Trading Prompt Block. Duplicate prompt claims for the same symbol are invalid until a future arbitration layer exists.
Count limits after graph expansion, not from raw canvas edges:
Asset Block -> Trading Prompt Block: expands to one assignment per active symbol. This count must equal active assets in v1.Data Stream Block -> Asset Block: expands to one context link per active symbol that receives that stream.
Use the Tiers table for active asset, prompt, and context-link caps. For example, a Starter clone trading 3 assets can use up to 3 included data links for each asset, for up to 9 expanded data links total. It is not limited to 3 data sources across the whole canvas.
Validation rules:
text
activeAssetCount <= entitlement.maxActiveAssets
enabledTradingPromptCount <= tier.maxTradingPrompts
expandedAssetPromptAssignmentCount == activeAssetCount
dataAssetLinksPerActiveAsset <= tier.maxDataAssetLinksPerActiveAsset
totalExpandedDataAssetLinks <= tier.maxExpandedDataAssetLinksPipeline save/publish should reject published graphs above the active tier. The canvas may keep disabled or locked nodes so users can stage upgrades, but locked topology must not compile into active runtime.
Runtime Cost Assumptions
Cost estimates use the runtime unit from the topology rules:
text
one execution = one Trading Prompt Block + one active asset + one due cadence tickBaseline assumptions:
- Execution cadence: every
5 minutes. - Competition window:
6 hours. - Audition window:
6 hours. - Token estimate:
3,000-6,000tokens per execution. - Token mix for planning:
90%input/context tokens and10%output/reasoning tokens.
At 5-minute cadence, a 6-hour window creates 72 executions per active asset. In v1, each active asset is assigned to exactly one enabled Trading Prompt Block, so runs per interval equal active assets, not prompts x assets.
| Tier | Runs / 5-min interval | Executions / 6h | Tokens / 6h at 3-6k each |
|---|---|---|---|
| Starter | 1-3 | 72-216 | 0.22-1.30M |
| Builder | 4-6 | 288-432 | 0.86-2.59M |
| Pro | 7-10 | 504-720 | 1.51-4.32M |
Provider pricing changes often. Prices below were checked against official provider docs on 2026-05-05; recheck before final production pricing. Figures are USD per 1M realtime text tokens, excluding cache discounts, batch/priority modes, search/tool calls, image/audio/video tokens, taxes, and committed-use discounts. xAI renders its visible model table dynamically; the Grok prices below come from embedded model metadata on its official Models and Pricing page.
| Family | Starter / cheap | Builder / medium | Pro / best |
|---|---|---|---|
| GPT | gpt-5.4-nano: $0.20 input / $1.25 output | gpt-5.4-mini: $0.75 / $4.50 | gpt-5.5: $5.00 / $30.00 |
| Claude | claude-haiku-4-5: $1.00 / $5.00 | claude-sonnet-4-6: $3.00 / $15.00 | claude-opus-4-7: $5.00 / $25.00 |
| DeepSeek | deepseek-chat: $0.27 cache-miss input / $1.10 output | deepseek-reasoner: $0.55 cache-miss input / $2.19 output | No best-tier DeepSeek model is currently registered |
| Grok | grok-4-fast-non-reasoning: $0.20 / $0.50 | grok-4-1-fast-reasoning: $0.20 / $0.50 | grok-4.20-reasoning: $1.25 / $2.50 |
| Gemini | gemini-2.5-flash-lite: $0.10 / $0.40 | gemini-2.5-flash: $0.30 / $2.50 | gemini-2.5-pro: $1.25 / $10.00 for prompts up to 200K tokens |
Source links: OpenAI pricing, OpenAI GPT-5.4 Nano, Anthropic pricing, DeepSeek pricing details, xAI Models and Pricing, and Gemini pricing.
With the 90% input / 10% output planning mix, the blended provider rates imply these approximate provider costs for a 6-hour audition window across each tier's active-asset range:
| Family | Starter | Builder | Pro |
|---|---|---|---|
| GPT | $0.07-$0.40 | $0.97-$2.92 | $11.34-$32.40 |
| Claude | $0.30-$1.81 | $3.63-$10.89 | $10.58-$30.24 |
| DeepSeek | $0.08-$0.46 | $0.62-$1.85 | - |
| Grok | $0.05-$0.30 | $0.20-$0.60 | $2.08-$5.94 |
| Gemini | $0.03-$0.17 | $0.45-$1.35 | $3.21-$9.18 |
Product pricing should reserve for multiple full 6-hour backtests around each audition. A full 6-hour backtest means the same decision-call count as a 6-hour audition for that tier's active assets.
Baseline pricing reserve:
- Starter:
1live 6h audition +2full 6h backtests. - Builder:
1live 6h audition +4full 6h backtests. - Pro:
1live 6h audition +6full 6h backtests.
| Tier | Audition executions / 6h | Full backtest calls | Bundle calls | Bundle tokens at 3-6k each |
|---|---|---|---|---|
| Starter | 72-216 | 2 x 72-216 | 216-648 | 0.65-3.89M |
| Builder | 288-432 | 4 x 288-432 | 1,440-2,160 | 4.32-12.96M |
| Pro | 504-720 | 6 x 504-720 | 3,528-5,040 | 10.58-30.24M |
Using the same provider rates, the baseline reserve estimates are:
| Family | Starter | Builder | Pro |
|---|---|---|---|
| GPT | $0.20-$1.19 | $4.86-$14.58 | $79.38-$226.80 |
| Claude | $0.91-$5.44 | $18.14-$54.43 | $74.09-$211.68 |
| DeepSeek | $0.23-$1.37 | $3.08-$9.25 | - |
| Grok | $0.15-$0.89 | $0.99-$2.98 | $14.55-$41.58 |
| Gemini | $0.08-$0.51 | $2.25-$6.74 | $22.49-$64.26 |
The current backend backtest preflight is sampled by default: DEFAULT_INLINE_BACKTEST_DECISION_CALL_LIMIT caps model-backed decisions at 12 calls per run, and the token estimator uses a lower minimum of 1,200 input tokens plus 500 output tokens per decision call. Treat that as an implementation/debug guardrail, not the product-pricing assumption.
These estimates are for provider-spend planning. They do not make token count a product limit for normal trading.
UX Rules
Model Selection
The Clone Block owns the model because model choice is clone-level, not per Trading Prompt Block.
User flow:
- User chooses a model family, such as GPT or Claude.
- The selector shows the currently available model for that family.
- Stronger models appear as locked upgrade cards.
- Clicking a locked model should start the audition-fee quote/checkout flow once that frontend path is wired.
The UI should read prices from /api/v1/economy/audition-fee/quote rather than hard-coding copy.
Asset Capacity
The workflow canvas can let users drag more Asset Blocks than their current entitlement allows, but the excess blocks should be visibly locked.
Current behavior:
- Starter capacity allows up to 3 active Asset Blocks.
- If the user drops a 4th Asset Block, that latest block is added in a disabled locked state.
- The locked block shows an upgrade indication and explains that 4-6 assets require the next tier.
- Data streams can still be arranged visually, but locked assets should not animate active execution lines or compile as enabled assets.
Paid upgrade behavior:
- User quotes and pays the audition fee for the desired tier.
- Previously locked Asset Blocks can be enabled.
- Economy verifies the SignedVault deposit and grants the backend entitlement row.
- Graph validation continues using the backend entitlement rather than a UI-only limit.
Service Boundary
Clone Service owns the effective entitlement projection for a clone and enforces that projection when clone configuration changes. EconomyService owns the purchase, payment, and grant facts that produce or revoke those entitlements. AI trading consumes the effective entitlement as a runtime guard but does not grant or mutate entitlement.
Backend Contract
The entitlement projection is owned by the new SQLite backend:
ts
interface CloneCapacityEntitlement {
cloneId: number;
tier: 'starter' | 'builder' | 'pro';
maxActiveAssets: number;
allowedModelStrength: 'cheap' | 'medium' | 'best';
source: 'audition_fee' | 'subscription' | 'manual_grant' | 'mock';
effectiveAt: number;
expiresAt: number | null;
createdAt: number;
updatedAt: number;
}Validation should happen in three places:
- UI: clear locked states and upgrade prompts.
- Pipeline API: reject saves that exceed entitlement or tier topology limits unless saving locked/disabled blocks.
- Decision worker: refuse to run assets, topology, or models outside the clone entitlement.
Current Implementation Boundary
Implemented now:
clone_capacity_entitlementsstores clone capacity/model-strength entitlement rows.GET /api/v1/clone/clones/:cloneId/entitlementreturns the active entitlement, falling back to a mock Starter entitlement when no purchase-backed row exists./api/v1/economy/audition-fee/quoteand/api/v1/economy/audition-fee/submitquote and verify audition-fee deposits.- Confirmed audition-fee purchases grant clone capacity/model-strength entitlements.
- The workflow UI reads that entitlement to lock premium model choices and Asset Blocks above capacity.
- Pipeline save validation rejects enabled asset counts above entitlement capacity.
- Pipeline save, dry-run, backtest preflight, and runtime decision paths reject prompt/context-link topology above entitlement capacity.
- Clone model updates and strategy publication reject models above the active model-strength entitlement.
- The decision worker skips runs when stored clone config exceeds asset capacity or model-strength entitlement.
Still intentionally not implemented:
- Frontend checkout wiring for audition-fee quote/submit.
- Ongoing provider-spend budgets and overage behavior.
- Backtesting quotas, paid credits, and per-run pricing.
- Race ticket pricing, settlement payouts, and creator/protocol distributions.
- Pending-purchase reconciliation for deposits that were observed late.
The effective entitlement projection is documented in Clone Service Module; audition-fee grant behavior is documented in Economy Module.