Skip to content

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 strength

Asset 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.

TierActive assetsEnabled promptsMax data links / assetMax total expanded data linksModel strength
Starter1-3139Cheapest decision models
Builder4-63530Medium decision models
Pro7-105880Best 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 = 10

Strategy 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 run

Data 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.maxExpandedDataAssetLinks

Pipeline 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 tick

Baseline assumptions:

  • Execution cadence: every 5 minutes.
  • Competition window: 6 hours.
  • Audition window: 6 hours.
  • Token estimate: 3,000-6,000 tokens per execution.
  • Token mix for planning: 90% input/context tokens and 10% 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.

TierRuns / 5-min intervalExecutions / 6hTokens / 6h at 3-6k each
Starter1-372-2160.22-1.30M
Builder4-6288-4320.86-2.59M
Pro7-10504-7201.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.

FamilyStarter / cheapBuilder / mediumPro / best
GPTgpt-5.4-nano: $0.20 input / $1.25 outputgpt-5.4-mini: $0.75 / $4.50gpt-5.5: $5.00 / $30.00
Claudeclaude-haiku-4-5: $1.00 / $5.00claude-sonnet-4-6: $3.00 / $15.00claude-opus-4-7: $5.00 / $25.00
DeepSeekdeepseek-chat: $0.27 cache-miss input / $1.10 outputdeepseek-reasoner: $0.55 cache-miss input / $2.19 outputNo best-tier DeepSeek model is currently registered
Grokgrok-4-fast-non-reasoning: $0.20 / $0.50grok-4-1-fast-reasoning: $0.20 / $0.50grok-4.20-reasoning: $1.25 / $2.50
Geminigemini-2.5-flash-lite: $0.10 / $0.40gemini-2.5-flash: $0.30 / $2.50gemini-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:

FamilyStarterBuilderPro
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: 1 live 6h audition + 2 full 6h backtests.
  • Builder: 1 live 6h audition + 4 full 6h backtests.
  • Pro: 1 live 6h audition + 6 full 6h backtests.
TierAudition executions / 6hFull backtest callsBundle callsBundle tokens at 3-6k each
Starter72-2162 x 72-216216-6480.65-3.89M
Builder288-4324 x 288-4321,440-2,1604.32-12.96M
Pro504-7206 x 504-7203,528-5,04010.58-30.24M

Using the same provider rates, the baseline reserve estimates are:

FamilyStarterBuilderPro
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:

  1. User chooses a model family, such as GPT or Claude.
  2. The selector shows the currently available model for that family.
  3. Stronger models appear as locked upgrade cards.
  4. 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:

  1. Starter capacity allows up to 3 active Asset Blocks.
  2. If the user drops a 4th Asset Block, that latest block is added in a disabled locked state.
  3. The locked block shows an upgrade indication and explains that 4-6 assets require the next tier.
  4. Data streams can still be arranged visually, but locked assets should not animate active execution lines or compile as enabled assets.

Paid upgrade behavior:

  1. User quotes and pays the audition fee for the desired tier.
  2. Previously locked Asset Blocks can be enabled.
  3. Economy verifies the SignedVault deposit and grants the backend entitlement row.
  4. 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_entitlements stores clone capacity/model-strength entitlement rows.
  • GET /api/v1/clone/clones/:cloneId/entitlement returns the active entitlement, falling back to a mock Starter entitlement when no purchase-backed row exists.
  • /api/v1/economy/audition-fee/quote and /api/v1/economy/audition-fee/submit quote 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.