CostCompassAn AlmanacBeta

Fixed-token measurements

These are the requests behind the fixed request tokens in the token cost calculator guide. For each model and each text we counted the text with the provider's own counter, then sent the same text as one user message with no system prompt and no tools, and read the billed input tokens from the response. Billed minus counted is the fixed part. We ran it in October 2026; providers can change these values at any time.

Results

Fixed tokens per request (billed minus counted), for each text: one word, the English sample, the first 150 and 600 words of the long English text, the long English text, and the long code file. The last column is the tokens the provider reported as cached on the one-word call, the first time we sent that text.

Model1 wordSample150 w600 wLongCodeCached
gemini-3.5-flash-lite111111—
gemini-3.5-flash111111—
gemini-3.1-pro-preview111111—
grok-build-0.1186186186186186186128
grok-4.3192192192192192192128
grok-4.71,2421,2421,2421,2421,2421,2421,152
claude-haiku-5-5000000—
claude-sonnet-5-5000000—
gpt-6-luna666666—
gpt-6.1-sol666666—
gpt-6-astra666666—
gemini-4-argon000000—

What the numbers show

  • Every model's fixed part stayed the same at every length, from a one-word message to about 3,000 tokens of prose or code.
  • Gemini's one token is the user role. Gemini's countTokens counts the bare text. The real request carries role: "user", as Google's SDKs send it, and bills one more. Counting the request with the role included also gives text plus one.
  • Gemini 4 Argon shows 0 because its counter counts the whole request. Its countTokens equalled billed input every time, and a one-word message counted 32. The 31 the calculator uses assumes the word is one token, as it is on the other Gemini models. Argon's text counts are its own: they match Gemini 3.5 Flash's on short English and differ on long code.
  • Claude shows 0 because Anthropic's counter counts the whole request. Its count_tokens equalled billed input every time. The 8 the calculator uses comes from a one-word message counting 9, on the assumption that the word is one token.
  • xAI reported most of its fixed tokens as cached on every call, the first one included: 1,152 of Grok 4.7's 1,242 and 128 of the others'. On the English sample, Grok 4.7 and Grok Build 0.1 reported more (1,280 and 192) because we had sent that same text minutes before, so part of the text itself was cached too. The raw results show every call's cached count.
  • One OpenAI call failed quietly. GPT-6.1 Sol on the long English text once returned a usage block of all zeros. We ran it again and kept the good result. Because that was a repeat send, OpenAI reported 2,867 of its tokens as cached; the fixed 6 is unchanged.

What is not here

  • DeepSeek (30 for Flash, 83 for V4 Pro) and GPT-5 mini were measured when the calculator was built, across thirteen texts. We did not keep those raw responses, and this run could not repeat them: we had no DeepSeek key, and OpenAI requires a verified organization for GPT-5 mini.
  • The long code text is a Python file from CostCompass's own backend, so it is not published. Its results are in the table.

The script

Run it with your own keys in the environment. It prints one JSON line per model and text. Keys are read from the environment and never printed.

#!/usr/bin/env bash
# Measures fixed request tokens: for each model and each text, count the text
# with the provider's own counter, then send the same text as one user message
# (no system prompt, no tools, smallest output allowed) and read the billed
# input tokens from the response. Billed minus counted is the fixed part.
#
# Needs curl and jq; OpenAI counts also need Python with tiktoken.
# Keys come from the environment and are never printed:
#   GEMINI_API_KEY  XAI_API_KEY  ANTHROPIC_API_KEY  OPENAI_API_KEY
#
# Usage: ./measure_fixed_tokens.sh TEXT_FILE... > results.jsonl
# Each output line is one model and one text: counted, billed, cached, and the
# provider's raw usage object.
set -euo pipefail

GOOGLE_MODELS=(gemini-3.5-flash-lite gemini-3.5-flash gemini-3.1-pro-preview gemini-4-argon)
XAI_MODELS=(grok-build-0.1 grok-4.3 grok-4.7)
ANTHROPIC_MODELS=(claude-haiku-5-5 claude-sonnet-5-5)
# gpt-5-mini is left out: OpenAI requires a verified organization for it.
OPENAI_MODELS=(gpt-6-luna gpt-6.1-sol gpt-6-astra)

emit() { # provider model file counted billed cached usage
  jq -cn --arg p "$1" --arg m "$2" --arg f "$(basename "$3")" \
    --argjson c "$4" --argjson b "$5" --argjson k "$6" --argjson u "$7" \
    '{provider:$p, model:$m, text:$f, counted:$c, billed:$b, cached:$k,
      fixed:($b-$c), measured_at:(now|todate), usage:$u}'
}

google() { # model file
  # countTokens counts the text alone. The real request carries role "user",
  # as Google's SDKs send it, and that role is the one fixed token: counting
  # the same request with the role also gives text + 1.
  local count
  count=$(curl -sS "https://generativelanguage.googleapis.com/v1beta/models/$1:countTokens" \
    -H "x-goog-api-key: $GEMINI_API_KEY" -H "content-type: application/json" \
    -d "$(jq -n --rawfile t "$2" '{contents:[{parts:[{text:$t}]}]}')" | jq '.totalTokens')
  local usage
  usage=$(curl -sS "https://generativelanguage.googleapis.com/v1beta/models/$1:generateContent" \
    -H "x-goog-api-key: $GEMINI_API_KEY" -H "content-type: application/json" \
    -d "$(jq -n --rawfile t "$2" \
      '{contents:[{role:"user", parts:[{text:$t}]}], generationConfig:{maxOutputTokens:1}}')" \
    | jq '.usageMetadata')
  emit google "$1" "$2" "$count" "$(jq '.promptTokenCount' <<<"$usage")" \
    "$(jq '.cachedContentTokenCount // 0' <<<"$usage")" "$usage"
}

