Metered usage and pay-as-you-go billing

About metered usage and pay-as-you-go billing

Red Hat Marketplace offers you the option to use a “pay-as-you-go” charge type for your product. Pay-as-you-go pricing is a consumption-based model (also known as metering or metered usage or usage based) used by software companies to charge customers based on how much a customer uses a product each month. It is essentially the same as utility companies that bill based on how much gas or electricity a customer consumes each month.

Red Hat Marketplace wants to make it easy for customer developers to try and deploy products for small pilot projects. Pay-as-you-go pricing gives developers the confidence to select your software during the pilot phase of a hybrid cloud project, which drives future spending growth as projects move to production. Pay-as-you-go pricing is one way to make products more attractive for initial pilot projects, which often turn into larger projects with more funding.

This does not have to be an either-or decision. You can have both a pay-as-you-go edition and a monthly or yearly subscription edition, each serving a different customer buying preference or customer role. Some large enterprise customers are now requiring pay-as-you-go options in order for a product to be considered for purchase.

Getting started

Here are the general steps for setting up your product for pay-as-you-go billing. This will require involvement from both your business and engineering teams. This document provides a general overview for both business and engineering roles.

  • Develop a strategy for pay-as-you-go billing. Identify the pay-as-you-go unit of measure you want to meter and bill for.
  • Add metering data collection and reporting to your listing to match your strategy and pay-as-you-go unit of measure.
  • Configure a new pay-as-you-go priced edition, providing the pay-as-you-go usage unit of measure selected and the billing rate information.
    Note: Pay-as-you-go billing to the customer is always monthly and in arrears.
  • Test your product.
  • Publish the changes to your product.

Developing a pay-as-you-go billing strategy

Whether you are a product or marketing manager, or an engineer, you should understand the overall process and the technologies involved. Red Hat Marketplace provides the key components to enable metering and pay-as-you-go billing for your product: a metering agent where a product will report usage information; the metering agent in turn will provide that data to a rating and billing engine which calculates how much to bill the customer. Pay-as-you-go can be used for both Operators and SaaS products. The diagram below shows a view of how metering and billing works for a pay-as-you-go edition:

Figure 1: Metering with an Operator on OpenShift Metering with an Operator on OpenShift

For operator based pay-as-you-go edition:

  1. Data is metered for partner operator
  2. Data is collected for Red Hat Marketplace operator
  3. Data is rated through Red Hat Marketplace billing
  4. Customer is invoiced with PDF invoice

Figure 2: Metering with a hosted SaaS service Metering with a hosted SaaS service

For SaaS based pay-as-you-go edition:

  1. Data is metered for partner application
  2. Data is collected for partner application
  3. Data is rated through Red Hat Marketplace billing
  4. Customer is invoiced with PDF invoice

Business strategy for pay-as-you-go billing

Here are some business strategies to guide pay-as-you-go billing:

  • Give developers easier access to get started with your software. For a pay-as-you-go starter edition you may not want to include an up-front charge to keep the cost of getting started low.
  • Expand your target market by providing more pricing flexibility for customers.
  • Achieve higher conversion rates from small pilot projects to larger production deployments.
  • Highlight a value proposition that is attractive to customers: pay only for what they use.
  • Provide customers better ability to scale their software needs using a pay-as-you-go model.
  • Use data about how your product is deployed and key usage points to drive your pricing assessment and unit of measure selection.

Unit of measure for your product

  • This option allows you the ability to tune the metering (and therefore the billing) very precisely for your product, but it will also take you more time and effort to implement.
  • A custom unit of measure will require your engineering team to integrate with Red Hat Marketplace metering agent. A technical review with your engineering team and Red Hat Marketplace engineering is available.

Example for developing a pay-as-you-go pricing strategy

