100%.
Close
93%

The Challenge
Vapi.ai builds the infrastructure that lets companies deploy voice AI agents at scale.
Behind the product is a billing model of real complexity: dozens of LLM providers each with their own pricing, and an enterprise book where no two contracts share the same terms.
Ram A. is the Finance Controller at Vapi.ai. He was responsible for making that billing model work. For a period, it was not working.
Wrong rates were making it into customer invoices every month
Model pricing lived inside application code, distributed across dozens of services, with no central repository and no standardized update process.
With Vapi.ai launching new models multiple times a month and LLM providers frequently updating their rates, keeping every part of the codebase current was practically impossible for any team to sustain.
Different services were computing the same costs differently: some pulling from outdated rates, others calculating correctly but in complete isolation, with no mechanism to reconcile or validate across systems.
There was no audit trail and no way to determine which source was authoritative, meaning incorrect rates were making it into invoices with no visibility into where the discrepancy originated. Under ASC 606, a wrong rate in an invoice is a revenue recognition error, not just a billing mistake.
Revenue recognition was being delayed by weeks, every single month
Every enterprise contract carried its own structure: custom per-model pricing, usage commitments at different granularities, credit banks, entitlements, and overage conditions that no two customers shared.
Because no system could hold this level of contract complexity, billing became an entirely manual operation that had to be repeated from scratch at the end of every month.
The team pulled usage data, reviewed each contract individually, checked prior months to determine how much of a customer's committed pool had already been exhausted, then manually applied the correct pricing adjustments. A process that compounded in effort as the customer base grew.
Invoices that should have been sent on the first of the month were consistently going out several days late, every single month. DSO does not start until the invoice lands. Those days of delay were adding to the payment cycle before the customer even saw the bill.
No one in the company knew which usage number to trust
Usage data was spread across at least three separate systems: PostHog, ClickHouse tables, and internal spreadsheets maintained by different teams with no shared ownership or reconciliation process.
No single source was reliable or complete across all billing periods, which meant the team had to spend time reconciling between systems before billing work could even begin.
Different months had different sources: the number that was correct for January lived in one system, February in another, March in a third. Finance, billing, and engineering were routinely working from conflicting figures.
This fragmentation made it impossible to build any repeatable billing process. Without a trustworthy data foundation, every month started from zero.
Customers had no visibility into what they were being charged
Enterprise customers had no self-serve access to their usage data, no way to track consumption against their committed pools, and no way to understand why an invoice had come in at a particular amount.
Every billing question required raising a support request and waiting for someone internally to pull the data manually, turning routine customer inquiries into an operational burden on both sides.
For the largest accounts, Vapi had built one-off internal dashboards and shared them on request. This was not a process that could scale and left the majority of customers with no visibility at all.
As the customer base grew, so did the volume of billing-related support requests, consuming team bandwidth that was already stretched thin by the manual billing process itself.

"Honestly the customer dashboard was the one thing our team felt the most. We stopped getting those billing questions that used to pile up every month."
Ram A, Head of Finance















