Blog · 2026-07-30 · Vynaris Team
AI tutor cost per student-hour: 40 turns bill 639k tokens, caching cuts 77%
A 1:1 AI tutor bills 639k input tokens per 40-turn hour: every turn re-sends the dialogue, so caching cuts the frontier bill 77%. Verified 2026-07-30.
A 1:1 conversational AI tutor costs $0.0093 to $0.80 per student-hour across six models, cached, with prices verified 2026-07-30. One lever sets that bill, and it is not the model you pick. A 40-turn tutoring hour re-sends its whole growing history on every turn, so it bills 639,000 input tokens even though the context ends at only 30,600. Caching that growing prefix turns a quadratic token curve into a near-linear one and cuts the frontier bill 77%.
TL;DR
- A full student-hour on cached claude-opus-4.8 costs $0.80; uncached it costs $3.50. Same model, same hour, 77% gap, and the only difference is whether the framework caches the growing conversation.
- The hour bills 639,000 input tokens uncached, 20.9x the 30,600-token final context. That multiple is the quadratic re-send: every turn re-sends the entire dialogue so far.
- Model choice moves the cached bill from $0.0093 (deepseek-v4-flash) to $0.80 (claude-opus-4.8), an 85x spread. Caching decides an order of magnitude before that choice does.
The finding, before the model
A conversational tutor holds a back-and-forth with one student: the student asks or shows their working, the model responds, and the exchange repeats for the length of a session. Each turn feeds the model the whole conversation so far, because that history is the context the tutor needs to stay coherent. That single fact is the entire cost story.
The history grows every turn. By turn 40 the context holds about 30,600 tokens. But you do not pay for 30,600 tokens once. You pay for the context at turn 1, plus the context at turn 2, plus every turn through 40, and that sum is 639,000 input tokens. The per-turn input averages 15,975 tokens even though the session never holds more than 30,600 at once. This is quadratic growth inside a single hour: double the turns and the token bill roughly quadruples.
Prompt caching is the fix, and this workload is close to its ideal case. The conversation prefix grows monotonically within the hour: turn 40's context contains turn 39's context unchanged, plus new tokens on the end. So on every turn the entire prior context is a clean cache hit at 10% of input price, and only the student's newest message is full price. Nothing in the middle of the prompt changes, so nothing forces a cache rebuild.
We built this from public pricing only. No product data. Every token count is an assumption you can edit, and every price is from a provider's live page, captured 2026-07-30.
The verdict, cached, per student-hour
Model Cost / student-hour When to pick it
------------------------------------------------------------------------- ------------------- -----------------------------------------------------------------------------------------------------------
[deepseek-v4-flash](https://vynaris.com/models#deepseek-v4-flash) $0.0093 Default floor. Cache hit at 0.02x makes a long dialogue almost free, if it clears your tutoring-quality bar
[gemini-3.5-flash-lite](https://vynaris.com/models#gemini-3-5-flash-lite) $0.0574 Cheap non-DeepSeek option inside Google's stack
[gpt-5.4-mini](https://vynaris.com/models#gpt-5-4-mini) $0.1226 OpenAI-native shops wanting a mid workhorse tutor
[claude-haiku-4.5](https://vynaris.com/models#claude-haiku-4-5) $0.1591 Strong instruction-following per dollar for structured tutoring
[claude-sonnet-4.6](https://vynaris.com/models#claude-sonnet-4-6) $0.4773 When explanation quality on hard concepts justifies 3x Haiku
[claude-opus-4.8](https://vynaris.com/models#claude-opus-4-8) $0.7954 The hard tail: advanced tutoring or Socratic depth, not the defaultThe cached spread is 85x, from under a cent to $0.80 per student-hour. That is wider than the 38x uncached spread, because DeepSeek's cache-hit tier drops its re-sent tokens harder than the flat 0.1x the others offer. Caching does not just lower the bill; it changes how far apart the models sit.
The workload (edit these)
One student-hour is the outcome unit: roughly 40 turns of dialogue between one student and the tutor.
Assumption Value Note
--------------- ---------------------------------------------------------------------- --------------------------------------------------------
Turns per hour 40 one student-hour of active back-and-forth
Pedagogy prefix 900 input tokens persona, problem set, rubric; sent every turn, cacheable
Student message 450 tokens / turn the student shows their working or asks
Assistant reply 300 [output tokens](https://vynaris.com/glossary/output-tokens) / turn the tutor's response
History growth 750 tokens / turn student message plus assistant reply, appended each turn
Final context 30,600 tokens turn 40 inputThe number to argue with is the student message size. A 450-token turn assumes the student pastes an attempt or a chunk of work, which is why the context reaches 30k over an hour. A tutor answering one-line questions grows slower and costs less, and the whole curve scales with it. What does not change is the shape: input grows with the sum of context sizes, so the bill is quadratic in turn count. Per student-hour this rolls up to 639,000 uncached input tokens and 12,000 output tokens.
The model fee, six models
Same workload, same cost-per-token math, six models spanning the price ladder, uncached versus cached. Prices verified 2026-07-30.
Model Uncached / 1k hours Cached / 1k hours Caching saves
--------------------- ------------------- ----------------- -------------
deepseek-v4-flash $92.82 $9.35 89.9%
gemini-3.5-flash-lite $221.70 $57.43 74.1%
gpt-5.4-mini $533.25 $122.58 77.0%
claude-haiku-4.5 $699.00 $159.09 77.2%
claude-sonnet-4.6 $2,097.00 $477.27 77.2%
claude-opus-4.8 $3,495.00 $795.45 77.2%
Caching is worth a flat 77% on the three Anthropic models and on gpt-5.4-mini, because 95.2% of the 639,000 input tokens are re-sent history that reads back at a tenth of input price. DeepSeek beats that at 89.9%, because its cache hit is priced at $0.0028 per million, 2% of its miss rate, so the re-sent prefix is nearly free. Flash-Lite saves a slightly lower 74.1%, because its output rate ($2.50) is high relative to its input rate ($0.30), so the 12,000 output tokens are a bigger share of a bill that caching cannot touch.
Why the curve is quadratic, and how caching bends it
Walk the two turns that make the shape obvious. At turn 1 the model sees 1,350 tokens. At turn 40 it sees 30,600. The input climbs by 750 tokens every turn, so the total across 40 turns is the sum of that climbing series, 639,000 tokens, not the 30,600-token peak. A cost model that multiplies "final context times turns" or, worse, charges the context once, understates a real tutoring bill by roughly 20x.
Caching attacks the re-send directly. Across the hour, only 30,600 distinct input tokens ever exist; the other 608,400 are the same tokens sent again and again. With the prefix cached, those 30,600 distinct tokens are each written to cache once, and the 608,400 re-sends read at 0.1x. The cache write costs a 1.25x premium on the first appearance for Anthropic's 5-minute cache, but a single reuse already pays that back, and here every token is reused up to 39 times. This is the mirror image of the 33k-token scaffolding tax: there the expensive prefix is fixed and identical on every request; here it grows every turn and still caches cleanly, because it only ever grows on the end.
Run the shape on your own numbers in the calculator with the uncached student-hour pre-filled.
Where routing changes the unit economics (and where it does not)
For most cost playbooks, a cheap-first router with escalation is the headline saving. Here it is a footnote, and that is the honest finding. Caching already cuts every model 74% to 90%, so the routing question is what is left after caching, not before it.
The real lever is not model swaps but session length, because the cost is quadratic in turns. Compare a full 40-turn hour on cached claude-haiku-4.5 at $0.1591 against just 10 turns on cached claude-opus-4.8 at $0.1452. A frontier model kept to a short session costs about the same as a cheap model run for a full hour. So the routing decision that pays is temporal: use a stronger model for a tight, high-value stretch (a hard concept, an exam-prep drill) and a cheap model for the long tail of routine practice, rather than picking one model for the whole session. A full Opus hour is 5x a full Haiku hour; ten focused Opus turns are not.
If you do route by model, gate on the same free signal a tutor already has: the student's answer is right or wrong. Escalate to a stronger model when a student keeps missing after a cheap model's explanations, not on a guessed confidence score.
Build notes
A token model does not capture the constraints that decide a tutoring agent.
- Cache the conversation, and confirm your framework actually does. 95.2% of input is re-sent history. Many chat wrappers re-send it uncached every turn; the difference is the entire 74% to 90% saving. Check for a cache-read count in the usage object on turn 2; our prompt-caching walkthrough shows the exact break-even.
- The 5-minute cache expires on student think-time. Tutoring has pauses: a student works a problem for minutes before replying. If a gap exceeds the 5-minute window, the cache expires and the next turn pays a full re-write. Anthropic's 1-hour cache survives think-time at a 2x write premium instead of 1.25x, which raises the cached bill about 14% but protects against re-writing the whole 30k prefix mid-session. On a slow tutor, the 1-hour cache is usually the cheaper choice.
- Opus 4.8 and Opus 5 bill more tokens than the sticker implies. Claude 4.7 and later use a newer tokenizer that produces about 30% more tokens for the same text. So a cached Opus 4.8 hour is closer to $1.03 than the $0.80 the token count suggests, while claude-sonnet-4.6 and claude-haiku-4.5 use the older tokenizer and match the count. Compare on real cost per correct token, not sticker rate.
- Gemini's numbers assume implicit caching. Gemini's automatic cache carries no storage fee. If you use explicit context caching for a longer TTL, add roughly $0.01 to $0.02 per student-hour in storage at $1 per million tokens per hour, which still leaves it far below the uncached column.
- Trim before you cache. The cheapest turn is one you do not re-send. Summarizing the early dialogue after, say, 20 turns caps the prefix growth and bends the quadratic back toward linear, at the cost of some lost detail. For long sessions this beats caching alone.
When this workload does not need a router
The honest tradeoff: for a tutor, caching is the decision, and a model router is optional. If one cheap model tutors well enough for your subject, cache its conversation and stop. At cached deepseek-v4-flash you are at under a cent per student-hour, and cached claude-haiku-4.5 is $0.16 with strong instruction-following. A frontier model earns its place only where explanation quality on hard concepts measurably improves learning, and even then the cheaper move is to shorten its sessions, not to run it for the full hour. Route by session length and by right-or-wrong outcomes, never to shave a bill that caching already made small.
FAQ
What does a 1:1 AI tutor cost per student-hour? In model fees, $0.0093 to $0.80 per student-hour cached, across deepseek-v4-flash through claude-opus-4.8, on a 40-turn hour whose context window grows to 30,600 tokens with 300 output tokens per turn. Uncached the same hour is $0.09 to $3.50. Prices verified 2026-07-30.
Why does a 40-turn hour bill 639,000 input tokens? Every turn re-sends the whole conversation so far, so you pay for the context at turn 1 plus turn 2 plus every turn through 40. That sum is 639,000 tokens, about 20x the 30,600-token final context. The growth is quadratic in turn count.
Why is caching decisive for a tutor? The conversation prefix grows only on the end, so 95.2% of input is re-sent history that a cache reads back at 10% of input price, or 2% on DeepSeek. Caching cuts the bill 74% to 90% and is a bigger lever than switching models.
Does prompt caching survive a student's think-time? The 5-minute cache does not if a pause exceeds the window; the next turn then re-writes the prefix. Anthropic's 1-hour cache survives at a 2x write premium, raising the cached hour about 14% but avoiding a full mid-session re-write. For slow tutoring, prefer the 1-hour cache.
Is a frontier model ever the cheap choice here? Only in short bursts. Ten turns of cached claude-opus-4.8 cost about the same as a full 40-turn hour of cached claude-haiku-4.5. Because cost is quadratic in turns, the lever is session length, so use the frontier model for a tight high-value stretch, not the whole hour.
Sources
- Anthropic pricing (claude-opus-4.8 $5/$25, claude-sonnet-4.6 $3/$15, claude-haiku-4.5 $1/$5, cache read 0.1x, 5-minute write 1.25x, 1-hour write 2x, 4.7+ tokenizer ~30% more tokens), captured 2026-07-30: https://platform.claude.com/docs/en/docs/about-claude/pricing
- OpenAI API pricing (gpt-5.4-mini $0.75/$4.50, cached input $0.075), captured 2026-07-30: https://developers.openai.com/api/docs/pricing
- Google Gemini API pricing (gemini-3.5-flash-lite $0.30/$2.50, cache hit $0.03, storage $1/M/hr), captured 2026-07-30: https://ai.google.dev/gemini-api/docs/pricing
- DeepSeek API pricing (deepseek-v4-flash $0.14 miss / $0.0028 hit / $0.28 out), captured 2026-07-30: https://api-docs.deepseek.com/quick_start/pricing
- Cost model script and per-student-hour arithmetic: from the assumptions table above.
Prices change. We re-verify every figure in this post monthly and stamp updates. Numbers here are current as of 2026-07-30.
The lesson from the model: a tutor's bill is set by the re-send, not the model. Forty turns bill 639,000 input tokens because every turn re-sends the whole dialogue, so cache the growing prefix and 95% of that input reads back at a tenth of price. Then, if you route at all, route on session length and on right-or-wrong outcomes, because cost is quadratic in turns. Vynaris is an OpenAI-compatible gateway that caches the growing conversation prefix, routes on real outcomes, and shows the per-student-hour cost so you watch the number that matters. One base URL swap. Get an API key at vynaris.com.