Skip to content
p0.
Metered AI creates real user anxiety: cost is coupled to every action, and tokens are an invisible, abstract unit. The calm pattern is cost transparency: a visible balance, a cost preview before each turn, an early running-low warning, and a graceful out that never walls someone mid-thought or loses their work. Hiding the meter makes it worse.
Abstract stream of luminous tokens flowing through an elegant meter
Agent UX/Token-cost anxiety

Designing for the anxiety of metered AI

Every turn costs money now, and users feel it. They hesitate before a long prompt the way they hesitate before a taxi meter. Cost transparency has quietly become a UX requirement, and almost nobody has designed it well.

See the live demo

For most of software history, using a feature was free at the point of use. You had paid for the licence or the subscription, and clicking a button cost nothing more. The meter, if there was one, ran in the background and someone else watched it.

Agents broke that. Tokens couple cost directly to action. Every message, every long document, every tool call spends something, and the user is the one watching the number. That is a genuinely new psychological condition, and it produces a measurable behaviour: people send shorter prompts, avoid ambitious requests, and abandon sessions, not because the product is bad, but because they are afraid of the meter.

The instinct is to hide the meter so people relax. It does the opposite. Uncertainty is the anxiety. The fix is honest information, paced well, with a soft landing, so the user always knows where they stand and never gets walled mid-thought.

Live demo

Spend a few turns, both ways

Press send a few times in each mode. One buries the cost and walls you at zero. The other keeps you informed and lands you softly.

Tokens: 4200

Sure, here is a draft of that proposal section...

A number you cannot read, no sense of what a turn costs, and a hard wall that drops mid-thought. Every send feels like a gamble. That is the anxiety.

What calm metering looks like

Six rules for showing cost without manufacturing dread.

1

Make the balance visible and legible

A bar beats a buried number. The user should know roughly how much runway they have without doing arithmetic or opening a billing page.

2

Preview the cost before they commit

A small estimate next to the send button (this turn is about 600 tokens) lets people decide with information, instead of bracing after the fact.

3

Warn early, while there is still room to act

Surface running low at roughly a quarter remaining, not at zero. A warning with no runway left is just an error message.

4

Never wall someone mid-thought

A hard stop in the middle of a task destroys both the work and the trust. Degrade gracefully: save state, offer a top-up, let them continue the moment they do.

5

Translate tokens into something human

Tokens are an abstraction. Where you can, map them to turns, messages, pages or pounds, the unit the user actually thinks in.

6

Make topping up frictionless and reversible

If the calm path is to top up, that path has to be one tap and obviously safe. Cost anxiety is half about money and half about losing control.

Frequently asked questions

Take it with you

Don’t just read this. Put it to work.

The whole series is distilled into one Markdown file: every pattern, the do and don’t rules, and how well each is evidenced. Download it into your project, or paste the link into any chat with your agent and tell it to improve your agent UX. It’s free, no sign-up, no attribution required.

Paste this into your agent

Use these Agent UX principles to review and improve our agent's interface: https://p0stman.com/agent-ux/agent-ux-principles.md

Part of the Agent UX series

Metered products that people trust enough to use

We build the metered try-register-pay funnel into our own agent ventures, balance UX and all. If you are shipping a token-based product and the meter is scaring people off, that is a problem we have solved before.

AGENT INTERFACE ACTIVE · MCP: p0stman.com/api/mcp · 5 TOOLS REGISTERED · [DISCOVERY] llms.txt · agents.md · context.md · sitemap.xml · robots.txt · TavilyBot ALLOWED · ClaudeBot ALLOWED · GPTBot ALLOWED · PerplexityBot ALLOWED · [COMPREHENSION] JSON-LD schema · /api/ai/context · /api/ai/services · /api/ai/portfolio · [ACTION] book_discovery_call · submit_inquiry · get_services · get_portfolio · search_content · [A2A] AgentCard: /.well-known/agent.json · Task endpoint: /api/agent · A2A JSON-RPC 2.0 · navigator.modelContext REGISTERED · WebMCP: 5 TOOLS · INDEXNOW: 145 URLs · Bing NOTIFIED · [MANAGED AGENTS] Lead Researcher · AgentReady Auditor · SEO Writer · Weekly Reporter · Claude Sonnet 4.6 · Cloud containers · Outcome-based grading · Multi-agent orchestration · AGENT INTERFACE ACTIVE · MCP: p0stman.com/api/mcp · 5 TOOLS REGISTERED · [DISCOVERY] llms.txt · agents.md · context.md · sitemap.xml · robots.txt · TavilyBot ALLOWED · ClaudeBot ALLOWED · GPTBot ALLOWED · PerplexityBot ALLOWED · [COMPREHENSION] JSON-LD schema · /api/ai/context · /api/ai/services · /api/ai/portfolio · [ACTION] book_discovery_call · submit_inquiry · get_services · get_portfolio · search_content · [A2A] AgentCard: /.well-known/agent.json · Task endpoint: /api/agent · A2A JSON-RPC 2.0 · navigator.modelContext REGISTERED · WebMCP: 5 TOOLS · INDEXNOW: 145 URLs · Bing NOTIFIED · [MANAGED AGENTS] Lead Researcher · AgentReady Auditor · SEO Writer · Weekly Reporter · Claude Sonnet 4.6 · Cloud containers · Outcome-based grading · Multi-agent orchestration ·