Every reply in a splitscreen room carries a price under it, and I want to be plain about where that number comes from, because a price nobody can check is a price nobody should trust.
A model charges for what it reads and for what it writes, at a different rate for each. splitscreen counts both, applies the rate for that exact model, adds any per-call fee a tool charged, and prints the result to four decimal places. It truncates rather than rounds, so the figure on screen is never higher than what you were charged.
Then there is whose money it was. On your own API key you pay Anthropic, OpenAI or Google directly at their rates and we add nothing to the bill. On splitscreen credits the reply runs on our provider account instead, and your balance is charged what the provider charged us plus 30 percent, or 20 percent on the Squad plan.
The two replies below are the same model on the same rate card. One ran on Halle’s own key and one came out of her credits, and the arithmetic for both is written out under the room.
Halle owns this room and holds an Anthropic key and a credit balance. Ozzy holds neither and asks anyway.
A curated transcript, written by us to show what the product does - not a recording of a session, not a live room, and not real people. The prices are the ordinary rates on what each AI can do.
| after | Halle’s Anthropic budget | Cover, today |
|---|---|---|
| Halle opens the room | $2.0000 | $2.0000 |
| Halle asks Claude | $1.9862 | $2.0000 |
| Ozzy asks Claude | $1.9862 | $1.9837 |
Claude - our docs search returns nothing for "how do I cancel" even though the cancellation page exists and uses the word "cancel" four times. We index on titles and headings only. What is the smallest change that fixes this class of miss without turning it into a search project?
Index the first paragraph under each heading as well as the heading itself, and weight it below the heading.
Your miss is not a ranking problem. "How do I cancel" has no matching term in your index at all, because the page is called "Ending your subscription" and the word "cancel" only appears in the body. Nothing you do to the scoring will surface a document with a score of zero.
The smallest version of the fix is one extra field per heading, holding the text between that heading and the next one, truncated at a few hundred characters. That is a change to the indexer and one line in the query, and it catches the common case where the word a reader uses appears in the prose but not in the title.
What I would not do yet is synonyms. A hand-maintained list of them is a file somebody has to keep current forever, and it will not help with any phrasing nobody thought of. Add the body text first and measure how many of your zero-result queries survive it. If a large fraction do, the surviving ones will tell you which synonyms are actually worth writing down.
$0.0138 · billed to Halle's Anthropic key
Claude - if we index the first paragraph under every heading, how much bigger does the index get, and does that change how we should be truncating? Our docs are about 400 pages.
Smaller than it sounds, and the truncation matters more for ranking than for size.
Take 400 pages at roughly eight headings each. That is about 3,200 snippets, and at 300 characters apiece it is under a megabyte of text before the index structure itself. For a docs site that is not a capacity question, it is a rounding error.
Where the length does matter is scoring. A long snippet dilutes the terms in it, so a heading whose first paragraph rambles will rank below one that gets to the point, for the same query, purely because of length. Truncating at a sentence boundary near your limit rather than at a character count keeps that from being arbitrary.
One thing worth doing while you are in the indexer: skip snippets that are only a link or a code block. They add terms that match nothing a person would type and they push down the headings that would have answered.
$0.0163 · covered by Halle
Good. I will do the sentence-boundary version and leave the synonyms alone. Three cents for the pair of those, which is less than I expected.
Rates are per token, in nano-dollars, and they are the rates what each AI can do publishes from the same table the app bills from. Sonnet 5 reads at 2,000 nanos a token and writes at 10,000, which is $0.002 and $0.010 per thousand.
| read 2,400 tokens | 2,400 × 2,000 nanos | $0.0048 |
|---|---|---|
| wrote 900 tokens | 900 × 10,000 nanos | $0.0090 |
| what the provider charged | $0.0138 | |
| splitscreen margin | none on your own key | $0.0000 |
| charged | $0.0138 |
| read 3,100 tokens | 3,100 × 2,000 nanos | $0.0062 |
|---|---|---|
| wrote 640 tokens | 640 × 10,000 nanos | $0.0064 |
| what the provider charged | $0.0126 | |
| splitscreen margin | +30% | $0.0037 |
| charged | $0.0163 |
Sonnet 5 is priced at $0.002 per thousand tokens read and $0.010 per thousand written. That ratio is why a long question is cheap and a long answer is not, and why a cap works by limiting how much the model may write.
Halle’s own reply cost $0.0138, which is exactly what Anthropic charged for it. Ozzy’s cost $0.0126 at provider prices and $0.0163 on her credits, and that gap is our margin.
Neither reply here used one. When a reply searches the web, the search is billed per call by the provider and shows on its own line inside the total, so a cheap reply with an expensive search is never quietly rolled into the token price.
Bring your own keys or use splitscreen credits, set the budget, and invite the people who have neither. The demo room is a longer transcript if you want one first, and pricing is two paths and a subscription.