Custom Unit (Like Snowflake)
Last updated
Last updated
The custom currency unit is a popular way of pricing strategy. It abstracts away the complex product metrics and makes the billing protocol between businesses and customers much easier to communicate. Additionally, it also allows the business to tweak the internal implementation without necessarily impacting the customer experience. Confluent ksqlDB is a popular product that adopts a custom currency unit called Confluent Streaming Unit (CSU). Its pricing can be found on this page. The core of this pricing plan is a custom currency in the product that allows customers to consume. The billing schema behind this pricing strategy is a custom product dimension, in the form of currency, that can be mapped from how products are used and link the customer payment to the product dimension on a pricing plan.
The first step to implementing such a pricing schema is to define the currency. Paigo's dimension system is the best fit for this purpose as it combines flexibility with all built-in billing infrastructure. See below for an example of defining currency as a dimension.
Configuration Property | Value |
---|---|
Dimension Name | Confluent Streaming Unit (CSU) |
Usage Measurement | API-based Measurement |
Consumption Unit | Count-based / Custom Unit |
Consumption Price | $0.23 |
Usage Increment | 1 |
Rounding | Ceiling |
Aggregate Interval | Hour |
Aggregate Method | Maximum |
A few notes about the above configuration:
Dimension Name is the billing unit that appeared on customer invoices or charges.
Usage Increment, Rounding, Aggregate Interval, and Aggregate Method may be different values based on the application logic of custom currency. For all ways to leverage these configurations, see for more details.
See the screenshot below for a dashboard view.
With the currency defined, the next step is to wrap it with an offering that customers can enroll in. See below for an example offering configuration.
Configuration Property | Value |
---|---|
Offering Name | ksqlDB Pricing |
Offering Type | Usage-based |
Usage Dimension | Confluent Streaming Unit (CSU) |
See the screenshot below for a dashboard view.
The very last step is to enroll a customer in this offering.
Another way to set up currency is that customers' accounts will be refilled with a certain amount of currency units per billing cycle, and they pay a fixed amount on a subscription. The billing schema behind this pricing strategy is a fixed subscription with usage entitlement implemented by Paigo dimension. See below for an example of setting up usage entitlement on a dimension to implement currency refill.
Configuration Property | Value |
---|---|
Dimension Name | Application Token |
Usage Measurement | API-based |
Consumption Unit | Count-based / Custom Unit |
Usage Entitlement | True |
Entitlement Limit | 1000 |
Consumption Price | $0.05 |
Usage Increment | 1 |
Rounding | Ceiling |
Aggregate Interval | Hour |
Aggregate Method | Maximum |
A few notes about the above configuration:
Dimension Name is the billing unit that appeared on customer invoices or charges.
Entitlement Limit is the automatic refill amount at the beginning of every billing cycle
Allow Overage is optional. When turned on, customers are allowed to use more than refilled currency and pay for the additional.
Consumption Price is optional. When Allow Overage is turned on, this value is used to calculate bills for the overage currency used.
See the screenshot below for a dashboard view.
This dimension defined as custom currency unit can be used in an offering as described in the above example.
Given that the custom credit currency is defined as a usage dimension, any usage data collection method can be used to report consumption or update balances. See Usage Metering for more details.
The easiest way to do so is by API-based usage reporting method. See API-based Method for full document.
Usage Increment, Rounding, Aggregate Interval, and Aggregate Method may be different values based on the application logic of custom currency. For all ways to leverage these configurations, see for more details.
The currency balance can also be manually updated in dashboard. See for an example.