A balance drop is a signal to investigate, not proof that a request was billed incorrectly. A longer conversation, a background agent, or a retry loop can all create spending you did not expect. Use this seven-step pit stop to trace the change from your account balance back to the requests that caused it.
SwiftRelay is a useful fit for this workflow because its pay-as-you-go, per-token billing lets you connect spending to actual model usage. The goal is to reconcile that usage before changing your setup.
1. Pin down the balance change and time window
Write down the balance you expected, the balance you see, and when you last checked it. Start with a narrow interval around the unexpected change. Note the time zone used in your usage history and the one used by your application logs; otherwise, the same request can appear to belong to different days.
Keep payments separate from consumption. A top-up adds funds, while model usage consumes them. Any gift or referral credit can also affect the balance, so a balance change alone is not a complete usage total.
2. Locate the requests behind the spending
Review the usage records available for that interval. If filtering or export is available, use it; otherwise, record the relevant entries manually. Build a small working list with whatever details are exposed:
- Request time and request identifier.
- Model name and token counts.
- Recorded cost and request status, where shown.
- The application or task you believe initiated the request.
Do not assume every field will be available. Missing details are a reason to consult your own logs, not to guess. Start with the largest individual costs and clusters of repeated requests.
3. Check which model each client actually requested
Inspect the model configured in your SDK, command-line tool, and project settings. A default may differ from a project override, and an automated task may use a different configuration from your interactive session. If you intended to use Claude Sonnet 5.5, verify that the recorded requests match that choice.
Also confirm which account credentials each process uses. A forgotten terminal session, scheduled job, or shared development environment can explain activity you do not recognize. Never paste API keys into your investigation notes.
4. Inspect input growth across the conversation
A short prompt does not necessarily mean a small input. Your client may send conversation history, repository files, tool results, or system instructions along with it. Repeated turns can resend substantial context, making later requests more expensive than the first.
Compare a typical request with an unexpectedly costly one. Look for a jump in input tokens, a larger file attachment, or unusually verbose tool output. Redact sensitive content before sharing logs, and retain token counts whenever possible.
5. Look for long outputs and repeated attempts
Check output tokens separately from input tokens. A generated report, extensive code changes, or an agent continuing through several tool cycles can consume more than you anticipated. Review output limits and agent stopping conditions before the next run.
Then inspect retry behavior. A client-side timeout does not establish whether the underlying request incurred usage. Reconcile each attempt with available records rather than assuming it was free or billed. Add bounded retries and avoid launching duplicate tasks while an earlier attempt remains unresolved.
6. Reconcile costs using the applicable pricing
Use the pricing applicable to the model and usage categories shown for the request. Keep input and output calculations separate, and include any other categories only when the records and pricing identify them. Check the billing unit carefully: a price per million tokens must not be treated as a price per thousand.
Small display-rounding differences can occur. For a material mismatch, preserve request identifiers, timestamps, token totals, and your calculation, then contact support without including credentials or private prompts.
7. Run one controlled check before resuming work
Pause unrelated clients, send one small request, and compare its usage record with your local log. Change only one setting at a time. This gives you a clean reference for later investigations.
If you are setting up a new workflow, sign up for SwiftRelay and use a small, controlled first run to establish your baseline. Keep that record alongside your client configuration so the next unexpected charge has a clear starting point.