Skip to Content
Simpang Router

Analytics

What each number in the app means.

MetricDefinition
RequestsCalls that passed authentication
Success rateCalls with a 2xx status ÷ all calls
TokensInput + cache read + cache write + output
Cache hit rateCache read ÷ (input + cache read + cache write)
SpendSum of each call's cost
First token, p50Median time from the request to the first streamed token
Output speed, p50Median of output tokens ÷ (latency − first token time) per call. Counts streamed calls that returned output and weren't cancelled
PaceSpend so far ÷ the share of the period that has passed
ThinkingThe thinking budget the request asked for, normalized to one level (below)
Reasoning tokensThinking tokens the model reported. Already counted inside output

Deltas compare the selected range with the range just before it. Medians come from the raw request log, which is kept for the retention window (90 days by default). Totals come from hourly rollups and are kept forever. The 15m and 1h ranges (on the overview and analytics pages) are the exception: they read the raw log in 30-second and 1-minute buckets and refresh every 5 seconds, so you can watch requests land.

Token counts come from the model's own usage report. When CLIProxyAPI later reports an exact breakdown for the same request, the row is updated and marked reconciled. If a response had no usage at all, tokens are estimated and marked estimated.

Thinking budget

Every request records the thinking budget it asked for, read from whichever field the client sent:

Sent asExampleLevel
reasoning_effort (OpenAI chat)highHigh
reasoning.effort (Responses)xhighExtra high
output_config.effort (Anthropic)maxMax
thinking.budget_tokens (Anthropic)8192Medium
thinking.type: disabled / adaptiveOff / Auto
thinkingConfig.thinkingBudget (Gemini)-1Auto
thinkingConfig.thinkingLevel (Gemini)lowLow
Model suffixgpt-5(high), gemini-2.5-pro(16000)High

Token budgets map to levels: 0 is Off, up to 512 Minimal, up to 2,048 Low, up to 12,288 Medium, up to 24,576 High, up to 32,768 Extra high, above that Max. A negative budget is Auto. A request that sets nothing is "Not set" (the provider's default). Requests from before this was recorded show as "Unknown". The exact field and value are kept and shown on each request in Activity.

The breakdown reads the raw request log, so it covers the retention window. Latency is end to end.

On this page