Meter AI by user, not by account - your margin depends on it
A few users will cost you 100x what your median user costs. If you only meter at the account level, you will not see them coming until your gross margin is gone.
The power law that breaks flat pricing
Across the AI products we have shipped, end-user consumption never looks normally distributed. It looks like a power law. The 90th percentile user uses 10x what the median user uses. The 99th percentile user uses 50-200x. If you charge $20/month and your provider cost averages $4/user/month, you have $16 of gross margin. The 99th percentile user costs you $400 of provider spend on a $20 plan. One in a hundred customers costs you a hundred customers worth of margin.
Account-level metering hides this
If you only track total AI spend at the workspace level, you cannot tell whether the spike came from one runaway user or a hundred normal users. By the time it shows up in your billing dashboard, the damage is done. User-level metering surfaces the problem in real time - you can see exactly which user blew the budget, intervene, and either rate-limit them or move them to a higher plan.
User-level metering also unlocks better pricing
Once you have per-user data, you can ship hybrid pricing - "$20/mo includes 100 renders, $0.30 each after" - that captures revenue from power users and stays cheap for everyone else. You can ship freemium with hard caps that actually hold. You can run usage-based experiments without months of data engineering.
It is not optional
For consumer AI products, per-user metering is the difference between a viable business and one that bleeds margin until the next funding round. We built Vevee specifically because every AI team we worked with had built (or was about to build) the same per-user metering layer in-house, and most got it wrong on the concurrency story.
Keep reading
The race condition in "if (usage < limit)" that is costing your AI app money
A user at nine of ten images opens six tabs and clicks generate in all of them. Every tab passes your limit check, every tab gets an image, and you pay for all six. The bug is one read-then-write - and your unit tests will never catch it.
MeteringHow to build a credits system for your AI app (ledger design, rollover, refunds)
A user emails: "I had 40 credits this morning and now I have 12, and I only made one image." If your balance is a column you mutated, you cannot answer that email. Here is the ledger design that can.