- Create customer contracts
- Cut off access to features when the customer runs out of credits
- Set up your end-user billing experience
Use case
This guide demonstrates a hybrid business model using SeatsCo, a fictional company with an existing seats-based model. In this example, you’re introducing SeatsCo’s first AI features, and you want to add a usage-based element to your AI products to protect margins and capture upside from power users. Here’s how the new Team plan pricing model works:- The customer pays $10/month (or $100/year) per seat, and each seat includes 100 AI credits per month for AI products.
- The AI credits are pooled and available to anyone on the team. Each month’s AI credits expire at the end of the month—they are use it or lose it.
- The AI credits apply to three AI products: AI Assistant, AI Preview, and AI Summary.
- Once the AI credits run out, the customer can no longer use AI functionality on the SeatsCo platform.
- The customer can choose to wait until the next month for their AI credits to reset, or they can purchase a top-up pack of credits. Top-up packs have a year-long expiry and cost $80 for 1,000 credits.
INFOAnother common pricing model is seat-scoped credits, where each seat receives credits only they can use. Contact your Metronome representative to walk through modeling this use case in Metronome.
Metronome building blocks
In Metronome, the rate card is your centralized price book. This is where you encode pricing for all products, including subscriptions and usage-based products. Start by setting up these core Metronome objects: a subscription product, billable metrics, usage products, and a rate card.
Create subscription products
Create a subscription product called Team Plan. This API call shows how to create a subscription product with the /v1/contract-pricing/products/create endpoint:Create usage products
Create billable metrics to track the usage of the AI Assistant, AI Preview, and AI Summary. Then, create usage products referencing those billable metrics. This API call shows how to create a usage product with the /v1/contract-pricing/products/create endpoint:Create a rate card with subscription and usage products
After creating your products, create a rate card. When creating the rate card, define the conversion rate between the custom pricing unit AI credits and USD. This API call shows how to create a rate card with a credit pricing conversion using the /v1/contract-pricing/rate-cards/create endpoint:Implement a hybrid model for a customer
A customer’s contract encodes their specific agreement with SeatsCo. To model hybrid pricing models where a seat comes with a given amount of credits, Metronome can link recurring credits and commits to a subscription object. When you increment or decrement the subscription’s quantity, credits are automatically provisioned and tracked based on proration behaviors that you set.Create a subscription and linked recurring credit
Create a customer contract referencing your rate card. In this example, the customer signed up for the Team plan with an annual payment and an initial quantity of 4 seats. For each seat, the customer receives 100 AI credits in a shared pool monthly. This API call shows how to create the described contract using the /contracts/create endpoint. Thesubscription_config
settings in this example indicate that if the customer adds a seat mid-month, the amount of AI credits granted for that seat get prorated.
Increase seats and automatically provision credits
When the customer signs up for another seat, edit the contract to increment the quantity. You don’t need to touch the credits—Metronome automatically handles their provisioning and proration. This API call shows how to increment the subscription seat quantity using the editContract endpoint:Alert on AI credit balance
You can set alerts on credit balance to receive webhooks when the customer is almost out of AI credits and when they’ve fully depleted their AI credits. Upon receiving these webhooks, you can gate the customer’s access to using any more AI credits until they purchase a top-up credit pack, or the month resets. This API call shows how to create an alert when the customer has 10 AI credits remaining using the /alerts/create endpoint.Enable purchase of top-up credits
If a customer purchases a top-up credit pack, edit their contract to add the purchased credits. To ensure that the monthly included AI credits are always consumed first, set the priority of the purchased credits to a larger number priority than the priority of the included AI credits. You can choose to gate these credits on payment in Stripe or any other billing provider. If you gate the payment, the credits only release once they’re paid for, ensuring you’re protected against fraud. In this example, the customer purchased a pack of top-up credits at the discounted rate of $80 for 1,000 AI credits. These credits don’t expire until a full year after their purchase, unlike the monthly included credits.Optimize your customer’s experience
Use Metronome to offer your customers robust billing experiences.Create the customer billing experience
With SeatsCo’s new usage-based pricing component, it’s important to provide a more robust customer billing experience, so customers have real-time visibility into their remaining balance and can set cost controls on a per-seat basis.Get the balance of the credit
Use the listCustomerBalances endpoint to show the current balance in AI credits, inclusive of usage by all seats.Set cost controls per seat
The administrator of a team may want to cap the number of AI credits an individual user can spend. To do this, pass in theuser_id
performing an action in your event data, and set that user_id
as a group key on the relevant billable metrics.
Then, create a spend alert for a specific user_id
. You can cut the user off from spending more AI credits, notify their administrator, or notify them.
For example, this example spend alert sends a webhook notification when user_id = user_1234
spends more than 1,000 AI credits in the billing period.