Industry
Use Case
Favorite Feature
A company runs a hosted SQL analytics platform: customers load their data, run queries and schedule reports. It charged per analyst seat.
Seats had little to do with cost. A team of five running heavy queries over terabytes cost the company far more than a team of fifty building a few dashboards, but the small heavy team paid less. The company wanted to charge by compute instead, using a unit it could measure reliably.
Two customer groups needed different terms. Self-service teams wanted to pay upfront with a card and top up when needed. Enterprise customers wanted a contract with a monthly committed volume and an invoice at the end of the month.
The platform measures every query in compute units (CU), its own measure combining scanned data and processing time. NetLicensing counts CUs. It doesn’t need to know how they’re calculated.
Each customer workspace is a licensee:
Product: QueryCloud (licenseeAutoCreate = true)
├── Module "Compute" – Pay-per-Use
│ ├── Starter credits: QUANTITY 500, price 0, automatic
│ ├── Pack 10k: QUANTITY 10000
│ ├── Pack 100k: QUANTITY 100000
│ └── Enterprise month: QUANTITY per contract, hidden
├── Module "Storage" – Quota
│ ├── Included: QUANTITY 100 (GB), price 0, automatic
│ └── Extra 500 GB: QUANTITY 500
└── Module "Workspace" – Subscription
└── Month: TIMEVOLUME 1 MONTH
Compute. Every workspace starts with 500 free CUs. The query engine adds up CUs per workspace and reports them every minute with Pay-per-Use:
curl -u apiKey:SERVER_API_KEY -H "Accept: application/json" \
-d "productModuleNumber0=M-COMPUTE" -d "usedQuantity0=86" \
https://go.netlicensing.io/core/v2/rest/licensee/WS-ATLAS-ANALYTICS/validate
The response returns remainingQuantity. When the balance reaches zero, the engine stops accepting new queries for that workspace. Queries that are already running finish. The platform’s usage page shows the current balance with the same call and dryRun=true, which returns the result without changing anything.
Storage. The Quota module returns the workspace’s storage limit in GB. The platform knows how much data is stored and refuses new loads once the limit is reached. Quota is a fixed limit and isn’t used up, so it fits storage better than Pay-per-Use does.
Workspace. A small monthly Subscription keeps the workspace, its users and its scheduled reports active.
Self-service teams buy packs in the NetLicensing Shop from the usage page. A webhook for WARNING_LEVEL_CHANGED triggers a “you’re running low” email before a balance runs out.
For enterprise contracts, the platform’s billing job creates one hidden “Enterprise month” license at the start of each month, with quantity set to the committed volume from the contract. At the end of the month it reads that license, takes usedQuantity for the invoice, and sets the license to active=false. Invoicing itself happens in the vendor’s own billing system. NetLicensing provides the usage number. If an enterprise customer is close to using up its monthly volume, the same warning webhook alerts the account manager, who can add volume before queries stop.
Moving from seats to usage-based pricing? Read Usage-based software licensing or contact us.

Physical Security: Feature-Based Access Control with Time-Limited Permissions
How a building operator can tie tenant amenities to Multi-Feature licenses and give contractors passes that expire on their own with the Subscription model.

AI/ML Platform: Token-Based Monetization with Inference Metering
How an AI inference API can sell prepaid token credits with Pay-per-Use, report consumption in batches and gate premium models with a Subscription.