Credit-based pricing is increasingly popular among AI products. It helps mitigate high upfront costs and manage vendor and customer expenses. Credit systems help reduce transactions and associated fees for smaller accounts and support extensive trial use cases. However, implementing a good credit system brings considerable challenges for engineering organizations; let's discuss what needs to be covered.
Granting Credits
Credits can be allocated periodically, at the point of purchase, upon reaching a low balance threshold, or at the start of trial periods with various models in practice:
- Pre-paid billing, credits, and refills (e.g., OpenAI, CircleCI)
- Monthly usage quota and rate limits (e.g., V7 Go, Resend)
- Credit-based extended trials (e.g., Confluent, Kong)
We treat usage limits, quotas, and rate limits as credits in this context as the customer pays upfront for a specific amount of usage grants.
Time-based credit allocation
Credits typically become active on their creation date or have a future effective date and usually have a set expiration, such as the one-year limit seen with OpenAI credits. They may align with billing periods, allowing for adjustments across multiple cycles and enhancing flexibility in account management.
Recurring Grants
Credits, like a monthly usage limit and allowance, can be granted once at purchase time or renewed periodically for each billing cycle. A good credit system takes care of granting schedules for you.
Credit Rollover Policies
Policies may permit credits to be rolled over fully or partially between billing cycles. For example, we can model monthly usage limits with rollover grants. We can also enable top-up use cases and allow users to purchase additional credits, with the remaining amount rolled over between billing cycles.
Credit Balance
Credits are burned down by consumption. Every time your customer uses your product, their credit balance decreases until they eventually run out of credits.
Burn-down priorities
Customers can have multiple credit grants with different effective and expiration dates or priorities. Typically, higher-priority credits are used first, and in cases of equal priority, credits nearing expiration are utilized earlier. This prioritization can be influenced by the specific product or feature associated with the credits. For example, recurring credits are usually a higher priority than additional top-ups.
Real-time balances
To effectively control costs, it's critical to manage credit balances in real-time, ensuring that consumption is accurately tracked and managed to prevent overages and ensure customer satisfaction. However, keeping track of credit balances in real-time can be challenging in systems where you must meter large volumes of usage data.
Low-latency Enforcement
Real-time credit checks are essential to determine customer eligibility for further product usage, especially in online traffic scenarios. This requires robust, low-latency systems capable of quick response times across various global regions.
Insights into Credit Balances
Real-time notifications of credit balances help customers monitor their spending and prevent service disruptions. These insights also aid sales teams by identifying rapidly growing accounts for potential upselling opportunities.
Handling Negative Balances
Negative balances generally conflict with the nature of credit systems. However, short delays in credit tracking, especially in distributed systems, might lead to temporary overages, which some companies choose to overlook, considering their relative insignificance compared to the overall usage period. Strategies like automatic top-ups or pessimistic locking can prevent negative balances.
Accountability and Ledger
The complexity of managing and prioritizing credit issuance and usage requires accountability and transparency. High-quality credit systems offer a ledger feature that records transactions, providing visibility into the application of credits and usage over time, which is important for vendors and customers.
Summary
Implementing credit systems requires managing effective dates, following priorities and rollover policies, recurring schedules, and enabling real-time low-latency balance reads.
If you are interested in how we implemented usage-based credits in OpenMeter, check out our GitHub.