xai() { # model file
  local count
  count=$(curl -sS https://api.x.ai/v1/tokenize-text \
    -H "authorization: Bearer $XAI_API_KEY" -H "content-type: application/json" \
    -d "$(jq -n --arg m "$1" --rawfile t "$2" '{model:$m, text:$t}')" | jq '.token_ids | length')
  local usage
  usage=$(curl -sS https://api.x.ai/v1/chat/completions \
    -H "authorization: Bearer $XAI_API_KEY" -H "content-type: application/json" \
    -d "$(jq -n --arg m "$1" --rawfile t "$2" \
      '{model:$m, max_tokens:1, messages:[{role:"user", content:$t}]}')" | jq '.usage')
  emit xai "$1" "$2" "$count" "$(jq '.prompt_tokens' <<<"$usage")" \
    "$(jq '.prompt_tokens_details.cached_tokens // 0' <<<"$usage")" "$usage"
}

anthropic() { # model file
  local body
  body=$(jq -n --arg m "$1" --rawfile t "$2" '{model:$m, messages:[{role:"user", content:$t}]}')
  local count
  count=$(curl -sS https://api.anthropic.com/v1/messages/count_tokens \
    -H "x-api-key: $ANTHROPIC_API_KEY" -H "anthropic-version: 2023-06-01" \
    -H "content-type: application/json" -d "$body" | jq '.input_tokens')
  local usage
  usage=$(curl -sS https://api.anthropic.com/v1/messages \
    -H "x-api-key: $ANTHROPIC_API_KEY" -H "anthropic-version: 2023-06-01" \
    -H "content-type: application/json" \
    -d "$(jq '. + {max_tokens:1}' <<<"$body")" | jq '.usage')
  emit anthropic "$1" "$2" "$count" "$(jq '.input_tokens' <<<"$usage")" \
    "$(jq '.cache_read_input_tokens // 0' <<<"$usage")" "$usage"
}

