AI spend in a practice rarely blows up because one prompt is expensive. It grows because the same large file is sent again and again, because the biggest model is used for tasks a smaller one handles, and because nobody measures cost per engagement. Three habits control most of it: reuse what has not changed, group work that is not urgent, and match the model to the task.
Prices and limits differ by provider and change often, so this post gives no figures. The method works whatever the rate card says.
How usage-based pricing works
Many AI tools sold to firms are a flat monthly subscription. If you use those through a chat window, cost control mostly means avoiding duplicate subscriptions, as covered in the AI subscription buying guide.
Direct access through an API, or a tool built on one, is usually billed by the amount of text read and written, counted in tokens. A token is a small chunk of text, roughly a short word or part of one. Input and output are generally priced separately, and output is often priced higher. Read the provider's page for current rates.
The practical point: long inputs cost more, and long inputs sent repeatedly cost much more.
Habit one: reuse what has not changed (prompt caching)
In a typical audit session you send the same material many times: the engagement instructions, the client's accounting policies, the trial balance, a long agreement. You then ask ten different questions about it.
Prompt caching is a feature several providers offer. The idea is that a long, unchanged opening part of the prompt is stored for a short time so that follow-up requests do not pay the full cost of processing it again. Exact rules, time limits and discounts differ by provider. Confirm them on the provider's documentation before depending on them.
To benefit, structure prompts so the stable part comes first and the changing question comes last:
- Firm instructions and output format
- Client policy notes and standing facts
- The document or data
- This turn's question
If you shuffle the order or insert a timestamp near the top, the reusable part changes and the saving disappears.
Habit two: group work that is not urgent (batching)
Some providers let you submit many requests together for later processing, often at a reduced rate and with a delay. Bulk jobs suit this: classify five thousand ledger narrations, extract fields from a month of invoices, tag a year of expense claims.
Interactive questions that a reviewer is waiting on do not suit it. Overnight jobs do. Check the provider's current terms for turnaround and any discount.
Habit three: match model size to the task
Model families usually come in tiers: a larger, slower, costlier model and smaller, faster, cheaper ones. Not every task needs the largest.
A rough sorting, to be confirmed by your own test:
| Task | Try first |
|---|---|
| Classify narrations into categories | Smaller model |
| Pull dates and amounts from invoices | Smaller model, then verify |
| Summarise a meeting note | Smaller model |
| Reason across contracts and accounting policy | Larger model |
| Draft a technical position paper | Larger model |
Then test. Run twenty real items through the smaller model and compare with the answers you already know. If accuracy is acceptable, use it and save the larger model for the hard ones. The method is in how to evaluate an LLM for audit work, and small language models for audit tasks discusses when small is enough.
Avoid the hidden multipliers
- Re-sending whole files. If the tool lets you keep a document in a project or session, use that instead of pasting it each time.
- Long chat histories. Each new message may carry the whole earlier conversation. Start a fresh session for a new question.
- Verbose outputs. Ask for a table or a short list. Output is costly and reading long output costs your staff time too.
- Retry loops. An automated agent that retries on failure can multiply calls. Set a cap.
- Reasoning modes. Some models offer extended thinking that uses more tokens. Switch it on for hard problems, not routine ones.
Measure cost per engagement
Cost control needs a number. Keep a simple sheet:
| Engagement | Month | Tool or API | Cost | Hours saved (estimate) |
|---|
At the end of a quarter, look for engagements where cost is high and hours saved are low. Those are the ones using the wrong model or the wrong workflow. The broader question of whether it pays is in the economics of AI in a CA practice.
Cheaper is not always cheaper
A low-cost model that misses a related-party clause costs more than a dear model that finds it. Rework, reviewer time and professional risk are the larger numbers. Never choose by price alone for tasks that feed a conclusion. Use cost control for the volume tasks where errors are easy to detect and the check is cheap.
Self-hosting an open-weight model changes the cost shape from per-use to fixed, with its own setup and security work. That trade is covered in hosting your own open-source LLM.
Data protection is part of cost
The cheapest route is not an option if it sends client data somewhere the engagement letter or the client has not accepted. Check data handling first, then optimise cost within the acceptable options.
Frequently Asked Questions
What is prompt caching in simple terms?
It lets a provider avoid reprocessing the long, unchanged start of your prompt on follow-up requests, which can lower cost and delay. Terms vary by provider.
Should a small firm worry about tokens?
Only if it uses an API or a metered tool. On a flat subscription, watch for duplicate seats and unused plans instead.
Is the smallest model good enough for audit?
For some narrow, checkable tasks, yes. Prove it on your own sample before relying on it.
Last reviewed: 17 October 2026. Facts checked. No provider pricing or documentation page was opened in this session, so no rate, discount, time limit or model tier name is quoted. Caching, batching and model tiers are described as general features that vary by provider. Confirm current terms on the provider's own pages.
Related Articles
Statutory facts on this page are checked against their sources, and the page says where it relied on secondary reporting. How we verify · Report an error