billmax documentation   BillMax Billing Solutions
  877.245.5629
  sales@billmax.com
 

Configuring Usage Based Billing

BillMax supports two different billing paradigms for usage data. The first of these is Metered Billing. "Metered Billing" interprets RADIUS data it is processed by radiusd or radparse when storing the data in the datacall table. Metered Billing is configured using the "Service Definitions" (see the section called “Configuring a Service Definition”). Other than differing billing paradigms, the major difference between Metered Billing and Usage Based Billing is that with Metered Billing, a Service may have the State changed to Suspended State if time usage limits are met or exceeded. This is generally not possible with Usage Based Billing. However, Metered Billing parameters may be combined with Usage Based Billing to implement a suspension of service based on exceeding time usage limits. Metered Billing parameters are described in Configuring a Service Definition.

It is possible to use both "Metered Billing" and Usage Based Billing for a single Service. To do this, RADIUS data is used for "Metered Billing" and some other metric (usually entered using enter_stat) is used for Usage Based Billing.

A Usage Based Billing uses data contained in the stats table. The stats table is designed to store many different types of data. radiusd may insert RADIUS data into the stats table rather than the datacall table.

Generating a bill using a Usage Based Billing involves two steps:

  1. Distilling data stored in the stats table into a single value called a Usage Based Computation Result.

  2. Determining what the bill is based on the Usage Based Computation Result.

The algorithm for distilling the data into a Usage Based Computation Result is configurable as well as the algorithm for determining what the bill is for the resulting Usage Based Computation Result.

Configuring Usage Based Billing

Click on the Settings link on the Navigation Bar. Click on the "USAGE BASED PRICING PLANS" button. The "Usage-Based Pricing Plans" page will be displayed. This page lists the current Usage Based Billing and is composed of the following:

Figure 3.10. BillMax Usage-Based Pricing Plans

BillMax Usage-Based Pricing Plans


(1)

Click the "NEW" button to create a new Usage Based Billing plan.

(2)

Click on a link to choose and existing Usage Based Billing plan.

The "BillMax Usage-Based Pricing Plan Setup" page is displayed.

The first section is the "Pricing Plan Details Section":

Figure 3.11. BillMax Usage-Based Pricing Plan Details

BillMax Usage-Based Pricing Plan Details


(1)

The "CLONE" button only appears when viewing an existing Usage Based Billing plan. Click "CLONE" to begin the creation of a new Usage Based Billing plan using the settings of an existing Usage Based Billing plan as a starting point.

(2)

The "DELETE" button only appears when viewing an existing Usage Based Billing plan.

(3)

Click the "INDEX" button to bring up the list of Usage Based Billing plans.

(4)

Internally generated number identifying the Usage Based Billing plan.

(5)

Percentile

All the samples for a given period are sorted, then the top x% are discarded. x is defined as 100 minus percentile. The largest remaining sample is the Usage Based Computation Result.

Sample values are 1,2,4,7 and 20. Percentile is 80% The Usage Based Computation Result is 7.0.

Average

Usage Based Computation Result is the average of the samples.

Sample values are 1,2,4,7 and 16. The Usage Based Computation Result is 6.0.

Max

Usage Based Computation Result is the maximum of the samples.

Sample values are 1,2,42,7 and 16. The Usage Based Computation Result is 42.0.

Min

Usage Based Computation Result is the minimum of the samples.

Sample values are 1,2,42,7 and 16. The Usage Based Computation Result is 1.0.

Sum

Usage Based Computation Result is the sum of the samples.

Sample values are 1,2,42,7 and 16. The Usage Based Computation Result is 68.0.

(6)

Used for the Percentile computation method.

(7)

Statistics recorded in the stats table may represent a direction measurement by using a Named Samples. An inbound static is denoted by "in='value'". An outbound statistic is denoted by "out='value'". Both directions may be recorded in the stats table using the form in='value',out='value'. Computations may be based based on in values, out values, the larger of the two values, or the sum of the in and out values. Choose Not Applicable when using the Sum computation method.

None

Not Applicable. Value stored in stats table is a single floating point value.

In

Value stored in stats table must include the Named Samples "in=''".

Out

Value stored in stats table must include the Named Samples "out=''".

Greatest

Uses the greatest of the Named Samples "out=''" and "in=''" which must be included in the value field for the stats table.

In+Out

Uses the sum of the Named Samples "out=''" and "in=''" which must be included in the value field for the stats table.

(8)

Species whether the usage for a Service with a Usage Based Billing plan can be billed at a lower-priced Tier after having been billed at a higher-priced Tier.

(9)

The units of measurement captured in the stats table.

[Warning] Warning

This is for descriptive purposes only. Specifying units such as MB and capturing the data in another such as Mb will cause incorrect billing and confusion

(10)

A description of the type of sample. This links the type of sample specified here with statistics entered in the stats table using enter_stat with the stype parameter set to the value specified here.

Example 3.2. Examples for the field stype

  1. Bandwidth Usage

  2. account states

  3. new calltracks


(11)

The number of elapsed days before the applicable statistics are automatically purged from the stats table.

[Warning] Warning

The applicable statistics are purged even if they have not been used for a Usage Based Computation Result

(12)

