I have been struggling to understand our usage-based billing using the data available to me from the dashboard as well as invoices. Here’s what I’ve figured out so far:
Billing & Invoices
This shows the usage-based spending for the calendar month. To validate this I copied and pasted the info from the Usage page into a spreadsheet. When you are billed for overage, this is what you are billed. It shows what you’re being charged per model.
Usage
This will show you what calls were made by who, if they are included in the subscription or are usage based. For token based calls it will tell you the cost for that call if you hover over the Cost (Requests) column (this info is also included in a copy/paste). Note that the pagination is wrong, the number of visible rows is less than the selection. This lost me some time as at first I thought I had a clipboard issue.
Members
Premium Requests column is both included and usage based premium requests for your billing cycle. It seems to not be able to go over 500.
Spend, however, is for the calendar month.
Analytics
I found the csv export useless for reconciling the charges. It gives you a total of included / usage-based requests per user per day, but you need the usage broken out by model.
Admin API
From the docs it looks like it gives you the info from the Analytics CSV or from the Members page, but what we need is the usage events.
Outstanding issues
The only thing I couldn’t reconcile were the claude-4-sonnet-thinking requests. We have way more marked as “Usage-based” than are showing up in the Billing & Invoices page. there are also 2 different prices listed, some are $0.08 each and some are $0.03 each. The Billing & Invoices page shows ~110 being charged so far this month, but the usage events report ~400. I have already separated out the token based requests.
The numbers on the invoice vs the numbers from the usage events don’t always match up exactly. They’re close enough that I know I’m looking at the right data, but some are off by as many as 10 requests. This can’t be explained with timezone issues with my calculations, I checked for that and confirmed.