How Rates Affect The Information On Bill Segments

After product's consumption has been compiled, the system applies the contract's rate to the product's consumption to determine how much to charge the customer. We refer to this process as "rate application". Refer to Rates for detailed information about rates.

Note: Not all contracts use a rate! There are a small number of contracts that don't use a rate to calculate the charges that appear on their bill segments. For example, a contract used to levy a customer's payment arrangement amount doesn't need a rate because the amount to charge is defined on the contract. Whether or not a contract needs a rate is defined by the contract's contract type. Whether or not the system calls the contract's rate to calculate charges is controlled by the bill calculation algorithm plugged-in on the bill segment type that's referenced on the contract's contract type. Refer to Designing and Defining Bill Segment Types for a description of the various bill segment creation algorithms that are supported in the system.
Note: Your proration choices impact what appears on a bill. A rate contains a variety of effective-dated information (e.g., the prices are effective-dated, the structure of the rate is effective-dated, etc.). If this effective-dated information changes during a bill period, the system may need to prorate the charges. For example, if the sales tax percentage changes mid-period, the system can prorate the tax change (e.g., 20 days at 6% and 11 days at 6.25%). When you setup a rate, you define exactly how the system handles changes that occur during a bill segment. For example, you can tell the system that sales tax changes should not be prorated. Rather, it should use the value effective at the start / end of the bill period (note, you have several other options). We mention this because your choices have a large impact on how a rate affects the information on bill segments. Refer to Effective Dates & Price Proration for more information.

Rate application is a very sophisticated process as it can affect every aspect of a bill segment. The following points describe how rate application works at a high-level:

  • The read details that were amassed earlier are passed into rate application.
  • Next, the total amount of each unique unit of measure / Variance Parameter that's referenced on every read detail is summarized in the bill segment's "service quantity (SQ) details".
  • Next, the rate schedule's service quantity rules (if any) are executed. Service quantity rules are used to calculate service quantities (SQ) referenced in the rate that cannot be derived from the read details. For example, if you have a rate that has a charge based on the number of days in the bill period, a service quantity rule would be necessary to calculate the number of days in the bill period.
  • Next, the system determines which of the rate's rate versions should be processed. Note, a flag on the rate schedule allows you to control what happens if multiple rate versions are detected during the bill period. A bill segment "calculation detail" is created for each such rate version. Each calculation detail contains the results of executing the rate version's rate components (where a separate bill line is created for each rate component). Each bill line contains:
    • An audit of what was priced.
    • How the printed bill line should look (if the bill lines is printed).
    • How the amount of the bill line should be booked in the general ledger.
Note: There are many plug-in spots available on a rate component. These plug-ins can manipulate virtually every aspect of the bill segment. This means if you require functionality that isn't support by the base package rate components, you can build additional rate component plug-ins to do whatever you need.
  • After every rate version is processed, rate application returns the calculation details to the process that called it. This point is important as it means that rate application executes in memory (i.e., it does NOT insert the calculation details on the database, rather, it returns them to whatever process called rate application). Because rate application executes in memory, it can be used to perform billing calculations in many parts of the system. For example:
    • Both online and batch billing use rate application to calculate the charges that are eventually saved on the bill's bill segments.
    • The Rate Check transaction calls rate application when you want to check a rate real-time. When you use this transaction, you enter the product's consumption that's passed into rate application and then rate application shows you the calculation details that result.
    • Plug-ins exist that call rate application to estimate bill segments when adequate billing history doesn't exist. For example, the BUDCALC-PH budget recommendation algorithm calls rate application to calculate a budget amount for a customer without adequate history. Another example is the DEPRECOM-MBT deposit recommendation algorithm. This plug-in calls rate application to calculate a recommended deposit amount for a customer without adequate history.
Fastpath: Refer to Rates for more information about how rates are constructed.