A developer at an enterprise wants to use your product in a new pilot project developing a proof of concept (POC) but does not have a large budget to develop the POC.

  • Your current minimum price is $2,000 per month for running your product on a cluster with up to 12 nodes.
  • You decide to create a new pay-as-you-go edition and price it at $0.25 per node per hour.
  • The enterprise developer can now deploy your product to a cluster with three nodes and pays $0.75 per hour during the POC project.
  • The enterprise developer works on the POC project for 5 days and decides your product is a great fit for the project and recommends purchasing it. The cost of the POC is just $90, which is a much more affordable option for a POC than the standard $2,000 per month. An enterprise developer is more likely to select a product for a POC that is more affordable, than a product that is more expensive and would require a longer approval process.

The benefit of this model: if after several months, your product is deployed to 12 nodes the pay-as-you-go billing will be $2,160 per month, compared to $2,000 per month with the previous monthly subscription model. In addition, it is also easy for the customer to scale up for a period of time during peak events, consuming more of your product.

NOTE: Some customers may pay less with pay-as-you-go than with a subscription model, but you may attract more customers with pay-as-you-go.

NOTE: Red Hat Marketplace can help by reviewing your strategy, recommending best practices and provide a technical consultation with your engineering team. Contact your Red Hat Marketplace Onboarding Lead to get started.

Metering data collection and reporting

To report metered data, you will need to integrate Red Hat Marketplace operator. This will need engagement from your engineering team.

Make sure your operator is ready for metering by performing the following steps:

  • Is your Operator certified by the Red Hat Operator Certification process? Operator certification is a requirement for a product to be included in Red Hat Marketplace for any billing option.
  • If you are using a custom unit of measure, add a meter definition to your operator and your operator needs to expose a Prometheus endpoint to connect with Red Hat Marketplace metering agent.
  • If you are using a standard unit of measure, you will need to add a meter definition to your operator. See detailed instructions diagram below.

Metering Workflow

In the diagram, the workflow consists of:

  1. Marketplace Cloud APIs
  2. Marketplace Metering agent
  3. Metering definition
  4. Prometheus
  5. Prometheus HTTPS endpoint
  6. Application
  7. Operator

The process flows from your operator, the operator creates a metering definition for the Marketplace agent to find and watch. Next, the Marketplace metering agent updates a local Prometheus to monitor your application’s metered data. Finally, the billing data is shipped to the Marketplace Cloud for processing to the customer.

Configure a new pay-as-you-go priced edition

Prerequisites

Procedure

  1. Navigate to commerce details
  2. Create a “Group” name for your application. The Group name is used to track all the usage within an application.
  3. Use subscription service settings API (via webhook) to track the user behavior.
  4. Add a usage charge to a paid edition.
  5. Complete Usage charge type field descriptions. NOTE: The usage reporting id is comprised of three values - Domain name of the metered product, short name for product being metered, and name of metric that is being used to bill on.
  6. After completing the charge metric configuration, submit the edition for review by Red Hat Marketplace onboarding team.

Results

You have completed configuring your product for usage based pricing.

Test your product

You can deploy and test your pay-as-you-go priced edition on Red Hat Marketplace.

Procedure

  1. Register an OpenShift cluster with Red Hat Marketplace.

  2. Deploy your operator to the cluster. Red Hat Marketplace Operator will be installed on your cluster as part of the registration.

  3. Annotate your CSV with the meter definition and Red Hat Marketplace Operator will create the meter definition when it sees that annotation in your CSV. A status annotation will be added to your operator on status of the meter definition creation or a corresponding error message if appropriate. You can find these under the keys.

    marketplace.redhat.com/meterDefinitionStatus

    marketplace.redhat.com/meterDefinitionError

  4. After successful creation of the meter definition, you can find it on the OpenShift cluster, under administration Administration > Custom Resource Definitions > MeterDefinition > Instances

  5. Create an instance of your application from the operator and verify it’s working properly.

  6. Check the meter definition details and confirm it has found matches for the Prometheus query.

  7. Let the product run 1-2 days to see submission of the usage data to the marketplace.

  8. Verify the pending charges are accurate for your account.

Results

The charges for your metered edition should be verified and should meet your requirements.

Summary

To publish your product. publish your new or updated operator or image in Red Hat Partner Connect. Publish your product, including the new pay-as-you-go edition in Red Hat Marketplace by submitting the edition for review. Red Hat Marketplace Onboarding team will help publish your product on the Marketplace after review and approval.