Sakshi Khilari
Enterprise AI · Icertis

Designing for usage-based AI pricing

Five weeks getting a product ready for a new way of charging for it.

Icertis was about to start charging for AI by the amount used, and wanted the software ready before that happened.

Their current screens answered the questions a flat rate asks. Under the new model, people would be asking different ones.

01The problem

So what was actually wrong?

Moving from a flat rate to usage-based pricing sounds fairer, and it is. It also means the bill is different every month, which changes what three different groups need to be able to see.

For the business

Revenue stops being a subscription line and becomes a variable one, swinging with how much customers happen to use. Forecasting and cash flow get much harder to plan against.

For the customer

Invoices can arrive far bigger than expected. Finance teams either over-buy credits and waste budget, or under-buy and get cut off partway through work.

For everyone

Nobody on either side of this contract had worked this way before. Under a flat rate you never needed a mental model for consumption, so nobody had built one.

All three come down to the same thing.

A price that holds still and a price that moves are not the same product to the people paying for it.

One asks whether you are getting value from something you already bought. The other asks whether money is leaking right now.

02Where I started

There was already a tool. Was it working?

My instinct was to look at the tool, list what was wrong with it, and design something better.

Then I realized it had never been tested against what the new model would ask of it. It worked well for the old one, and they wanted to know if it could work for this one as well.

So I ran it as a study before designing anything. Two tasks, straight from what the team does every week, with .

Task one Can you find X usage for company Y between date A and date B?
Task two Can you find X usage for company Y's use of product Z between date A and date B?

Four of the nine gave up before finding an answer.

03Why

Why was it so hard?

Apart from the layout, there were two functional reasons.

The first is that it was built for the pricing model they were leaving, not the one they were moving to.

Before · built for a flat rate

Answers: how many seats are we paying for, and when does the contract renew?

Account overviewAcme Corp · Enterprise plan
Seats in use240 / 30080% utilized
Contract47 daysuntil renewal
Monthly fee$10,000fixed
Seats active, last twelve months
60 seats unassigned. Reallocate to improve adoption.
After · what usage needs instead

Answers: what should we stop doing today, before it costs us another $4,000?

ConsumptionAcme Corp · usage-based
This cycle$38,4003.2x a typical week
Burn rate$1,830 / daybudget gone in 6 days
Idle and running4still drawing credits
Spend per day, this cycle
Spike on the 14th: a batch job left running overnight drew 4,200 credits.
⚠ Illustrative examples only. Real screens are under NDA.

An empty seat costs you nothing extra. A job left running keeps charging you by the hour.

The second reason is that it was built for one reader, and three groups needed it in different ways.

One account, one month

Acme Corp · March · 11,400 sessions · $386K metered

Internal $4.28M metered across every account, up 18.4%

Sorted by which accounts are behaving oddly, not which ones are biggest. A big number tells you nothing on its own. You need to reach the session behind it.

Administrator 72% of entitlement drawn, six days of headroom

The same spend expressed against what was bought. A percentage is actionable in a way a dollar figure is not, because it implies a date.

End user 1,240 credits, about what this run will draw

No dashboard, just one estimate of what this job will cost, shown before they run it. Afterwards there is nothing left to decide.

⚠ Illustrative only.

One dashboard with filters doesn't fix this. Each group needs a different thing to be the biggest thing on screen.

04What I made

So I made three of them.

I can't show the screens, but I can tell you what each side needed to stop being afraid of.

For the people paying (admins and end users)

Customers weren't afraid of the price. They were afraid of the surprise. So most of the work was about letting them see the number coming.

  1. A soft landing. Three months where they saw what the new bill would have been while still paying the old rate, so they could learn what their usage costs before it cost them anything.
  2. A ceiling they set. Throttle or stop at a number they chose, so they know the worst case before it happens.
  3. A warning while it still helps. An alert when spend runs well above their own normal, while there's still time to do something about it.
  4. Words that explain the model. A lot of this was UX copy, to move people onto the newer pricing model without bombarding them with everything at once.
For the people billing

Internally the ask was the opposite: a space where every number on screen could be explained. I did that by cutting the data three ways.

  1. By customer. Is this account accelerating past what they committed to, or has it stopped? One tells you about growth and the other about churn.
  2. By product. Which parts people actually consume, and whether a feature earns more than it costs to run.
  3. By time. What the month looks like before the month is over, and where the peaks are.

Any two of them can be held still while the third moves. Fix the company and the month, and you see which product drove the bill. Fix the product and let time run, and you see whether a spike is a habit or a one-off. Every one of those used to be a data request and a few days of waiting. Now it is a few clicks.

Company
Product
Time
⚠ Illustrative only.

Each group got one view built around their question, instead of one dashboard trying to cover all three.

05What changed

Did it help?

I ran the same nine people through the same two tasks again.

The tool they had
5 of 9 found both answers

5 min 36 on average

What I designed
9 of 9 found both answers

1 min 50 on average

Same nine people, same two tasks, both tools

The time saving matters less than the finishing. Slow is annoying. Giving up means someone else has to find the number instead, usually by asking a colleague to pull it for them.

What happened after I left is confidential. What I can say is that the questions people asked got better.

BeforeCan someone pull the usage for this account?
AfterWhy did this account spike on the 14th?
06Reflection

Three things I took from five weeks.

  1. I measured the old tool instead of critiquing it.

    I nearly skipped this. Listing problems with the existing tool would have taken an afternoon and I would have been mostly right. Measuring it took a week and gave me a number nobody could argue with, which is why the redesign got built instead of debated. I ask what the current thing scores now before I argue for a new one.

  2. I looked upstream of the screen for the cause.

    The tool was answering a flat-rate question in a usage-based world. I only got there by asking what the business had changed, which I had not thought of as a design question before this.

  3. I let engineering change what I drew.

    Meeting them every two weeks meant I learned early what the data could and could not do. A lot of ideas died in those rooms. The ones that survived were worth prototyping, and I would rather lose an idea in week two than in week five.

Nine colleagues, two tasks, and four of them gave up on a tool they used every day.

Three prototypes later all nine finished, in a third of the time, and the question in the room changed from asking for the number to asking about it.

I couldn't have done this without the help of my colleagues and seniors at Icertis. My manager guided me throughout the internship, a design senior showed me how design actually gets made inside a company this size, and the engineering team were patient enough to explain the data model and answer my questions.

Next project

Making invisible work visible

The planning behind every household chore has no name, so couples cannot discuss it or divide it. Five design guidelines, from three studies with nine couples.

or view other case studies