Reproduce the budget for 1,000 requests
This technical case uses synthetic profiles created by RouterLab. It shows how input volume changes an estimate while output stays constant. Results are calculated using current catalog rates; they are neither billed requests nor a quality or latency benchmark.
Data and method
Two profiles: 1,000 requests with 2,000 input and 500 output tokens, then 1,000 requests with 20,000 input and 500 output tokens. Cache, batch, extra tools and taxes are excluded. Output includes reasoning tokens when billed as output. Each request stays within 20,500 tokens in this dataset; check your model’s pricing tiers before generalizing.
total = requests × (input_tokens × input_rate + output_tokens × output_rate)Results calculated from the catalog
Token rates used: input 1e-7 · output 3.5e-7
| Profile | Input / request | Output / request | Estimated total credits |
|---|---|---|---|
| short | 2000 | 500 | 0.375000 |
| long-input | 20000 | 500 | 2.175000 |
Reproduce locally
Python 3, standard library only. Save the script as budget_case.py and run python budget_case.py. It reads no key, sends no request and should print both table totals. Copied rates represent the catalog when you open this page.
budget_case.py python
from decimal import Decimal
input_rate = Decimal("1e-7")
output_rate = Decimal("3.5e-7")
profiles = [{"id":"short","requests":1000,"input":2000,"output":500},{"id":"long-input","requests":1000,"input":20000,"output":500}]
for profile in profiles:
total = Decimal(profile["requests"]) * (
Decimal(profile["input"]) * input_rate + Decimal(profile["output"]) * output_rate
)
print(profile["id"], format(total, ".6f"))From estimation to integration
A credit estimate alone does not determine the amount paid: account for allocation, renewal and actual consumption. For a trial, check authorized -trial variants; internal Trial units are not customer prices. When changing embedding models, plan to reindex and use the same model for documents and queries.