Usage report for a Service may be mailed to the email address of the Account every reportfreq days. The last previous date a usage report was sent is stored in the bwreportdate field of the service table

(13)

Specifies whether or not the International System of Units are used when calculating units from certain data. Presently this option is used only when loading stats data from the datacall table and in datacall reports.

(14)

Specifies the usage display precision shown to customers. This option does not effect some values displayed in the staff interface.

(15)

Whenever the difference between the current usage cost and the previous usage cost reaches this amount, send the customer an email warning. This option is available only for the MIN, MAX and SUM computation methods. A zero value or a missing email template (usagereport.email) disables this option.

(16)

Whenever the usage computed value reaches this value, the customer's service is suspended for over usage for the remainder of the service's usage cycle. This option is available only for the MIN, MAX and SUM computation methods. A zero value disables this option.

(17)

Whenever usage costs reaches this value, the customer's service is suspended for over usage for the remainder of the service's usage cycle. This option is available only for the MIN, MAX and SUM computation methods. A zero value disables this option.

In the next section, specify the type of billing that will be done once a Usage Based Computation Result has been determined:

Figure 3.12. BillMax Usage-Based Pricing Plan Options and Tiers

BillMax Usage-Based Pricing Plan Options and Tiers


(1)

Linear Pricing (no price tiers)

Any defined tiers are ignored. The "Base Amount" is subtracted from the Usage Based Computation Result. The billed amount is the resulting value multiplied by the "Price Per Unit".

Example: The Usage Based Computation Result is 50GB. The resulting bill will be (50-24) * $12.00 which is $312.00.

Tiered Pricing

The Tier with the greatest value such that Usage Based Computation Result is greater than or equal to the Tier value is selected. The price for that Tier is billed.

Example: The Usage Based Computation Result is 50GB. The resulting Tier selected will be the one with an "Up To" value of 22. Therefore the amount billed is $22.00.

Bulk Rate Pricing

The Tier with the greatest value such that Usage Based Computation Result is greater than or equal to the Tier value is selected. The price for that Tier multiplied by the Usage Based Computation Result is billed.

Example: The Usage Based Computation Result is 50GB. The resulting Tier selected will be the one with an "Up To" value of 22. The amount billed is 50 * $22.00 which is $1100.00.

Marginal Pricing

Billing for Marginal Pricing is a two step computation. The Tier with the greatest value such that Usage Based Computation Result is less the Tier value is selected. The "Marginal Price Total" is one value of the computation. Then the Tier with the greatest value such that Usage Based Computation Result is greater than or equal to the Tier value is selected. The value of the Tier is subtracted from the Usage Based Computation Result and the result is multiplied by the Tier price forming the second value of the computation. The sum of the two computations is what is billed.

Example: The Usage Based Computation Result is 50GB. The first Tier selected will be the one with an "Up To" value of 22. The first value to bill is $277.00. The second Tier selected will be the one with an "Up To" value of 100. The second value is (50-22)*$80.00 which is $2240.00. The total amount billed will be $277.00 + $2240.00 which is $2517.00

(2)

Specify a Tier.

(3)

The list of Tiers.

(4)

Click in the "delete" link to delete a Tier.

Configuring a Usage Based Billing Plan for RADIUS data

By virtue of configuring a Usage Based Billing plan in a certain way, radiusd will be directed to store RADIUS data in the stats table as well as datacall table. The Usage Based Billing plan may be configured to such that "Time" RADIUS data or "Bytes Transferred" RADIUS data are stored in the stats table, but not both types of RADIUS data.

Steps for storing "Time" RADIUS data in the stats table

  1. Set Direction to "Not Applicable".

  2. Set "Sampling Units" to one of the following:

    • Sec

    • Min

    • Hour

    • Day

  3. Set "Sample Type" to "TIME".

  4. If suspension of the Service is desired after a certain number of hours is used, consider setting values for the the servdef.ounotice, servdef.oususp, servdef.ouprimenotice, servdef.ouprimesusp fields.

    [Warning] Warning

    Setting non-zero values for servdef.hourlyprice, servdef.hourlyprice_peak may cause double billing for the same usage.

Steps for storing "Bytes Transferred" RADIUS data in the stats table

  1. Set Direction to anything but "Not Applicable".

  2. Set "Sampling Units" to one of the following:

    • Byte

    • Kb

    • Mb

    • Gb

  3. Set "Sample Type" to "Bytes Transferred".


Document Revision A for BillMax 2.2.0   -   Copyright © 1997-2006 The iSpark Group, Inc.

All rights reserved. No part of this documentation may be reproduced or transmitted in any fashion without written permission by The iSpark Group, Inc. This documentation is for the sole use of licensees of the BillMax billing software created by The iSpark Group, Inc. Making the documentation available to a non-licensee of BillMax without written permission of The iSpark Group, Inc. is a violation of the use of this documentation.

While precautions have been taken in the preparation of this documentation, The iSpark Group, Inc. assumes neither liability nor responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.

All terms mentioned that are known to be trademarks have been appropriately capitalized. Use of the a trademark does not affect the validity of any trademark or service mark.

Links to third-party Web sites are provided for convenience. The iSpark Group, Inc. is not responsible for any content contained in the third-party Web sites.

Comments about this documentation may be sent to doc@billmax.com