ChipRateTable

Platform-scoped table mapping model IDs to normalized Chip multipliers.

A MandrelChipRateTable maps model IDs to normalized Chip multipliers. Chip is the Mandrel cost unit, pegged to one input token on the baseline model. Agents declare only spec.token-budget.model-id; the Collet and Metrology Lab resolve the input/output multipliers from the active table at runtime.

At most one table is active at a time. PUT /v1/chip-rates replaces it atomically. The table persists across Lab restarts.

Schema

apiVersion: mandrelproject.ai/v1
kind: MandrelChipRateTable

spec.baseline

The reference model whose cost defines 1.0 Chip.

FieldRequiredTypeDescription
chips-per-million-tokensnumber > 0USD cost per 1M tokens on the baseline model (the Chip peg)
model-idstringModel pegged to 1.0× input and output multipliers; must also appear in spec.rates

spec.rates

Array of per-model multipliers. Must contain at least one entry. The baseline model-id must appear here.

FieldRequiredTypeDescription
model-idstringUnique model identifier (e.g. claude-sonnet-4-6)
input-multipliernumber > 0Chip cost per 1M input tokens relative to the baseline
output-multipliernumber > 0Chip cost per 1M output tokens relative to the baseline

Validation (E013)

CodeRule
E013Duplicate model-id in spec.rates
E013spec.baseline.model-id not found in spec.rates
E013input-multiplier or output-multiplier ≤ 0

E013 is emitted by mandrel-cli validate when the input file is a MandrelChipRateTable.

Loading into the Metrology Lab

The preferred way to manage the chip rate table is via the Mandrel CLI:

# Get the active table
mandrel-cli platform chip-rates get > rates.yaml

# Update the table
mandrel-cli platform chip-rates put rates.yaml

Alternatively, you can use curl directly:

curl -X PUT https://lab.mandrel.internal:8740/v1/chip-rates \
  -H "Authorization: Bearer $TOKEN" \
  --data-binary @chip-rate-table.yaml

In dev mode with --dev-api-key:

curl -X PUT http://lab:8740/v1/chip-rates \
  -H "X-Mandrel-Lab-Key: $DEV_KEY" \
  --data-binary @chip-rate-table.yaml

Example

apiVersion: mandrelproject.ai/v1
kind: MandrelChipRateTable
metadata:
  name: v1-chip-rates
spec:
  baseline:
    chips-per-million-tokens: 0.10
    model-id: "gemini-2.5-flash-lite"
  rates:
    - model-id: "gemini-2.5-flash-lite"
      input-multiplier: 1.0
      output-multiplier: 4.0
    - model-id: "gemini-2.5-flash"
      input-multiplier: 3.0
      output-multiplier: 25.0
    - model-id: "gemini-2.5-pro"
      input-multiplier: 12.5
      output-multiplier: 100.0
    - model-id: "claude-haiku-4-5"
      input-multiplier: 10.0
      output-multiplier: 50.0
    - model-id: "claude-sonnet-4-6"
      input-multiplier: 30.0
      output-multiplier: 150.0
    - model-id: "claude-opus-4-6"
      input-multiplier: 50.0
      output-multiplier: 250.0
    - model-id: "deepseek-v3-2"
      input-multiplier: 1.4
      output-multiplier: 2.8
    - model-id: "deepseek-v4"
      input-multiplier: 3.0
      output-multiplier: 5.0
    - model-id: "deepseek-r1"
      input-multiplier: 5.5
      output-multiplier: 21.9
    - model-id: "llama-3-8b"
      input-multiplier: 0.5
      output-multiplier: 0.5
    - model-id: "llama-3-70b"
      input-multiplier: 2.0
      output-multiplier: 2.0

Relationship to spec.token-budget

An agent’s spec.token-budget.model-id is validated against this table at several points in the lifecycle:

CodeStageCondition
E012CLI (validate)model-id is empty — structural error, always enforced
W012CLI (validate --metrology-lab)model-id not found in the active table — warning only
L001Lab (promotion gate)model-id is on the platform deny-list — promotion rejected
L002Lab (promotion gate)model-id not found in the active table — promotion rejected

See the CLI reference and Metrology Lab reference for full diagnostic code details.