What text costs
Text is the cheapest thing Madoo makes. The four nodes that assemble it — Template, Format, Join, Replace — cost nothing. A model costs a few hundredths of a credit for a paragraph; what changes the bill is how much the model reads — a long document, a video — and how much it thinks before it writes.
How a model step is priced
Section titled “How a model step is priced”A text step is charged for its tokens at the provider’s real price, converted to credits (1 credit = 0.016 USD), to the thousandth of a credit:
- tokens read — the prompt, the system prompt, and whatever goes with them: pictures, a document, a video;
- tokens written — the answer, and the reasoning a model does before answering, which is billed as writing;
- a part of the input the provider has cached from a previous call costs a tenth of the normal input price, or less.
A step that fails is charged only what the provider billed for it, never a flat price: a provider error usually costs nothing, while a cut answer or an answer that is not the JSON asked for costs the tokens the model read and wrote. A step that is tried again pays each attempt the same way.
| Model | Read, per 1,000 tokens | Written, per 1,000 tokens |
|---|---|---|
| Gemini 2.5 Flash Lite | 0.0063 | 0.025 |
| GPT-6 Luna (the default) | 0.00625 | 0.031 |
| Claude Haiku 5.5 | 0.00625 | 0.031 |
| GPT-6 Luna Decisions (Decide with a Model) | 0.00625 | nothing written |
| GPT-5.6 Luna | 0.0125 | 0.075 |
| GPT-5.4 Nano | 0.0125 | 0.078 |
| Gemini 2.5 Flash | 0.0188 | 0.156 |
| Gemini 3.5 Flash-Lite | 0.0188 | 0.156 |
| Gemini 3 Flash | 0.031 | 0.19 |
| Gemini 3.8 Flash, 3.6 Flash | 0.047 | 0.23 |
| GPT-5.4 Mini | 0.047 | 0.28 |
| Claude Haiku 4.5 | 0.063 | 0.31 |
| Gemini 2.5 Pro | 0.078 | 0.63 |
| Claude Sonnet 5.5 | 0.125 | 0.625 |
| GPT-5.6 Terra | 0.125 | 0.75 |
| Claude Sonnet 4.6 | 0.19 | 0.94 |
| GPT-6.1 Sol | 0.125 | 0.625 |
| GPT-5.6 Sol | 0.25 | 1.25 |
| Claude Opus 5.5 | 0.25 | 1.25 |
| Claude Opus 5 | 0.31 | 1.56 |
Some models charge more for a long prompt, on the whole step and in the estimate too: Claude Haiku 5.5 five times its prices once the prompt passes 100,000 tokens, the GPT-6 and GPT-5.6 models twice theirs past 272,000.
Gemini 3.8 Flash and 3.6 Flash keep these prices until 31 December 2026; from 1 January 2027 Google doubles them, to 0.094 and 0.47, and Madoo charges the new price from that day.
A thousand tokens are about 750 English words. Writing costs about six times reading: a model that reads a long brief and writes a short answer is cheap; one that reasons at length is not.
What the labs of this section cost
Section titled “What the labs of this section cost”| Lab | What ran | Credits |
|---|---|---|
| Text without a model | a booking confirmation, 29 steps | 0 |
| Writing with a model | a 60-word recommendation, four models | 0.010 – 0.634 per step |
| Structured answers | an email sorted into JSON, checked and read | 0.02 |
| Reading pictures | a classifier, an analysis and a shop listing for one photo | 0.084 |
| Reading video and documents | a one-page quote / a six-minute video | 0.046 / 1.88 |
| Languages | a notice in three languages, one call | 0.04 |
| Prompts for other AI steps | a prompt written by a model / the picture it made | 0.017 / 5 |
A video is the exception: it is read as images and sound, about 90 tokens per second with Gemini 3 models, so a minute of video read by Gemini 3.8 Flash costs about 0.31 credits — thirty paragraphs written by Luna. (Gemini 2.5 Flash reads about 300 tokens per second: 0.37 credits a minute.)
The estimate and the charge
Section titled “The estimate and the charge”Before a run, Madoo estimates each AI step and holds the estimate plus about 10% on the workspace’s credits; when the step ends, it charges the tokens actually used and releases the rest. For a text step the estimate is built like this:
- read: the length of the prompt (about four characters per token), or 1,000 tokens when the prompt arrives from another step and is not known yet; documents add an estimate from their size;
- written: Max Tokens when it is set, otherwise 500;
- reasoning: a ceiling for the model’s reasoning effort, not a prediction.
So the estimate of a text step is meant to be a ceiling, and the final charge is usually much lower. It can also be higher: the estimate does not yet count the length of a video, and a Video Analysis step costs what its minutes cost. The final charge follows what the step actually used, and can differ from the estimate shown before the run — by a lot, in both directions.
| Step of the cost lab | Estimate | Charged |
|---|---|---|
Luna, reasoning none |
0.132 | 0.010 |
Luna, reasoning low |
0.196 | 0.010 |
Luna, reasoning medium (default) |
0.388 | 0.012 |
Luna, reasoning high |
0.644 | 0.016 |
| Gemini 3.8 Flash | 2.905 | 0.369 |
| Video Analysis, six minutes (another lab) | 2.085 | 1.883 |
Two consequences when planning:
- A high Max Tokens raises the estimate and the hold, not the charge. In the cost lab Max Tokens was 4,000, so the estimate assumed 4,000 tokens written; the steps wrote 166 to 1,526. On a workspace with few credits left, a high Max Tokens on many steps can hold more than the run will spend.
- Budget video by the minute, not by the estimate: about 0.31 credits per minute with Gemini 3.8 Flash, and cut the video first when only part of it matters. The six-minute video above came close to its estimate by chance — the estimate is the model’s reasoning ceiling, not the video’s length: a thirty-minute video gets the same estimate and costs about 9 credits.
Keeping text cheap
Section titled “Keeping text cheap”- Assemble what can be assembled. Every sentence written by a template is one a model does not write.
- Start from the default model, Luna; move to a larger one only for the steps that need it, after comparing.
- Set the reasoning to what the task needs. For a short summary, more reasoning cost more and did not write better:
in the lab
nonekept every fact as well ashigh, which cost 60% more and took three times as long. For a simple text from clear notes,noneorlowis enough. - Watch models that reason a lot by default. Gemini 3.8 Flash reasoned 1,380 tokens to write 146, and cost more
than twenty times Luna for the same summary; for a short text, set its Reasoning Effort to
low. - Ask for several things in one call when they come from the same facts: three languages in one JSON answer, the copy and the image prompt together.
- Keep the answer short. Writing costs six times reading; ask for the length you need — and check it with a schema rather than with Max Tokens, which cuts the answer and fails the step.
- Read only what is needed. Trim a video, send the pages of a document that matter, resize pictures that do not need full resolution.
Try it: five ways to write the same summary
Section titled “Try it: five ways to write the same summary”The lab gives the same returns policy of a cookware shop — about 180 words — to five steps that summarise it in
three bullet points: Luna with reasoning none, low, medium and high, and Gemini 3.8 Flash.
| Step | Tokens read | Written (of which reasoning) | Credits | Seconds |
|---|---|---|---|---|
Luna, none |
240 | 166 | 0.010 | 2.3 |
Luna, low |
240 | 182 (24) | 0.010 | 2.5 |
Luna, medium |
240 | 329 (156) | 0.012 | 4.3 |
Luna, high |
240 | 464 (301) | 0.016 | 6.5 |
| Gemini 3.8 Flash | 232 | 146 + 1,380 reasoning | 0.369 | 6.3 |
All five summaries are usable, and more reasoning did not write better. The four Luna summaries kept every rule of the policy, the lifetime guarantee on cast-iron pans included; Gemini 3.8 Flash left out the guarantee and the gift cards and added bold headings the brief did not ask for. The whole run costs about 0.4 credits; the estimate before it was 4.3.
node madoo-install-example.mjs lab-text-costs --api <your Madoo API URL> --key <key.json> --run