Usage ***** What is usage based pricing? ============================= This method of pricing is based on an individual unit of usage. Products that utilize usage based pricing are metered to determine the amount of consumption for a given product. The measurement used to calculate the consumption is known as a metric and is completely up to the practitioner. Choosing a metric that accurately models the product is essential for creating pricing that is accepted and understood. Regardless of the metric chosen, ample customer transparency is required pre and post sales. Customers have come to expect dynamic quoting, dashboards, ad hoc billing updates and more. While usage based pricing offers a lot more flexibility than fixed pricing it requires a significant amount of effort to deliver the corresponding transparency features. Still many companies have taken the plunge due to the positive response from the market. Flat pricing ============ The simplest form of usage based pricing is a flat price per unit of usage. The Wikipedia example utilizes this method for both of it's ``EVENT`` based products. The price curve demonstrates 100% correlation between quantity and the amount. This pricing approach is straightforward for customers and practitioners but offers less flexibility than other types of usage based schemes that are influenced by volume. .. csv-table:: List prices, Products, Pricebooks :file: /_static/ex_tables/ex_3_2.csv :class: bmodel-table :header-rows: 1 Pricing curve ~~~~~~~~~~~~~ When plotting the price curve for "Updates" product we see no change in price based on the quantity. On the other hand, the amount increases as the quantity moves from 0 to 5000. |image0| Block pricing ============= Block pricing charges a flat price per bucket of usage. The amount only changes when there is enough usage to fill a threshold. For example if each block was 1000 units of usage, and a customer only consumed 999 units this pricing methodology wouldn't recognize any amount having been consumed. Once this same customer hits 1000 units the price would be applied and usage would be affirmed. This type of usage based pricing could also be acheived through flat pricing. Essentially, a practioner could just divide the quantity by 1000, the block amount in this example, while rounding down to accomplish the same modeling. There are two different ways to model block pricing. The earlier explanation describes the process of rounding a bucket down, but we can also round a bucket up. Both types of pricing have different use cases and we will demonstrate both using the "Updates" product from our example. .. csv-table:: List prices, Products, Pricebooks :file: /_static/ex_tables/ex_3_3.csv :class: bmodel-table :header-rows: 1 Pricing curve (round down) ~~~~~~~~~~~~~ The price stays constant but we see step function growth for the amount as quantity increases. Only when a block threshold is crossed do we see an increase in the amount. |image1| Pricing curve (round up) ~~~~~~~~~~~~~ Alternatively a block can be rounded up to produce a different outcome. Rounding up produces a similar price curve and can be valuable depending on the objective since there will always be at least 1 block metered. This approach charges a customer upfront for usage and can model products that may have an upfront cost associated with them before any usage is metered. |image2| Tiered pricing ============== Tiering gives practitioners an ample amount of flexibility to change the price based on the quantity metered. As shown below the price can change as usage crosses the boundary for a tier (set in the ``pricing_metadata``). In this example the first 2000 units were priced at $0.10, the next 2000 units were priced at $0.07 and all units above 4000 are priced at $0.05. .. csv-table:: List prices, Products, Pricebooks :file: /_static/ex_tables/ex_3_4.csv :class: bmodel-table :header-rows: 1 Pricing curve ~~~~~~~~~~~~~ In this example, the price steps down at each usage threshold which creates a decreasing slope for the amount. This is a desired effect since this incentivizes a customer to use more to get a better discount which hopefully is a good deal for the business itself. |image3| Volume pricing ============== Volume pricing like tiered pricing provides flexibility based on the amount of usage. Although unlike tiering all usage has the final price applied to it, which is determined by the volume. So in the example below if we have a quantity of 4000 the price would be $0.033 for all units instead of just those after unit 4000. This type of pricing is less common since it creates scenarios where the total amount owed can decrease. .. csv-table:: List prices, Products, Pricebooks :file: /_static/ex_tables/ex_3_5.csv :class: bmodel-table :header-rows: 1 Pricing curve ~~~~~~~~~~~~~ Similar to pricing with tiers, the price steps down at each usage threshold. Unlike tiers, we see a jagged line that represents the amount. There are actually several points were the amount is actually less than a lower quantity. |image4| .. |image0| image:: /_static/ex_svg/ex_3_2.svg .. |image1| image:: /_static/ex_svg/ex_3_3_a.svg .. |image2| image:: /_static/ex_svg/ex_3_3_b.svg .. |image3| image:: /_static/ex_svg/ex_3_4.svg .. |image4| image:: /_static/ex_svg/ex_3_5.svg