Pricing And Effort Runbook
Purpose
Provide the operator verification path for the Phase 49 economics baseline:
- auditable per-model pricing with source attribution
- live effort-routing heuristic thresholds
- a stable fast-path spot-check for short simple prompts
Use this document with:
MCP Inspection Surface
The stable inspection surface is the MCP resource agent33://pricing-catalog.
- Required scope:
component-security:read - Resource payload includes:
entriescatalog_snapshot_fetched_atcost_estimation_policyheuristic_policy
The resource is intentionally read-only. Phase 49 does not ship dynamic pricing refresh from provider APIs or any billing UI.
Startup corrections are supported through pricing_catalog_overrides, which
accepts a JSON array of override entries applied during app boot.
Pricing Catalog Contract
Each catalog entry includes:
providermodelinput_cost_per_millionoutput_cost_per_millioncache_read_cost_per_millioncache_write_cost_per_millionsourcesource_urlfetched_at
The expected source for builtin rows is official_docs_snapshot. User-defined
overrides remain visible through the same resource because the effective catalog
is emitted after overrides are applied.
Effort Heuristic Contract
The heuristic_policy block exposes the live runtime thresholds that shape
routing decisions:
simple_message_fast_path.max_charssimple_message_fast_path.max_wordsscore_thresholdspayload_thresholdsmany_input_fields_thresholdhigh_iteration_thresholdmodel_overridestoken_multipliers
The cost-estimation contract also exposes the legacy fallback:
flat_rate_fallback_cost_per_1k_tokens
Per-invocation routing metadata now also preserves:
estimated_cost_statusestimated_cost_sourceestimated_cost_source_urlestimated_cost_fetched_at
That value should be treated as a compatibility fallback, not the primary economics baseline.
Verification Steps
- Read
agent33://pricing-catalogwith a token that hascomponent-security:read. - Confirm
catalog_snapshot_fetched_atis populated and the resource returns the expectedentry_count. - Spot-check the active models you care about. Known examples include:
openai/gpt-4.1openai/gpt-4.1-miniopenai/gpt-4oollama/llama3.2
- Verify each checked row has a non-empty
source_urlunless the provider is intentionally local and free (ollama,local, orairllm). - Confirm the live
heuristic_policy.simple_message_fast_pathvalues match the deployment’s intended threshold configuration. - Confirm
cost_estimation_policy.prefers_per_model_catalog_when_provider_resolvesistrue. - If
override_count > 0, verify each override row hassource = user_overrideand the intendedsource_url.
Fast-Path Spot Check
Use a short request through /v1/agents/{id}/invoke and confirm the routing
metadata shows the heuristic fast path:
effort_source = heuristiceffort = lowheuristic_reasonsincludessimple_message_fast_path
If a simple prompt does not take the fast path, verify that the prompt does not include URLs, code fences, or complexity keywords before changing thresholds.
Escalation Guidance
- If source attribution is missing for non-local priced models, treat the catalog as non-auditable and block any pricing-sensitive rollout.
- If pricing corrections are needed, prefer
pricing_catalog_overridesover code edits so the effective catalog remains operator-auditable. - If the heuristic thresholds drift unexpectedly, review recent config changes before changing alert thresholds in Service Level Objectives.
- If cost estimates appear missing for priced models, verify provider
resolution first; unknown provider/model pairs can still fall back to the
flat-rate policy or omit
estimated_cost.