When you build a flow with the Flow Builder on Watchflows AI, you spend Sparks. Ask for a change, you spend a few more. Fair enough. The problem was what you were spending them on.
Before the Builder reads your message, it reads a long instruction sheet: every node in the app, how to wire them, how to answer. About 44,000 tokens. It is the same sheet every time. And until this week the model read it from scratch on every single turn, and you paid full price for it every single turn.
Now it reads the sheet once, and the next turns reuse that work. Nothing changed in how you use the Builder. It just costs less.
The numbers
We measured it on the real Builder, on Watchflows AI, three sessions of two turns each, same prompts every time.
| before | after | |
|---|---|---|
| First turn | $0.092 | $0.113 |
| Every turn after it | $0.091 | $0.007 |
| Six turns across three sessions | $0.55 | $0.15 |
Two things worth knowing.
A turn that reuses the sheet costs about 7% of one that does not. The first turn is the only one that pays, and it pays about 25% more than before. From the second turn on you are ahead.
It survives quitting the app. The stored sheet lasts five minutes past your last turn, and every turn resets the clock. Come back within five minutes and the first turn of your new session is cheap too.
One of us spent $4.26 on 45 Builder turns the day before this went in. At the new rates the same day is about $1.20.
How it works
The sheet is still sent on every turn. What changes is the work. A model provider can remember the work of reading a prompt, and if the start of your next prompt is identical to the start of the last one, it picks up from there instead of reading it again. Anthropic calls it prompt caching. You pay a little extra the first time so the work is stored, then a tenth of the price on every reuse.
The Builder's instruction sheet never changes, so it is the perfect thing to store. Your message and your canvas change every turn, and those come after the sheet, so they are read fresh.
Over a day
- First turn on a new flow: the sheet is stored. About $0.11.
- Every turn after it: about $0.007.
- Quit Watchflows and come back within five minutes of your last turn: still $0.007. The stored work lives at the provider, not in the app.
- Come back twenty minutes later: the first turn stores the sheet again, $0.11, and the rest are cheap.
Every turn resets the five-minute clock. An app update that changes the sheet, or switching the Builder to a different model, starts over the same way.
Who gets it
- Watchflows AI, with any model whose provider caches. Claude, the default, is where the numbers above come from. Gemini 2.5 Flash, measured the same way, served 28,813 of 28,853 tokens from cache on its second turn: $0.0038 against $0.0092 at full price. GPT, DeepSeek and Grok models cache on their own and the saving shows up in your Sparks the same way. Many open models have no cache at all, and for those nothing changes.
- Your own API key for Anthropic, OpenAI or Google, or any of those models through OpenRouter.
- The app now shows how many of a call's tokens were served from cache, whichever provider it was.
What we found getting there
Caching only works when the start of a prompt is identical, byte for byte, to the start of the last one. One character off and the provider reads the whole thing again at full price. It took four tries to get the numbers above. Each miss was something in our prompt that changed when we thought it did not.
- The provider decides where the reusable part ends, and by default it ran right through to your message. Your message is different every turn, so nothing ever matched. We now mark the end of the instruction sheet ourselves.
- The list of your other flows was written into the middle of the sheet. Create or rename a flow and the sheet changed, so the cache was thrown away. That list now comes after the sheet, with your message.
- Quit and reopen the app, and the first turn still paid full price. A byte-for-byte comparison of two launches found one example flow in the sheet whose wires came out in a different order each time. The order is fixed now.
- OpenRouter spreads requests across several servers, and the cache lives on the one that served you. The app now sends a session id so your turns land on the same server.
On Watchflows AI and OpenRouter, the cost you see in the app is now the provider's own figure, not our estimate. With your own Anthropic, OpenAI or Google key it is still our estimate, now priced with the cache discount applied. Either way, the run cost breakdown shows how many tokens were served from cache.
Does it change what the Builder builds?
No. The model sees the same instructions in the same order, apart from your flow list moving to the end. The live Builder checks we run before every release ran on this build and passed. This is a cost change, not a behaviour change.