Over the years, not a single service has needed to be rolled back from being overpriced.

It is no accident.

Revenue growth and product adoption are delivered by usage-based pricing. A usage-based pricing model enabled by best practices and frameworks can be adopted by any company that operates in the cloud.

As a general manager at Amazon Web Services, I oversaw Amazon Cloud Search and some of the attached services as they scaled to over a billion dollars in revenue on the back of a usage based pricing model. The same model contributed to Amazon Open Search's success.

The only model that makes sense in the cloud is the usage based model. Pricing needs to be just as flexible as the underlying infrastructure because of the elasticity of it. A usage-based pricing model can be used at your business.

The single most important reason metering exists as its own artifact is because of what it is specifically designed to do — track usage.

Step 1: Implement usage metering

A lot of companies try to backpedal into measuring usage after starting with a pricing model.

This is not the way to go. All of your technology artifacts need to be metered. If you build a startup from the ground up, metering at the beginning will give you a huge advantage.

Knowing who is using what, when, where, and how much will make determining pricing much simpler.

Seek a purpose-built metering service

Don't fall into the trap of metering only the items that are in the pricing plans. It's time to measure your technology stack. You shouldn't back into metering from pricing and billing until you've thought about metering first.

This is a good way to think about it.

If you know you want to charge for the calls, you should start with a tiered pricing model for the calls. You will arrive at the conclusion that you need to meter the number of calls when you work your way back from this.

The metering forward approach is different to this one. One of the main features of how your customers engage with your product is the usage instrument. Then, you ask yourself, what is the best way to use an application program interface?