There are three types of UserCalcs: 

!Calculation
A calculation is the main routine or procedure. Calculations may make use of qualifiers and/or functions and are able to modify values of columns in the triggering table.

%%information Calculations are used exclusively by the [Payroll (PR)|MODULE-PR] and [Workflow (WF)|MODULE-WF] applications.%%

Workflow UserCalcs do not return a value; rather they perform an action. A trigger is fired and results in the UserCalc being initiated. Under specific conditions, the various workflow actions defined in the UserCalc are performed.

For example, upon termination of an employee, an email is issued to the Human Resource department notifying them of the termination. In this example, the workflow action is the issuing of the email to the HR department. The specific condition is upon "Termination" of the employee.

For example, a calculation may call a Qualification to check if a pay component value exists, invoke a function to calculate 50% of that pay component's value, and move the result into a new pay component.

!Function
A function may return a Boolean, Char(acter), Date, or Number value. Functions may be part of a Calculation UserCalc as a [CALL|CALL_COMMAND], or may be a stand alone UserCalc for the [Attendance (AT)|MODULE-AT] or [Benefits (BE)|MODULE-BE] modules. Many modules use functions as a tool to calculate customized values when typical business rules do not apply. 

For example, a function may be performed to calculate the seniority of an employee in days.  An example of this is an attendance policy that requires yearly entitlement to be calculated based on the average days worked in the past 5 years. For this example, a function would be used to return the entitlement owed to the employee.

!Qualifier
A qualifier returns a Boolean value of either True or False. It is used to either eliminate or include employees in a calculation. Qualifiers may be part of a Calculation UserCalc as a [CALL|CALL_COMMAND]. 

For example, a qualifier may test the condition 'Is this employee full time?' in order to eliminate part time, casual, or temporary employees from the calculation.


----
![Notes|Edit:Internal.USERCALC+TYPES] 	
[{InsertPage page='Internal.USERCALC+TYPES' default='Click to create a new notes page'}]