Price Plan Components may be used in two different places as you can see in the diagram below. At the Charging Plan Object, the Plan Components is used to formulate the logic to identify the correct charging accounts. However, Functions and Splitters are not allowed. Functions and Splitters component are discussed below.

At the Price Plan, it is used to calculate the rates that will result as the total billing amount.

Price Plan Components consist of 5 groups

We always start by creating the **Rates** and always always always end with the **Functions**. In between we can utilize the **Comparators**, **Splitters** and **Operators**.

The** Comparators**, **Splitters** and **Operators **helps you to create your IF…THEN…ELSE statements more easily. We will not use all of these components. In fact, in our tutorials we will only use** Prefix Switching**, **Counter**, **Table Operator**, **Numbers** (comparators), **Output Property Update** (Operators) and **Macro Operator**.

The Rates are simply there to differentiate whether to charge a customer base on his usage (usage rate), or a fix periodic charge (recurring rate) or a one time fee (one shot rate). Your call charges will fall under the** usage rate**. Your data charges will fall under the **recurring rate**. And lastly, your termination fee will fall under the **one shot rate**. Remember, you must always start by creating the Rates.

Also, the Price Plan calculation logic must always always always ends with a Functions. Functions holds the formula to calculate the charges. For now, please familiarize yourself with the definition of each of the Functions below.

**1) Flat function**

- Computes a fixed amount
- Example: $5.40

**2) Linear function**

- Computes a price with a variable value (ax + b)
- Example: $ 0.40 x (number of pages) + $ 1.00

**3) Generic function**

- Computes a price with a more generic formula such as (axy + b) or (ax + by +c)
- Example: $0.25 x (number of person) x (duration of call) + $1.00

**4) Polynomial function**

- Computes a sum of amounts
- Example: $100 x ((number of person) x (duration of call) + ($ 45 x (QoS) x distance )

**5) Free**

- No price is computed
- No transaction is produced by the rating engine.
- No record is saved in the billing engine.

**6) No access**

- No price is computed, an exception is returned by Price & Rate rating engine.
- It is possible to choose the properties sent back, and the error message.
- It is not recommended to use this in a recurring or one shot rate (background process).

**7) Macro function**

- This component loads an external pricing rule in order to compute a price (operates like a subroutine).
- A pricing macro is a part of a tree.
- This concept allows reusable rating libraries to be built and used across several price plans.