Spend (30d)
$18.84
all LLM calls
Spend (24h)
$18.84
247 queries
Cost / query
$0.076
vs 7 days ago
Projected / mo
$565.24
30d daily avg × 30
Daily spend · 30 days
$18.84 totalAttribution · last 24h
By operation
By tenant
| Tenant | Queries | LLM calls | Cost / query | Total cost |
|---|---|---|---|---|
| acme claude-opus-4-7 | 117 | 278 | $0.080 | $9.4150% |
| globex claude-opus-4-7 | 79 | 151 | $0.070 | $5.5329% |
| soylent claude-opus-4-7 | 51 | 102 | $0.077 | $3.9021% |
By model · last 24h
| Model | Requests | Prompt | Output | Total tokens | p50 | Cost |
|---|---|---|---|---|---|---|
| claude-opus-4-7 | 265 | 537.6k | 105.1k | 642.7k | 1507ms | $15.95 |
| claude-sonnet-4-6 | 71 | 98.7k | 100.8k | 199.5k | 1504ms | $1.81 |
| gpt-4o | 135 | 126.7k | 30.0k | 156.7k | 1173ms | $1.08 |
| gpt-4-mini | 60 | 10.1k | 3.9k | 13.9k | 1435ms | $0.0038 |
| Total | $18.84 | |||||
Savings opportunities
up to $180.32/mo identified"rag.answer" fans out into 45 "openai.chat.completions.create" calls per trace
1 trace in 24h · up to 45 "openai.chat.completions.create" calls in one trace (avg 45) · ~$33/mo on these calls
45× openai.chat.completions.create
~1 batched call
One "rag.answer" produces ~45 "openai.chat.completions.create" calls — almost always a per-retrieved-item LLM call. Batch them into one request, or cap the loop. 45 completions for a single answer is a retrieval/ranking bug, not a model problem.
# One operation made N LLM calls in a single trace.
# Batch the per-item calls into one request:
inputs = [c.text for c in retrieved[:TOP_K]] # e.g. TOP_K = 8
client.embeddings.create(model="text-embedding-3-small", input=inputs)
# Or collapse a per-chunk loop into a single completion:
context = "\n\n".join(c.text for c in retrieved[:TOP_K])
client.chat.completions.create(messages=[{"role": "user", "content": context}])Route short support_bot queries to gpt-4o-mini
110 of 124 support_bot calls in 24h were under 600 input tokens on claude-opus-4-7.
Short prompts don't need a frontier model. Add a length check at the dispatcher: if tokens_input < 600, use gpt-4o-mini; otherwise fall back. Quality drop is typically negligible at this length.
# Route short prompts to cheaper model
model = "gpt-4o-mini" if tokens < 600 else "gpt-4o"
client.chat.completions.create(model=model, ...)Fine-tune for support_bot (high-volume on premium model)
124 support_bot calls in 24h, 100% on premium models.
At this volume a fine-tuned smaller model typically reaches ≥95% of frontier quality on a constrained task. Sample 5k spans, fine-tune gpt-4o-mini, A/B against current. Training cost recovers in ~5 days at current spend.
# Export training data from Peekr spans
# then fine-tune gpt-4o-mini on your task