openai() { # model file
  # OpenAI has no counting endpoint for these models; tiktoken's o200k_base is
  # the published encoding they use.
  local count
  count=$(python3 -c 'import sys, tiktoken
print(len(tiktoken.get_encoding("o200k_base").encode(open(sys.argv[1]).read())))' "$2")
  local usage
  usage=$(curl -sS https://api.openai.com/v1/responses \
    -H "authorization: Bearer $OPENAI_API_KEY" -H "content-type: application/json" \
    -d "$(jq -n --arg m "$1" --rawfile t "$2" \
      '{model:$m, max_output_tokens:16, input:[{role:"user", content:$t}]}')" | jq '.usage')
  emit openai "$1" "$2" "$count" "$(jq '.input_tokens' <<<"$usage")" \
    "$(jq '.input_tokens_details.cached_tokens // 0' <<<"$usage")" "$usage"
}

for file in "$@"; do
  for m in "${GOOGLE_MODELS[@]}"; do google "$m" "$file"; done
  for m in "${XAI_MODELS[@]}"; do xai "$m" "$file"; done
  for m in "${ANTHROPIC_MODELS[@]}"; do anthropic "$m" "$file"; done
  for m in "${OPENAI_MODELS[@]}"; do openai "$m" "$file"; done
done

The texts

1 word 01-one-word.txt
a
Sample 02-english-sample.txt
The quarterly report shows that customer support requests fell by a fifth after the new help centre launched. Most of the remaining questions are about billing dates and how to change a plan. We suggest adding a short guide for both, and checking again next quarter to see whether the numbers keep going down.
150 w 03-english-150-words.txt
The quarterly report shows that customer support requests fell by a fifth after the new help centre launched. Most of the remaining questions are about billing dates and how to change a plan. We suggest adding a short guide for both, and checking again next quarter to see whether the numbers keep going down. This document explains how we reached those figures, what we think caused the change, and where we are less certain. It is written for the operations team and for anyone in finance or product who wants to understand the support numbers before the planning meeting at the end of the month. We have tried to keep it plain. Where a number depends on a choice we made, such as how we group requests or which weeks we compare, we say so. The first section covers the overall volume of requests. The second looks at what customers
600 w 04-english-600-words.txt
The quarterly report shows that customer support requests fell by a fifth after the new help centre launched. Most of the remaining questions are about billing dates and how to change a plan. We suggest adding a short guide for both, and checking again next quarter to see whether the numbers keep going down. This document explains how we reached those figures, what we think caused the change, and where we are less certain. It is written for the operations team and for anyone in finance or product who wants to understand the support numbers before the planning meeting at the end of the month. We have tried to keep it plain. Where a number depends on a choice we made, such as how we group requests or which weeks we compare, we say so. The first section covers the overall volume of requests. The second looks at what customers asked about. The third describes the help centre itself and how people used it. The fourth discusses staffing and response times. The last section lists our recommendations and the questions we would like answered before next quarter. Overall volume In the three months before the help centre launched, the support team received a little over eleven thousand requests. In the three months after, it received just under nine thousand. That is a fall of about nineteen percent, which we have rounded to a fifth in the summary. The number of active customers grew by around six percent over the same period, so the fall per customer is larger still, closer to a quarter. We counted a request as any new conversation opened by a customer, whether by email, by the chat window inside the product, or by the contact form on the website. We did not count replies within an existing conversation, and we did not count messages that our spam filter caught. If a customer wrote twice about the same problem on different days, that counts as two requests, because our system cannot reliably tell that they were related. We checked a sample of two hundred conversations by hand and found that about one in twenty was a repeat of an earlier request. That share was the same before and after the launch, so it should not affect the comparison. The fall was not even across the quarter. In the first two weeks after launch, volume barely moved. It then dropped sharply in the third and fourth weeks and settled at the lower level for the rest of the period. We think the delay reflects how long it took for the help centre to appear in search results and for the links inside the product to be noticed. Several customers told us they found an article through a search engine rather than through the product, which supports that reading. Weekends behaved differently from weekdays. Weekend volume fell by almost a third, while weekday volume fell by about sixteen percent. Our guess is that customers who write at the weekend are more likely to be working alone, without a colleague to ask, and so are more likely to look for an answer themselves before contacting us. We have no direct evidence for this, and it would be worth asking a few of those customers. What customers asked about We sorted every request into one of twelve topics. The sorting was done by the support agent who closed the conversation, using a short list that has not changed for two years. Agents do not always agree on the topic, and some conversations cover more than one. When we re-sorted a sample
Long 05-english-long.txt
The quarterly report shows that customer support requests fell by a fifth after the new help centre launched. Most of the remaining questions are about billing dates and how to change a plan. We suggest adding a short guide for both, and checking again next quarter to see whether the numbers keep going down.

This document explains how we reached those figures, what we think caused the change, and where we are less certain. It is written for the operations team and for anyone in finance or product who wants to understand the support numbers before the planning meeting at the end of the month. We have tried to keep it plain. Where a number depends on a choice we made, such as how we group requests or which weeks we compare, we say so.

The first section covers the overall volume of requests. The second looks at what customers asked about. The third describes the help centre itself and how people used it. The fourth discusses staffing and response times. The last section lists our recommendations and the questions we would like answered before next quarter.

Overall volume

In the three months before the help centre launched, the support team received a little over eleven thousand requests. In the three months after, it received just under nine thousand. That is a fall of about nineteen percent, which we have rounded to a fifth in the summary. The number of active customers grew by around six percent over the same period, so the fall per customer is larger still, closer to a quarter.

We counted a request as any new conversation opened by a customer, whether by email, by the chat window inside the product, or by the contact form on the website. We did not count replies within an existing conversation, and we did not count messages that our spam filter caught. If a customer wrote twice about the same problem on different days, that counts as two requests, because our system cannot reliably tell that they were related. We checked a sample of two hundred conversations by hand and found that about one in twenty was a repeat of an earlier request. That share was the same before and after the launch, so it should not affect the comparison.

The fall was not even across the quarter. In the first two weeks after launch, volume barely moved. It then dropped sharply in the third and fourth weeks and settled at the lower level for the rest of the period. We think the delay reflects how long it took for the help centre to appear in search results and for the links inside the product to be noticed. Several customers told us they found an article through a search engine rather than through the product, which supports that reading.

Weekends behaved differently from weekdays. Weekend volume fell by almost a third, while weekday volume fell by about sixteen percent. Our guess is that customers who write at the weekend are more likely to be working alone, without a colleague to ask, and so are more likely to look for an answer themselves before contacting us. We have no direct evidence for this, and it would be worth asking a few of those customers.

What customers asked about

We sorted every request into one of twelve topics. The sorting was done by the support agent who closed the conversation, using a short list that has not changed for two years. Agents do not always agree on the topic, and some conversations cover more than one. When we re-sorted a sample ourselves, we agreed with the original topic about four times in five. That is good enough for broad trends, but small changes in a single topic should be read with care.

The biggest change was in questions about getting started. These made up almost a quarter of all requests before the launch and less than a tenth afterwards. The help centre's setup guide is its most visited page by a wide margin, and the drop in these questions began in the same week that the guide started to receive steady traffic. We are fairly confident the two are connected.

Questions about connecting other tools also fell, though less sharply. The help centre has a separate article for each of the eight tools we connect to, and the articles for the three most popular tools were visited often. The other five were rarely visited, and questions about those tools did not fall at all. It may be that those articles are hard to find, or that customers using the less common tools have more unusual problems that a general article does not answer.

Two topics did not fall. Questions about billing dates stayed at roughly the same number, and questions about changing a plan rose slightly. Together they now make up more than a third of all requests, compared with about a fifth before. This is mostly because everything else shrank around them, but it also means they are now the largest single source of work for the team.

When we read through a sample of the billing questions, a pattern stood out. Many customers did not understand why their first invoice was for a different amount from the later ones. The first invoice covers a partial month, from the day they signed up to the end of the month, while later invoices cover a full month. This is explained in the terms of service, but not anywhere a customer is likely to look when they see the invoice. A similar confusion affects customers who change plan in the middle of a month, who receive a credit for the unused part of the old plan and a charge for the remaining part of the new one. The resulting invoice is correct but hard to read.

Questions about changing a plan were often from customers who could not find the setting. The option sits inside the account page, under a heading that refers to the subscription rather than the plan, and several customers said they had looked for the word plan and not found it. A smaller group wanted to change plan and also keep a discount they had been given when they joined, and were unsure whether the discount would carry over. It does, but nothing on the page says so.

The help centre

The help centre went live with forty-two articles. Fourteen more were added during the quarter, mostly in response to questions that agents saw repeatedly. Each article has a short title phrased as a question, a two-line answer at the top, and then the detail. We chose this layout because our early testing showed that most visitors read only the first few lines before either leaving or clicking further.

About sixty thousand people visited the help centre during the quarter. Roughly half arrived from a search engine, a third from links inside the product, and the rest from emails we sent or from links shared by other customers. The average visit lasted a little under two minutes and covered one or two articles. At the bottom of each article we ask whether it was helpful. About one visitor in ten answers, and of those, a little over three quarters say yes.

We looked at what happened after a visit. If a customer visited the help centre and then opened a support request within the next hour, we treated that as a sign that the article did not fully answer the question. By that measure, the setup guide performed very well, with only one visit in fifty followed by a request. The billing articles performed poorly, with about one visit in eight followed by a request, usually about the same topic. That is consistent with what we heard from customers about invoices being hard to read.

Search inside the help centre was used less than we expected. Only about one visitor in six typed a search, and many of those searches returned no results because the customer used words that do not appear in our articles. The most common failed searches were for refund, receipt, cancel and invoice date. We have since added these words to the relevant articles, but the change came late in the quarter and we cannot yet say whether it helped.

Staffing and response times

The support team had seven agents throughout the quarter. Before the launch, the median time to a first reply was a little over four hours during the working week and almost a full day at the weekend. After the launch it fell to under three hours during the week and about fourteen hours at the weekend. The time to resolve a request fell less, from about a day and a half to just over a day, because the requests that remained tended to be harder.

We do not think the shorter reply times came only from lower volume. During the quarter the team also started using saved replies for common questions and changed the order in which new requests are picked up, so that older requests are answered first. Both changes were made in the second month. It is not possible to separate their effects cleanly from the effect of the help centre, so we have avoided putting a number on each.

Agents reported that their work felt different after the launch. With fewer simple setup questions, a larger share of their day went to billing questions and to problems that needed someone from engineering to look at. Several agents said they would like more training on how invoices are calculated, so they can explain them with confidence rather than passing them to the finance team. The finance team handled about four hundred such referrals during the quarter, which is more than they had planned for.

Customer satisfaction, measured by the short survey sent after each closed request, stayed roughly level. About eighty-six percent of customers who answered said they were satisfied, against eighty-five percent the quarter before. The response rate to the survey is low, around fifteen percent, and the customers who answer tend to be those who had either a very good or a very bad experience, so we treat this figure as a rough signal only.

Recommendations

First, write a short guide to reading an invoice. It should explain the partial first month, the credit and charge that follow a plan change, and how discounts appear. It should include a picture of a real invoice with each line labelled. Link it from the invoice email itself, not only from the help centre, since that is where the confusion starts.

Second, write a short guide to changing a plan, and rename the heading on the account page so that it uses the word plan. The guide should say plainly that an existing discount carries over. This is a small change to the product and should not need much engineering time.

Third, review the five connection articles that were rarely visited. Check whether they can be found from the product, and whether they answer the questions customers actually ask about those tools. If the questions are unusual, it may be better to invite those customers to a short call than to keep extending the article.

Fourth, give agents an hour of training on invoices with someone from finance. This should reduce the number of referrals and make the replies more consistent.

Finally, check the numbers again next quarter. We would like to know whether the volume stays at its new level, whether billing and plan questions fall once the two new guides are live, and whether the weekend pattern holds. If volume keeps going down, we should also discuss whether the team's time could be used for other work, such as calling customers who are new or who seem to be struggling, rather than waiting for them to write in.

Open questions

There are a few things we could not answer with the data we have. We do not know how many customers looked for help, failed to find it, and then gave up without writing to us. Some of the fall in requests could be people who stopped trying rather than people who found an answer. A short survey of customers who visited the help centre but did not open a request would help here.

We also do not know whether the customers who use the help centre are different from those who write in. If the help centre mainly serves experienced customers who would have solved the problem eventually anyway, its effect on new customers may be smaller than the overall numbers suggest. Splitting the figures by how long a customer has been with us would show whether this is the case.

Lastly, we have assumed that the topics agents choose are reliable enough to compare from one quarter to the next. If the way agents sort requests changed after the launch, perhaps because they started to treat setup questions differently once a guide existed, some of the shift between topics could come from the sorting rather than from customers. We plan to re-sort a fresh sample next quarter to check.

We are happy to go through any of this in more detail before the planning meeting, and to share the underlying counts with anyone who would like to check our working.

Appendix: how the comparison weeks were chosen

The help centre launched on a Tuesday, so we compared the thirteen full weeks before the launch week with the thirteen full weeks after it, and left the launch week itself out of both. Two public holidays fell in the earlier period and one in the later period. Holiday weeks are quieter than usual, so if anything this choice makes the earlier period look slightly smaller than a normal quarter would, and the true fall slightly larger than the one we report. We tried the comparison again with the holiday weeks removed from both sides, and the fall came out at about twenty percent instead of nineteen, which did not change any of our conclusions.

We also checked whether the fall could be explained by a change in the kind of customers we were signing up. During the later period the sales team ran a campaign aimed at larger companies, and larger companies tend to have their own administrators who handle setup for everyone else. If many of the new customers were of that kind, fewer setup questions might have reached us regardless of the help centre. In fact, the share of new customers from larger companies rose only from about one in eight to about one in seven, which is too small a change to account for more than a sliver of the fall.

One last point concerns the chat window inside the product. In the middle of the later period, the chat window was moved from the bottom right corner of the screen to a menu, after a design review found that it covered part of the reporting page on smaller screens. Chat requests fell in the week of that move, and some of that fall may simply be customers who could no longer see the button. We estimate the effect at a few hundred requests across the rest of the quarter, based on how chat volume compared with email volume before and after the move. That is small next to the overall fall, but it is not nothing, and it is one more reason to check the numbers again next quarter before drawing firm conclusions about the help centre alone.

Raw results

Every line the script printed, including each provider's own usage object.

results.jsonl
{"provider": "google", "model": "gemini-3.5-flash-lite", "text": "01-one-word.txt", "counted": 1, "billed": 2, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:20:13Z", "usage": {"promptTokenCount": 2, "totalTokenCount": 2, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.5-flash", "text": "01-one-word.txt", "counted": 1, "billed": 2, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:20:14Z", "usage": {"promptTokenCount": 2, "totalTokenCount": 2, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.1-pro-preview", "text": "01-one-word.txt", "counted": 1, "billed": 2, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:20:16Z", "usage": {"promptTokenCount": 2, "totalTokenCount": 2, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2}], "serviceTier": "standard"}}
{"provider": "xai", "model": "grok-build-0.1", "text": "01-one-word.txt", "counted": 1, "billed": 187, "cached": 128, "fixed": 186, "measured_at": "2026-10-13T18:20:19Z", "usage": {"prompt_tokens": 187, "completion_tokens": 1, "total_tokens": 468, "prompt_tokens_details": {"text_tokens": 187, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 280, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 6466000}}
{"provider": "xai", "model": "grok-4.3", "text": "01-one-word.txt", "counted": 1, "billed": 193, "cached": 128, "fixed": 192, "measured_at": "2026-10-13T18:20:21Z", "usage": {"prompt_tokens": 193, "completion_tokens": 1, "total_tokens": 343, "prompt_tokens_details": {"text_tokens": 193, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 149, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 4818500}}
{"provider": "xai", "model": "grok-4.7", "text": "01-one-word.txt", "counted": 1, "billed": 1243, "cached": 1152, "fixed": 1242, "measured_at": "2026-10-13T18:20:22Z", "usage": {"prompt_tokens": 1243, "completion_tokens": 1, "total_tokens": 1306, "prompt_tokens_details": {"text_tokens": 1243, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 1152}, "completion_tokens_details": {"reasoning_tokens": 62, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 11360000}}
{"provider": "anthropic", "model": "claude-haiku-5-5", "text": "01-one-word.txt", "counted": 9, "billed": 9, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:20:23Z", "usage": {"input_tokens": 9, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "anthropic", "model": "claude-sonnet-5-5", "text": "01-one-word.txt", "counted": 9, "billed": 9, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:20:25Z", "usage": {"input_tokens": 9, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "openai", "model": "gpt-6-luna", "text": "01-one-word.txt", "counted": 1, "billed": 7, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:20:26Z", "usage": {"input_tokens": 7, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 23}}
{"provider": "openai", "model": "gpt-6.1-sol", "text": "01-one-word.txt", "counted": 1, "billed": 7, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:20:29Z", "usage": {"input_tokens": 7, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 13, "output_tokens_details": {"reasoning_tokens": 0}, "total_tokens": 20}}
{"provider": "openai", "model": "gpt-6-astra", "text": "01-one-word.txt", "counted": 1, "billed": 7, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:20:32Z", "usage": {"input_tokens": 7, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 13, "output_tokens_details": {"reasoning_tokens": 0}, "total_tokens": 20}}
{"provider": "google", "model": "gemini-3.5-flash-lite", "text": "02-english-sample.txt", "counted": 58, "billed": 59, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:20:33Z", "usage": {"promptTokenCount": 59, "totalTokenCount": 59, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 59}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.5-flash", "text": "02-english-sample.txt", "counted": 58, "billed": 59, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:20:34Z", "usage": {"promptTokenCount": 59, "totalTokenCount": 59, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 59}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.1-pro-preview", "text": "02-english-sample.txt", "counted": 58, "billed": 59, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:20:36Z", "usage": {"promptTokenCount": 59, "totalTokenCount": 59, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 59}], "serviceTier": "standard"}}
{"provider": "xai", "model": "grok-build-0.1", "text": "02-english-sample.txt", "counted": 58, "billed": 244, "cached": 192, "fixed": 186, "measured_at": "2026-10-13T18:20:45Z", "usage": {"prompt_tokens": 244, "completion_tokens": 1, "total_tokens": 1132, "prompt_tokens_details": {"text_tokens": 244, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 192}, "completion_tokens_details": {"reasoning_tokens": 887, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 18664000}}
{"provider": "xai", "model": "grok-4.3", "text": "02-english-sample.txt", "counted": 58, "billed": 250, "cached": 128, "fixed": 192, "measured_at": "2026-10-13T18:20:50Z", "usage": {"prompt_tokens": 250, "completion_tokens": 1, "total_tokens": 669, "prompt_tokens_details": {"text_tokens": 250, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 418, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 12256000}}
{"provider": "xai", "model": "grok-4.7", "text": "02-english-sample.txt", "counted": 58, "billed": 1300, "cached": 1280, "fixed": 1242, "measured_at": "2026-10-13T18:20:59Z", "usage": {"prompt_tokens": 1300, "completion_tokens": 1, "total_tokens": 1832, "prompt_tokens_details": {"text_tokens": 1300, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 1280}, "completion_tokens_details": {"reasoning_tokens": 531, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 38720000}}
{"provider": "anthropic", "model": "claude-haiku-5-5", "text": "02-english-sample.txt", "counted": 95, "billed": 95, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:21:00Z", "usage": {"input_tokens": 95, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "anthropic", "model": "claude-sonnet-5-5", "text": "02-english-sample.txt", "counted": 95, "billed": 95, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:21:01Z", "usage": {"input_tokens": 95, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "openai", "model": "gpt-6-luna", "text": "02-english-sample.txt", "counted": 58, "billed": 64, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:21:02Z", "usage": {"input_tokens": 64, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 80}}
{"provider": "openai", "model": "gpt-6.1-sol", "text": "02-english-sample.txt", "counted": 58, "billed": 64, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:21:04Z", "usage": {"input_tokens": 64, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 80}}
{"provider": "openai", "model": "gpt-6-astra", "text": "02-english-sample.txt", "counted": 58, "billed": 64, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:21:07Z", "usage": {"input_tokens": 64, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 80}}
{"provider": "google", "model": "gemini-3.5-flash-lite", "text": "03-english-150-words.txt", "counted": 163, "billed": 164, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:21:10Z", "usage": {"promptTokenCount": 164, "totalTokenCount": 164, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 164}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.5-flash", "text": "03-english-150-words.txt", "counted": 163, "billed": 164, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:21:11Z", "usage": {"promptTokenCount": 164, "totalTokenCount": 164, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 164}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.1-pro-preview", "text": "03-english-150-words.txt", "counted": 163, "billed": 164, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:21:15Z", "usage": {"promptTokenCount": 164, "totalTokenCount": 164, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 164}], "serviceTier": "standard"}}
{"provider": "xai", "model": "grok-build-0.1", "text": "03-english-150-words.txt", "counted": 163, "billed": 349, "cached": 128, "fixed": 186, "measured_at": "2026-10-13T18:21:25Z", "usage": {"prompt_tokens": 349, "completion_tokens": 1, "total_tokens": 1525, "prompt_tokens_details": {"text_tokens": 349, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 1175, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 25986000}}
{"provider": "xai", "model": "grok-4.3", "text": "03-english-150-words.txt", "counted": 163, "billed": 355, "cached": 128, "fixed": 192, "measured_at": "2026-10-13T18:21:31Z", "usage": {"prompt_tokens": 355, "completion_tokens": 1, "total_tokens": 881, "prompt_tokens_details": {"text_tokens": 355, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 525, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 16243500}}
{"provider": "xai", "model": "grok-4.7", "text": "03-english-150-words.txt", "counted": 163, "billed": 1405, "cached": 1152, "fixed": 1242, "measured_at": "2026-10-13T18:21:37Z", "usage": {"prompt_tokens": 1405, "completion_tokens": 1, "total_tokens": 1953, "prompt_tokens_details": {"text_tokens": 1405, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 1152}, "completion_tokens_details": {"reasoning_tokens": 547, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 43700000}}
{"provider": "anthropic", "model": "claude-haiku-5-5", "text": "03-english-150-words.txt", "counted": 232, "billed": 232, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:21:38Z", "usage": {"input_tokens": 232, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "anthropic", "model": "claude-sonnet-5-5", "text": "03-english-150-words.txt", "counted": 232, "billed": 232, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:21:39Z", "usage": {"input_tokens": 232, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "openai", "model": "gpt-6-luna", "text": "03-english-150-words.txt", "counted": 163, "billed": 169, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:21:40Z", "usage": {"input_tokens": 169, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 185}}
{"provider": "openai", "model": "gpt-6.1-sol", "text": "03-english-150-words.txt", "counted": 163, "billed": 169, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:21:43Z", "usage": {"input_tokens": 169, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 185}}
{"provider": "openai", "model": "gpt-6-astra", "text": "03-english-150-words.txt", "counted": 163, "billed": 169, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:21:45Z", "usage": {"input_tokens": 169, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 185}}
{"provider": "google", "model": "gemini-3.5-flash-lite", "text": "04-english-600-words.txt", "counted": 661, "billed": 662, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:21:46Z", "usage": {"promptTokenCount": 662, "totalTokenCount": 662, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 662}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.5-flash", "text": "04-english-600-words.txt", "counted": 661, "billed": 662, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:21:47Z", "usage": {"promptTokenCount": 662, "totalTokenCount": 662, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 662}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.1-pro-preview", "text": "04-english-600-words.txt", "counted": 661, "billed": 662, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:21:51Z", "usage": {"promptTokenCount": 662, "totalTokenCount": 662, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 662}], "serviceTier": "standard"}}
{"provider": "xai", "model": "grok-build-0.1", "text": "04-english-600-words.txt", "counted": 661, "billed": 847, "cached": 128, "fixed": 186, "measured_at": "2026-10-13T18:23:15Z", "usage": {"prompt_tokens": 847, "completion_tokens": 1, "total_tokens": 6802, "prompt_tokens_details": {"text_tokens": 847, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 5954, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 126546000}}
{"provider": "xai", "model": "grok-4.3", "text": "04-english-600-words.txt", "counted": 661, "billed": 853, "cached": 128, "fixed": 192, "measured_at": "2026-10-13T18:23:27Z", "usage": {"prompt_tokens": 853, "completion_tokens": 1, "total_tokens": 1642, "prompt_tokens_details": {"text_tokens": 853, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 788, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 29043500}}
{"provider": "xai", "model": "grok-4.7", "text": "04-english-600-words.txt", "counted": 662, "billed": 1904, "cached": 1152, "fixed": 1242, "measured_at": "2026-10-13T18:23:35Z", "usage": {"prompt_tokens": 1904, "completion_tokens": 1, "total_tokens": 2509, "prompt_tokens_details": {"text_tokens": 1904, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 1152}, "completion_tokens_details": {"reasoning_tokens": 604, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 57100000}}
{"provider": "anthropic", "model": "claude-haiku-5-5", "text": "04-english-600-words.txt", "counted": 928, "billed": 928, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:23:36Z", "usage": {"input_tokens": 928, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "anthropic", "model": "claude-sonnet-5-5", "text": "04-english-600-words.txt", "counted": 928, "billed": 928, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:23:37Z", "usage": {"input_tokens": 928, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "openai", "model": "gpt-6-luna", "text": "04-english-600-words.txt", "counted": 661, "billed": 667, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:23:39Z", "usage": {"input_tokens": 667, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 683}}
{"provider": "openai", "model": "gpt-6.1-sol", "text": "04-english-600-words.txt", "counted": 661, "billed": 667, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:23:41Z", "usage": {"input_tokens": 667, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 683}}
{"provider": "openai", "model": "gpt-6-astra", "text": "04-english-600-words.txt", "counted": 661, "billed": 667, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:23:44Z", "usage": {"input_tokens": 667, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 683}}
{"provider": "google", "model": "gemini-3.5-flash-lite", "text": "05-english-long.txt", "counted": 2900, "billed": 2901, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:23:45Z", "usage": {"promptTokenCount": 2901, "totalTokenCount": 2901, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2901}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.5-flash", "text": "05-english-long.txt", "counted": 2900, "billed": 2901, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:23:47Z", "usage": {"promptTokenCount": 2901, "totalTokenCount": 2901, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2901}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.1-pro-preview", "text": "05-english-long.txt", "counted": 2900, "billed": 2901, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:23:50Z", "usage": {"promptTokenCount": 2901, "totalTokenCount": 2901, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2901}], "serviceTier": "standard"}}
{"provider": "xai", "model": "grok-build-0.1", "text": "05-english-long.txt", "counted": 2857, "billed": 3043, "cached": 128, "fixed": 186, "measured_at": "2026-10-13T18:24:02Z", "usage": {"prompt_tokens": 3043, "completion_tokens": 1, "total_tokens": 4295, "prompt_tokens_details": {"text_tokens": 3043, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 1251, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 54446000}}
{"provider": "xai", "model": "grok-4.3", "text": "05-english-long.txt", "counted": 2857, "billed": 3049, "cached": 128, "fixed": 192, "measured_at": "2026-10-13T18:24:08Z", "usage": {"prompt_tokens": 3049, "completion_tokens": 1, "total_tokens": 3596, "prompt_tokens_details": {"text_tokens": 3049, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 546, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 50443500}}
{"provider": "xai", "model": "grok-4.7", "text": "05-english-long.txt", "counted": 2868, "billed": 4110, "cached": 1152, "fixed": 1242, "measured_at": "2026-10-13T18:24:18Z", "usage": {"prompt_tokens": 4110, "completion_tokens": 1, "total_tokens": 4669, "prompt_tokens_details": {"text_tokens": 4110, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 1152}, "completion_tokens_details": {"reasoning_tokens": 558, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 98460000}}
{"provider": "anthropic", "model": "claude-haiku-5-5", "text": "05-english-long.txt", "counted": 4028, "billed": 4028, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:24:19Z", "usage": {"input_tokens": 4028, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "anthropic", "model": "claude-sonnet-5-5", "text": "05-english-long.txt", "counted": 4028, "billed": 4028, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:24:20Z", "usage": {"input_tokens": 4028, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "openai", "model": "gpt-6-luna", "text": "05-english-long.txt", "counted": 2864, "billed": 2870, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:24:21Z", "usage": {"input_tokens": 2870, "input_tokens_details": {"cache_write_tokens": 2867, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 2886}}
{"provider": "openai", "model": "gpt-6.1-sol", "text": "05-english-long.txt", "counted": 2864, "billed": 2870, "cached": 2867, "fixed": 6, "measured_at": "2026-10-13T18:25:54Z", "usage": {"input_tokens": 2870, "input_tokens_details": {"cache_write_tokens": 0, "cached_tokens": 2867}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 2886}, "note": "first call returned an all-zero usage block; re-run"}
{"provider": "openai", "model": "gpt-6-astra", "text": "05-english-long.txt", "counted": 2864, "billed": 2870, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:24:25Z", "usage": {"input_tokens": 2870, "input_tokens_details": {"cache_write_tokens": 2867, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 2886}}
{"provider": "google", "model": "gemini-3.5-flash-lite", "text": "06-code-long.txt", "counted": 2728, "billed": 2729, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:24:27Z", "usage": {"promptTokenCount": 2729, "totalTokenCount": 2729, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2729}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.5-flash", "text": "06-code-long.txt", "counted": 2728, "billed": 2729, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:24:32Z", "usage": {"promptTokenCount": 2729, "totalTokenCount": 2729, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2729}], "serviceTier": "standard"}}
{"provider": "google", "model": "gemini-3.1-pro-preview", "text": "06-code-long.txt", "counted": 2728, "billed": 2729, "cached": 0, "fixed": 1, "measured_at": "2026-10-13T18:24:34Z", "usage": {"promptTokenCount": 2729, "totalTokenCount": 2729, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2729}], "serviceTier": "standard"}}
{"provider": "xai", "model": "grok-build-0.1", "text": "06-code-long.txt", "counted": 2339, "billed": 2525, "cached": 128, "fixed": 186, "measured_at": "2026-10-13T18:24:44Z", "usage": {"prompt_tokens": 2525, "completion_tokens": 1, "total_tokens": 3378, "prompt_tokens_details": {"text_tokens": 2525, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 852, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 41286000}}
{"provider": "xai", "model": "grok-4.3", "text": "06-code-long.txt", "counted": 2339, "billed": 2531, "cached": 128, "fixed": 192, "measured_at": "2026-10-13T18:24:48Z", "usage": {"prompt_tokens": 2531, "completion_tokens": 1, "total_tokens": 2920, "prompt_tokens_details": {"text_tokens": 2531, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 128}, "completion_tokens_details": {"reasoning_tokens": 388, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 40018500}}
{"provider": "xai", "model": "grok-4.7", "text": "06-code-long.txt", "counted": 2561, "billed": 3803, "cached": 1152, "fixed": 1242, "measured_at": "2026-10-13T18:25:11Z", "usage": {"prompt_tokens": 3803, "completion_tokens": 1, "total_tokens": 5427, "prompt_tokens_details": {"text_tokens": 3803, "audio_tokens": 0, "image_tokens": 0, "cached_tokens": 1152}, "completion_tokens_details": {"reasoning_tokens": 1623, "audio_tokens": 0, "accepted_prediction_tokens": 0, "rejected_prediction_tokens": 0}, "num_sources_used": 0, "cost_in_usd_ticks": 156220000}}
{"provider": "anthropic", "model": "claude-haiku-5-5", "text": "06-code-long.txt", "counted": 3737, "billed": 3737, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:25:13Z", "usage": {"input_tokens": 3737, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "anthropic", "model": "claude-sonnet-5-5", "text": "06-code-long.txt", "counted": 3737, "billed": 3737, "cached": 0, "fixed": 0, "measured_at": "2026-10-13T18:25:14Z", "usage": {"input_tokens": 3737, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "cache_creation": {"ephemeral_5m_input_tokens": 0, "ephemeral_1h_input_tokens": 0}, "output_tokens": 1, "output_tokens_details": {"thinking_tokens": 0}, "service_tier": "standard", "inference_geo": "global"}}
{"provider": "openai", "model": "gpt-6-luna", "text": "06-code-long.txt", "counted": 2374, "billed": 2380, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:25:15Z", "usage": {"input_tokens": 2380, "input_tokens_details": {"cache_write_tokens": 2377, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 2396}}
{"provider": "openai", "model": "gpt-6.1-sol", "text": "06-code-long.txt", "counted": 2374, "billed": 2380, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:25:18Z", "usage": {"input_tokens": 2380, "input_tokens_details": {"cache_write_tokens": 2377, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 2396}}
{"provider": "openai", "model": "gpt-6-astra", "text": "06-code-long.txt", "counted": 2374, "billed": 2380, "cached": 0, "fixed": 6, "measured_at": "2026-10-13T18:25:20Z", "usage": {"input_tokens": 2380, "input_tokens_details": {"cache_write_tokens": 2377, "cached_tokens": 0}, "output_tokens": 16, "output_tokens_details": {"reasoning_tokens": 16}, "total_tokens": 2396}}
{"provider": "google", "model": "gemini-4-argon", "text": "01-one-word.txt", "counted": 32, "billed": 32, "cached": 0, "fixed": 0, "measured_at": "2026-10-15T13:50:16Z", "usage": {"promptTokenCount": 32, "candidatesTokenCount": 1, "totalTokenCount": 33, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 32}], "candidatesTokensDetails": [{"modality": "TEXT", "tokenCount": 1}]}}
{"provider": "google", "model": "gemini-4-argon", "text": "02-english-sample.txt", "counted": 89, "billed": 89, "cached": 0, "fixed": 0, "measured_at": "2026-10-15T13:50:21Z", "usage": {"promptTokenCount": 89, "candidatesTokenCount": 1, "totalTokenCount": 90, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 89}], "candidatesTokensDetails": [{"modality": "TEXT", "tokenCount": 1}]}}
{"provider": "google", "model": "gemini-4-argon", "text": "03-english-150-words.txt", "counted": 194, "billed": 194, "cached": 0, "fixed": 0, "measured_at": "2026-10-15T13:50:25Z", "usage": {"promptTokenCount": 194, "candidatesTokenCount": 1, "totalTokenCount": 195, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 194}], "candidatesTokensDetails": [{"modality": "TEXT", "tokenCount": 1}]}}
{"provider": "google", "model": "gemini-4-argon", "text": "04-english-600-words.txt", "counted": 692, "billed": 692, "cached": 0, "fixed": 0, "measured_at": "2026-10-15T13:50:30Z", "usage": {"promptTokenCount": 692, "candidatesTokenCount": 1, "totalTokenCount": 693, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 692}], "candidatesTokensDetails": [{"modality": "TEXT", "tokenCount": 1}]}}
{"provider": "google", "model": "gemini-4-argon", "text": "05-english-long.txt", "counted": 2930, "billed": 2930, "cached": 0, "fixed": 0, "measured_at": "2026-10-15T13:50:41Z", "usage": {"promptTokenCount": 2930, "candidatesTokenCount": 1, "totalTokenCount": 2931, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2930}], "candidatesTokensDetails": [{"modality": "TEXT", "tokenCount": 1}]}}
{"provider": "google", "model": "gemini-4-argon", "text": "06-code-long.txt", "counted": 2741, "billed": 2741, "cached": 0, "fixed": 0, "measured_at": "2026-10-15T13:51:28Z", "usage": {"promptTokenCount": 2741, "candidatesTokenCount": 1, "totalTokenCount": 2742, "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 2741}], "candidatesTokensDetails": [{"modality": "TEXT", "tokenCount": 1}]}}