In the past, the software industry relied on the simple one-off sale of software. This had specific drawbacks for both the software developer and the user buying it. The seller had no dependable income beyond the incidental sales, and the user had to fund a major upfront investment. Software developers could create more reliable revenue streams with maintenance and support agreements, but would then have to offer substantial discounts to counter the impact of high original purchase prices – and discounts are not the most popular approach for the people forced to offer them.
Pay-Per-Use for Machines
This business model is very similar for machine makers. Again, the upfront costs are usually very high. Maintenance agreements or service fees are an appealing after-sales revenue stream that helps pay for new product developments. On top of software, the sale of spare parts and consumables is another source of income, be it the cutting of the basic material used for dental implants, for example, or more straightforward printer ink, toner, or 3D-printing granulate. Frequently, the makers of the machines also sell these consumables, which creates interesting avenues for other business models – for instance, giving the users a pay-per-use option that lets them pay only for what they are actually using. In the short term, this means lower investments and lower risks from purchasing the machines. In the long run, the machine maker has a reliable income stream, at least if the user remains a satisfied client.
Pay-Per-Use for Software Only
One might think that pay-per-use is only an option for machines or consumables. This could not be further from the truth, as the concept also works for software-only solutions. Imagine software that calibrates pumps. Your business model might then be based on having the user pay for each calibration. In practice, this would mean creating software licenses, like CodeMeter does. You charge a fee per license, which CodeMeter has been doing reliably for almost 15 years. And this is only one of many already successful pay-per-use models.
You could also bill your users for the time they spend using your software. The approach chosen for several years by CivilServe GmbH, Germany, when addressing international markets is very interesting in this respect: Their users can buy contingents of 10 hours of use time for their entire construction software portfolio. This is a very enticing option for clients that need different components of the software, but only for a temporary period on one project. For the developer, it is also a promising choice, as it creates a relationship with clients who might eventually buy the full package.
Maintenance Agreements and Subscriptions
Classic choices for software include support or maintenance agreements and subscription models. They are technically closely related to the pay-per-use models. The end of the update period or usage period is set in the software license, and a process would be started automatically to renew the license. The difference when compared with pay-per-use licenses is that this renewal is a cyclical event and does not consider the actual use of the software or machine. Models and procedures of this type have been described in more detail in other issues of our KEYnote.
One of the great benefits of CodeMeter is the fact that it has been offering pay-per-use capabilities for many years already and also accommodates offline use. All licenses, be they dongle-based, computer-based, server or cloud licenses, come with a license option for a pay-per-use counter. This unit counter is set to a starting value by you and then begins to count down. You can read the counter automatically and reset or increase it at will, by an absolute figure or by a relative count. This represents the technical underpinnings for any pay-per-use implementation.
With these foundations in place, you can establish both prepaid and consumption-driven models. Prepaid models would start with the unit counter set to a specific value, which is counted down in response to a specific action. That action is prohibited as soon as the counter reaches 0. Consumption models set the unit counter to its maximum value of 4 billion (0xFF FF FF FF). The countdown begins, and the difference to the maximum value shows you the number of the actual consumed units.
How the unit counter counts down depends on your chosen business model. If you license your products by usage time, the unit counter would, for example, count down by the minute. The total time is recorded as a value in minutes in the license. Of course, you can also set the interval to 5 or 10 minutes. In these cases, you can leave the count down up to AxProtector; a manual implementation is not necessary.
If you want the counter to work by numbers of processed dental implants, by printed objects, or by device calibrations, for example, you include this in the API at the right place in your application. This can be done securely by setting the counter to count down first before the actual action is allowed. Naturally, the counter can also be set to count down after the fact. You can also set the counter to deduct different values for different operations, e.g. two units for a canine implant, but three for a molar.
Only Proprietary Material
One common requirement for pay-per-use models is that the machine user is given discounted access to the machine, but only allowed to process material on it that was supplied by the manufacturer.
The most pragmatic way of doing so is a combination of a pay-per-use counter with a defined amount of material. Your user is allotted x pieces of material and y units. Every time one piece is processed, the counter goes down by one unit. This means that the user can only work with the amount of material he or she has actually purchased. It would, of course, be feasible to use the same units to process “cheap” material from the “grey” market, but the limit on the actual units makes this choice commercially pointless.
A technically better way is to mark the materials and include means to authenticate the marker in the machine. If the material in question is, for instance, delivered in a cartridge with its own intelligent computing capabilities, a challenge-response technique with asymmetric encryption would be a safe tactic. This is, however, not possible for simpler materials like paper or granulates.
The most sophisticated option would be to define one license per delivery / packaging unit. The license could be tied to specific properties, like a watermark in the material, which would be scanned and checked against the license. It could also be a special property like the typical shrinkage of the implanting block when heat-treating a dental implant.
Creating a Pay-per-Use License
The process of creating and delivering a pay-per-use license does not differ from the creation of any other regular license or a subscription or maintenance agreement license. In most cases, the procedure is initiated by an ERP, e-commerce, or CRM solution, which sends the order with the right material number to CodeMeter License Central, where a ticket is created (with an activation code, product number etc.) and returned. You can decide how the user receives the ticket, e.g. as a PIN letter, a license card, or – the fastest and easiest option – by email.
The user can then transfer the license or the units he has purchased onto a local CmDongle, a CmActLicense bound to a given computer, a license server, or a Cloud server. From that point, he or she has access to the license and free units. Typically, that transfer process is integrated in the licensed software (leaving the user to only enter the ticket) or handled via a simple license portal.
There are two options for integrating the interface for creating licenses. Either, you create separate packages with e.g. 10, 100, and 1000 units. Or you create an article and leave the unit counter as a dynamic value. Your choice will depend on the capabilities of your ERP, e-commerce, or CRM solution.
Buying New Prepaid Units
With subscriptions or maintenance agreements, the renewal date is known and predefined. In the case of pay-per-use licenses, the renewal depends on the actual units consumed by the client.
This is simple when material is licensed for a machine: A ticket is created for each delivery or a license booked onto an existing ticket assigned to the machine in question. If automatic renewal is configured, the ticket can be stored in the machine and new units retrieved with full transparency for the user. In the rare cases that the machine might not be online, the license can be delivered by a separate file, automatically including all of the security features and protection mechanisms of CodeMeter. The license file can be used only once on the target machine. Any open updates are automatically included, and the process is completed with a transparent receipt.
To buy new units manually, the user starts an order and typically receives the new units immediately after the purchase has been completed, if an e-commerce solution is used. For ERP or CRM solutions, the delivery time will depend on the specific system, its implementation, and the defined processes. Your software notifies the user if the unit counter is reaching its limit, so he or she can purchase new units in time.
Automatic billing needs communication to flow in both directions to ensure that the current unit counter is fed back to you without tampering or manipulation. CodeMeter has a built-in function to export such data; how you process it in your ERP, e-commerce, or CRM systems depends on the workflows you have defined for your business. Which means of payment are allowed for which clients? What happens when a credit card expires? How are clients locked out if they fail to make their payments?
After the billing process has been completed, CodeMeter License Central is instructed to create a new license or free up new units. Just as in the case of manual orders, these are delivered either as a new ticket or loaded onto an existing ticket in a given machine.
Allowing Third-Party Material
Because of something as strict as anti-trust legislation or as straightforward as your chosen business model, sometimes you may have to switch off pay-per-use or allow third-party material on your machines. This depends a lot on the specific commercial details of your agreements: If a machine is provided for a set contractual term, the legal or practical -constraints might be different than if the actual ownership changes hands when the machine is sold.
Technically, both situations can easily be addressed by CodeMeter. A third-party license can let your machine decide whether third-party material can be processed on it. You simply sell this license at a price of your choosing (or even free of charge).
Switching off pay-per-use is also simple: CodeMeter treats a license without a unit counter as an unlimited license. It can be used as if it had an infinite number of units left. You simply create the right license and the restriction is eliminated; no change in your software is required.
Opportunities and Threats
Introducing pay-per-use models offers many long-term benefits, but also entails certain risks in the short term. There is an initial drop-off in revenue as clients pay less upfront. In practice, the new model is ideally introduced in a new market segment or for a new product. This prevents the new revenue source poaching from existing processes, and it enables you to test the waters and see whether the new model is accepted by your clients without putting your business at undue risk.
Should you allow your clients to choose between traditional licenses and pay-per-use licenses? The answer is: It depends, on your target group. Typically, such flexibility will only pay off if it attracts substantially more new clients.
CodeMeter offers licenses with unit counters and automated processes in CodeMeter License Central for an optimal solution that makes pay-per-use models just as simple to handle as permanent or subscription licenses. At the same time, you are free to choose your favorite secure element for storing the licenses: CmDongle, CmActLicense, server in the LAN or in the Cloud. The processes to create or renew licenses are easily integrated or automated. Switching between license models is always possible by creating the right license. Whatever your needs, CodeMeter gives you complete flexibility without compromising your control over your licensing models.