This chapter provides an overview of configurable matrices, and discusses how to:
Define sources for configurable matrices.
Define results for configurable matrices.
Define and maintain configurable matrices.
Use special rules to create configurable matrices.
Copy matrices.
Build a special rate matrix—tutorial.
A configurable matrix is a special type of lookup table that can be designed and populated by the administrator. The administrator specifies the inputs (or criteria) that will be used as lookup variables and the outputs (or results) that the table will return for specific combinations of input values.
These examples illustrate the concept of matrices and their intended usage.
This matrix is used to determine the compensation rate for a worker based on his department.
Department ID — Input |
Rate (US per hour) — Output |
10012 |
10.00 |
10013 |
12.00 |
10014 |
14.00 |
10015 |
16.00 |
In this example, the single input is the Department of the worker and the output is the Rate. If a worker is in Department 10012, the pay rate is 10.00 USD per hour
Matrix with Two Inputs and One Output
This is an example of a matrix with two inputs and one output:
Time with Company (months) — Input |
Site Risk — Input |
Rate (USD per hour) — Output |
0–24 |
Low |
10.00 |
0–24 |
Medium |
12.00 |
0–24 |
High |
14.00 |
25–60 |
Low |
12.00 |
25–60 |
Medium |
14.00 |
25–60 |
High |
15.00 |
61–120 |
Low |
14.00 |
61–120 |
Medium |
14.00 |
61–120 |
High |
16.00 |
121–7200 |
Low |
16.00 |
121–7200 |
Medium |
17.00 |
121–7200 |
High |
18.00 |
In this matrix, the rate is determined by a combination of the time in company and the risk level of the work site. A worker who has been with the company for 50 months and works at a Medium risk site will be compensated at the rate of 14.00 USD per hour.
Matrix with Multiple Outputs of Different Types — Market Pay Matrix Example
The outputs of a matrix can be of different types, and the following example is a matrix with multiple outputs, one of which is a percentage. This matrix is used to track the compensation rates for a job at various percentiles and different geographical areas. It also tracks rates for standard compensation figures such as Total Cash Compensation.
In this example, the only input is the geographical area. All other columns are outputs. This matrix can be associated with a specific job code, so that the compensation administrator can track market pay for that job code across different geographical regions.
Geography |
Currency |
Base 25th |
Base 50th |
Base 75th |
Base 100th |
Base Market Reference |
Variable Target Percent |
Mean Total Compen- sation |
Total Compen- sation Reference |
NORTHWEST REGION |
USD |
26,000 |
27,00 |
27,500 |
28,000 |
27,000 |
12.00 |
29,000 |
30,000 |
MID ATLANTIC REGION |
USD |
24,000 |
25,000 |
25,500 |
26,000 |
25,000 |
10.00 |
27,000 |
28,000 |
SOUTHWEST REGION |
USD |
27,000 |
28,000 |
28,500 |
29,000 |
28,000 |
11.00 |
30,000 |
31,000 |
Matrix With Calculated Results
You can also embed calculations in the results returned by a matrix. In this example, the matrix returns rates calculated by applying a formula:
Step — Input |
Reference — Output |
Percentage to Apply — Output |
1 |
Base Salary |
5 |
2 |
Grade Range Maximum |
90 |
3 |
Base Salary |
4 |
For example, if the worker’s base salary was 10,000 USD and if he was on Step 1, this matrix will return a rate (Base Salary x 5%) = 10,500 USD.
Note. The system performs the appropriate checks to find the worker’s current base salary. The base salary was not stored on the matrix.
This section discusses matrix inputs, outputs, and matrix evaluation rules for configurable matrices.
Each matrix can have one or more inputs. These inputs are the search criteria against which you will evaluate a specific worker. The maximum number of inputs is 15. Each input is defined in the form of one or more source IDs.
Human Resources contains a number of predefined source IDs as system data. You can use those to build your configurable matrices. However, you can create also additional custom source IDs.
See Defining Sources for Configurable Matrices.
The outputs of a matrix are available in the form of Result IDs. You can have a maximum of 30 outputs for one matrix. The outputs are categorized into result types, based on their data format or the rules used to derive the result.
Base Compensation contains a number of predefined Result IDs as system data. These results can be used as outputs for the configurable matrices. However, you can create additional custom result IDs.
See Predefined Source IDs and Result IDs for Configurable Matrices.
Whenever the matrix is invoked, the system attempts to match the worker's data with keys in the matrix. The system checks all input variables against the keys defined for each input. The order of checking will be the same as the order in which the inputs were defined. At the first row where all input variables match the keys specified in the matrix, the system will return all result IDs for that row. When you are defining search keys, the system ensures there are no duplicate rows. You cannot have any blank search keys.
Using Wildcards as Search Keys
You can use wildcards when defining search keys. After you have entered your specific key values for one input, you can optionally add a wildcard key. This means that if there is no explicit match against any of the other key values, the wildcard key will be considered a match. For example, assume you defined Dept ID as an input. You want to list specific non-zero rates for Dept ID's 101, 102, 103, and 104. However, for all other departments, you want a rate of 0. In this case, you would specify a total of five keys for the input, 101, 102, 103, 104 and '*' which represents a wildcard. Any worker not in Dept 101, 102, 103, 104 would match the wildcard and would get a rate of 0. This allows you to have a default rule defining what to do if the worker's data does not match any of the key values.
This section discusses the three types of matrices you can create using the configurable matrices feature.
Market pay matrix.
This matrix that captures market pay information for a given job. The market pay matrix can then be associated with specific job codes by using the Associate Mkt Pay to Job Codes page (Set Up HRMS, Product Related, Compensation, Market Pay, Associate Mkt Pay to Job Code). You can also associate the matrix directly on the Market Pay Match page of the Job Code definition component (Set Up HRMS, Foundation Tables, Job Attributes, Job Code Table, Market Pay Match).
Rate matrix.
This matrix is used to store compensation rates based on multiple criteria. You can then associate a rate matrix to a rate code defined in the Comp Rate Code Table page (Set Up HRMS, Foundation Tables, Compensation Rules, Comp Rate Code Table). The rate matrix can return compensation rates which are directly listed in the matrix, or derived using formula-based result IDs.
Salary increase matrix.
This matrix is used to store the salary increase guidelines, as percentages of base salary. These guidelines are usually based on the worker's performance ratings and ratios such as Compa-Ratio and Percent-In-Range. You can attach this matrix to specific rate codes on a group budget (Compensation, Base Compensation, Group Budgets, Create/Approve Group Budget, Budget Components). The system applies the appropriate increases to workers when calculating the budget, based on the criteria in the matrix.
Note. Depending upon the page, you can only associate a specific type of matrix to that page. For example, the system will only retrieve rate matrices when searching on a rate code definition page. Similarly, you can only associate market pay matrices to a job code.
Important! You cannot associate configurable matrices to seniority pay rate codes.
See Defining Rate Codes.
See Budgeting and Planning Salary Increases.
See Also
Setting Up and Working with Market Pay
This section discusses how the system displays a configurable matrix.
Matrix Display
There many instances within compensation processes where data is presented and used in a two-dimensional table, or matrix form. An example is in salary increase guidelines which store increase percentages for different performance ratings and percent-in-range ratios. How this data is presented affects how easily it can be understood. When defining inputs for a matrix, you have the option to specify one of the inputs to be the column header instead of the row header. The following section explains this concept further.
Displaying Inputs as Columns — Example
Assume that you have 2 inputs (step and department) and one output (the rate). The matrix can be displayed in 2 ways.
Example 1: Each combination of inputs is like a row header.
Step |
Department |
Percent Rate |
1 |
100 |
2 |
1 |
122 |
4 |
2 |
100 |
6 |
2 |
122 |
8 |
3 |
100 |
10 |
3 |
122 |
12 |
4 |
100 |
14 |
4 |
122 |
16 |
Example 2: One input as a column header
This display is easier to understand because the Department input was set to Column rather than Row, which is the standard.
Department |
||
Step |
100 |
122 |
1 |
2 |
4 |
2 |
6 |
8 |
3 |
10 |
12 |
4 |
14 |
16 |
To define sources for configurable matrices, use the Define Sources (WCS_SOURCE_DEFN) component.
Note. You cannot create new source types.
This section discusses predefined source types and discusses how to:
Define sources based on addresses.
Define sources based on dates.
Define sources based on ratios.
Define sources based on performance ratings.
Define sources based on employee information.
Define sources for related employee information.
Define sources based on position information.
Define sources based on related position information.
Define sources based on geographical areas.
Define sources based on salary grade step rates.
Define sources based on length of time.
Define sources based on supplied information.
Define sources based on a matrix.
See Also
Predefined Source IDs and Result IDs for Configurable Matrices
This table explains the predefined source types that are available and shows you which type to use when defining your own source IDs. These sources types are system delivered:
Source Type |
Description |
ADDRESS |
Employee Address. You can select fields from worker’s address information. |
DATES |
Significant Dates. You can select a date from a predefined list of significant dates, such as date of hire, date of termination, and so on. |
EMPINFO |
Employee Information. You can select fields from core tables directly related to workers. |
EMPRELATED |
Related Employee Information. You can select fields from tables related to core tables for worker information. |
GEOGRAPHY |
Geography. You can define Source IDs to represent Geographical Areas. |
MATRIX |
You can define Source ID that represents a value indirectly derived from another matrix. |
POSINFO |
Position Information. You can select fields from core tables directly related to position information. |
POSRELATED |
Related Position Information. You can select fields from tables related to core tables for position information. |
RATING |
Performance Rating. You can define sources to represent performance rating by (performance) document type. |
RATIOS |
Rate Ratios. You can define sources to represent one of the three available ratios: Compa-Ratio, Job-Ratio, and Percent-in-Range. |
STEPRATE |
Step Rate from Employees Plan. You can define a Source to represent the compensation rate for a specific Salary Grade Step from the worker's Salary Admin Plan. |
SUPPLIED |
Supplied by Caller. This type is used when there is no lookup to any table field required, and the calling program or component will directly supply the actual value for the source. |
TIMESPAN |
Length of Time. You can define sources that measure the timespan between current date and a pre-specified date or significant dates on the worker's JOB record. |
Effective Date |
The effective date of the source ID definition. |
Description |
Description of the source ID. |
Source ID |
The unique name for the input to be used in the configurable matrix. |
Source Type |
Indicates the type of data to which the source refers. These are system delivered and you cannot create additional source types. |
Status |
Select Active or Inactive. Important! Sources must have a status of Active to be used to build configurable matrices. |
Comment |
Add any relevant comments for this source. |
Default Label |
Enter the name for the source that will appear as row or column header when the matrix is displayed. |
Element |
Select the element from the available list of values, usually a field from a table. This will become the source of search keys for the matrix. |
Data Type |
This value is automatically set to System Data or Customer Data. System-defined source definitions will be set to System Data. You should not modify those definitions. When you create new source IDs, the data type will be set to Customer Data. |
Page Name |
Object Name |
Navigation |
Usage |
WCS_SO_EMPL |
Set Up HRMS, Common Definitions, Configurable Matrices, Define Sources |
Maintain sources. Use to provide inputs (row information) for configurable matrices. Note. The fields on this page differ depending upon the Source Type that you select. |
Access the Source Definition page and select ADDRESS as a Source Type when creating a new source.
You can create a source that refers to any address type (home, work, mailing, and so on) and any field (address line, city, state, country) on the address.
Address Type |
Select the type of address. |
Element |
Select the field that will define this source. |
Access the Source Definition page and select DATES as a Source Type.
Type of Date |
Select the date type for this matrix. Values are:
|
Access the Sources Definition page and select RATIOS as a Source Type.
The system will calculate the appropriate ratio for the worker dynamically at runtime. The system uses the salary ranges based on the effective date of the transaction.
Rating Type |
Select one of the values:
|
Access the Sources Definition page and select RATING as a Source Type.
Document Type |
Select a performance review document type from the available values. The list of document types will change based on the effective date of the Source ID. |
Element |
Select the element that will define this source. The available values come from the EP_APPR record. |
Access the Sources Definition page and select EMPINFO as a Source Type.
Context |
Select a value. The system will allow you to select an element that is available through one of these contexts. This is the list of contexts, along with sample list of elements that are available within each context:
|
Element |
Select the field that will define this source. The prompt list is based on the selected Context. |
Access the Source Definition page and select EMPRELATED as a Source Type.
Click the folder icon in the tree to open the appropriate related table and then select the appropriate element by clicking the leaf node.
This tree allows you to derive a value from any table related to worker's Job record using the EmplID as a starting point. For example, if you want to use the Manager Level of the worker's Job Code as the source, you can link to it by opening the JOBCODE folder and clicking the Manager Level leaf node. You can use this source type to create source IDs for fields that are not available as system-defined source IDs.
Element |
Select the element that will define this source. The available values are based on the selected Context. |
Access the Sources Definition page and select POSINFO as a Source Type.
Element |
Select the field that will define this source. |
Access the Sources Definition page and select POSRELATED as a Source Type.
View various worker related information such as general employment data, job history, names, and so on.
Position Data |
Click the folder icon in the tree to open the appropriate related table and then select the appropriate element by clicking the leaf node. This tree allows you to derive a value from any table related to the position of the worker using the position number as a starting point. For example, if you want to use the Grade of the worker as the source, you can link to it by opening the Salary Grade folder and clicking the Grade leaf node. |
Access the Sources Definition page and select GEOGRAPHY as a Source Type.
This source type is intended to be used to create sources that will always refer to Geographical Area definitions. There is one system-defined Source ID of GEOGAREA. However, you can create another source if you want a different name and label.
Note. There is no automatic validation of key values for geographical areas. However, you can specify the prompt table GEOGRAPHY_TBL, and prompt field GEOGRAPHY_ID when you add GEOGAREA as the input in the matrix component.
Access the Sources Definition page and select STEPRATE as a Source Type.
This source returns the standard compensation rate for a given grade and step, within the worker's salary administration plan. This type of source can be used to create rate matrices where the rates are dependent upon or related to rates on one or more grades and steps on the worker's salary administration plan.
Salary Grade |
Enter the grade (from the worker's salary plan) to which this source will refer. |
Step |
Enter the Step within that grade whose rate you want to use as the source. |
Frequency |
Enter the frequency in which you want the rate returned: (Annual, Daily, Hourly, or Monthly. |
Access the Sources Definition page and select TIMESPAN as a Source Type.
This source allows you to define as input the length of time elapsed between current (as of) date and a specified reference date. For example, if you want to create a rate matrix that will include pay rates based on how long the worker has been in the company, in that job, or in that grade, then you will define a source of this type.
Calculate From |
Select the type of date from which you want the length of time to be calculated. The available dates are:
|
Specified Date |
Enter the specific calendar date from which you want the length of time to be calculated. Important! Specified Date and Calculate From options are mutually exclusive. If you enter a specified date, you cannot select a date in the Calculated From field. If you select a date in the Calculated From field, you cannot enter a specified date. |
Frequency |
Select the frequency in which you want the length of time to be calculated. You can select Hours, Days, Weeks, or Months. |
Rounding Rules |
Select a value that will represent the type of rounding to be applied to the timespan.
|
Threshold (Days) |
Enter the number of days to be used with the Rounding Rules field. |
Access the Sources Definition page and select SUPPLIED as a Source Type.
This type of source is used when the component that will use the matrix will pass the appropriate Input value (for the worker) directly, so that there is no lookup to any table to derive the value.
Type of Data |
Select from these values:
|
Access the Sources Definition page and select MATRIX as a Source Type.
With this source, the system will evaluate the key for the input dynamically by referring to another matrix and use one of the results from that matrix as the key value.
See Defining Inputs for Matrices.
Matrix ID |
Select from the list of available matrices. |
Matrix Result ID |
Select the result ID (output) from the matrix that will be used as the Source ID. |
Health Benefits Rates Using a MATRIX Type Source ID — Example
Suppose you were creating a matrix to determine health benefit allowance amounts. However you wanted to base the health benefits on standard hourly rates for each department. If the hourly rates are below certain amounts, you will give health benefits. This is an example of what the matrix may look like:
Std Hourly Rate |
Health Ben Rate |
10–12 |
4 |
13–15 |
3 |
16–20 |
2 |
21–100 |
0 |
In this case, you need a way to dynamically get hourly rates for the worker's department. This is where a Source of type Matrix is useful. In the previous example, you are defining a source that will return the rate for the worker's department. You specify which matrix has department rates, and which Result ID from that matrix is the Rate value.
In the health benefits table, the Std Hourly Rate would be defined using the DEPTRATE_MTX source ID.
To define results for configurable matrices, use the Define Results (WCS_RESULT_DEFN ) component.
This section provides an overview of results used in configurable matrices, and discusses how to.
Define results based on the SIMPLECHAR (simple character) result type.
Define results based on the SIMPLENUM (simple number) result type.
Define results based on the SIMPLEDATE (simple date) result type.
Define results based on the INCRBYAMT (increment by amount) result type.
Define results based on the PCNTOFBASE (percent of base) result type.
Define results based on the THRESHOLD result type.
Define results based on the SOURCE result type.
Define results based on the MATRIX result type.
Results (result IDs) represent outputs for configurable matrices. A result ID is simply a standardized name for one of the outputs from a matrix. By using standardized names, the applications and components that query a matrix can know what set and type of results to expect back after they perform a lookup. For example, if you expect to get a percentage value back, the name PERCENTAGE is more intuitive than NUMBER1. If you expect to get an amount that represents a compensation rate, the name COMPRATE is better that just AMOUNT.
There are system-delivered result IDs, but you can also create new ones. The simplest result IDs are freeform values of type, character string, numbers, or dates. Using freeform values, you would enter values into the matrix that would be directly returned to the calling program when the matrix is evaluated. For example, in a rate matrix, the compensation rate can be stored as an AMOUNT result ID that has values of 10, 12, and so on. Note that currency and frequency concepts are derived automatically based on context. The matrix is simply storing the numbers.
There are also advanced Result types where the system will perform a formula-based calculation or a lookup operation and return the final value as the result.
See Predefined Source IDs and Result IDs for Configurable Matrices.
There are four special result types.
INCRBYAMT (increment by amount).
PCNTOFBASE (percent of base).
THRESHOLD.
SOURCE.
Status |
Select Active or Inactive. Important! Results must have a status of Active to be used to build configurable matrices. |
Comment |
Add any relevant comments for this result. |
Default Label |
Enter the name for the result. |
Result Usage |
Select one or more values to indicate which type of matrices will use this result:
|
Page Name |
Object Name |
Navigation |
Usage |
WCS_RES_SIMPLENUM |
Set Up HRMS, Common Definitions, Configurable Matrices, Define Results |
Maintain results returned from configurable matrices. Note. The fields on this page differ depending upon the Result Type that you select. |
Access the Result Definition page and select SIMPLECHAR (simple character) as a Result Type.
This type of result ID is used to store simple character string values with an appropriate label. In this screenshot, the result ID SURVEY_JOBCODE is being defined. This Result ID can then be used in a market pay matrix so that compensation specialists can refer to market pay by job code. Since the job code is coming from a survey database, it is stored simply as a character string.
Length |
Enter maximum number of characters allowed to store the value. |
Access the Result Definition page and select SIMPLENUM (simple number) as a Result Type.
This type of result is used to store simple numbers that represent different values. For example, the 50_PERC result ID can be used in salary increase guidelines matrices and in market pay matrices to track the 50th percentile values for different numbers such as compa-ratios and base compensation market rates.
Access the Result Definition page and select SIMPLEDATE (simple date) as a Result Type.
This result is used to store date values in the matrix. For example, you can use this to track the date of the surveys that are tracked in market pay matrices.
Access the Result Definition page and select INCRBYAMT (increment by amount) as a Result Type.
Total Length |
Enter the number of characters for the result ID. |
Decimal |
Indicate how many decimals places to use for the number format. |
Using the Increment by Amount Result Type
This result type will use the number entered as an amount to be applied to another result. It requires you to specify the target Result ID to which this amount will be applied. You can enter both positive and negative numbers, so you can increment or decrement the target value. For example, assume that you have a matrix for calculating rates based on Department. Each department has a fixed base rate (which can vary by department). However you want to calculate the final rate as an increment of the base rate. In this case you will have one Result ID called Base Rate (of type SIMPLENUM), and another Result ID called Final Rate (of type INCRBYAMT). The matrix looks like this:.
This example illustrates the INCRBYAMT result type.
Dept (Source) |
Base Rate (Result) |
Final Rate (Result) |
1010 |
10 |
-2 |
1020 |
10 |
-1 |
1030 |
12 |
-1 |
1040 |
12 |
1 |
Now if a worker is in Dept 1010, the system will return 10 - 2 = 8.00 as the value in Final Rate result ID. Note that when you are defining the matrix, you entered a value “-2” in the cell for Final Rate, but the system uses that value as the amount to add and returns 8 in the same result ID at runtime. You do not need to define another result ID to hold the value from the calculation.
If a worker is in Dept 1040, the value in Final Rate result ID will be (12 + 1) = 13.00.
Access the Result Definition page and select PCNTOFBASE (percent of base) as a Result Type.
.
Total Length |
Enter the total length of the number format. |
Decimals |
Enter the number of decimal places to use for the number format |
PCNTOFBASE (percent of base) — Example
This result type will use the number entered as a percentage to be applied to another result. You must specify the target result ID to which the percentage will be applied. For example, assume you have a matrix for calculating rates based on Department. Each department has a fixed base rate, (which can vary by department. However, you want to calculate the final rate as a percentage of the base rate. In this case, you will have one Result ID called “Base Rate” (type SIMPLENUM), and another result ID called “Final Rate” (type PCNTOFBASE).
This example illustrates a rate matrix using the PCNTOFBASE result type.
Dept |
Base Rate |
Final Rate |
1010 |
10 |
85 |
1020 |
10 |
90 |
1030 |
12 |
100 |
1040 |
12 |
110 |
Using this example, if a worker is in Dept 1010, the system will return 10 × 85% = 8.50 as the value in Final Rate result ID.
Note. When you defined the matrix, you entered a value 85 for the Final Rate, but the system uses that as the percentage to apply and returns the value in the same result ID at runtime. You do not need to define another result ID to hold the value from the calculation.
If a worker is in Dept 1040, the value in Final Rate result ID will be 12 × 110% = 13.20.
Access the Result Definition page and select THRESHOLD as a Result Type.
This result type allows you to apply rounding based on threshold differences between a calculated value and a reference value. When used within a matrix, this result requires two other Result IDs as parameters. The system takes the first (calculated) result and subtracts it from the second (reference) result. The difference is compared to the amount in the Threshold result. If the difference is less than the threshold amount, the matrix will return the reference value in the Threshold result ID. If the difference is greater, the matrix will return the calculated value.
For example, assume that you are calculating increases in compensation rates based on Salary Steps, but you want to round up to the next step rate when the difference between the calculated rate and the next step rate was less than a specified threshold amount. Assume a worker is on Step 3 at rate of 8.50 USD per hour. The rate for Step 4 is 9.00 USD. For all workers who get a raise such that their new rate is within 0.20 USD of 9.00 USD, you want to automatically set their rate to 9.00 USD. Now if the increase matrix gives the worker a 5 percent increase, the new rate is 8.925 USD. Since this is within 0.20 USD of the 9.00 USD rate for Step 4, the system will automatically return new rate of 9.00 USD.
Access the Result Definition page and select SOURCE as a Result Type.
Source ID |
Select a source ID that this result ID will implicitly evaluate and return the source's value as the final result. The list of possible source ID values come from the Sources Definition. |
This type of result ID returns the value of a referenced source ID as its value. The final result is the value of the source. As an example, assume you needed to create a rate matrix for calculating bonuses as a percentage of the worker's annual compensation rates. However the bonus percentages will vary by department. Therefore the single input to the matrix is Dept and the two results are Annual Rate and Bonus Pct.
The matrix looks like this:
Dept (Source) |
ANNUAL_RATE_SOURCE (Result) |
Bonus Percent (Result) |
101 |
ANNUAL RATE |
4 |
102 |
ANNUAL RATE |
4 |
103 |
ANNUAL RATE |
5 |
104 |
ANNUAL RATE |
6 |
Since you do not know the worker's annual rates, you define one result ID of type of SOURCE, called ANNUAL_RATE_SOURCE and associate it to the Source ID “ANNUAL_RATE”. You then define a second result ID of type PCNTOFBASE, called BONUS_PCT which tracks the bonus percentages. You specify the ANNUAL_RATE_SOURCE Result ID as the target result ID to which the bonus percentage will be applied. Now when this matrix is evaluated, the following actions will occur:
Since department is the required input, system looks up the worker's department (let's say it is 103).
System looks up results for Dept 103.
For the result Annual_Rate_Source system looks up the ANNUAL RATE of the worker and returns that value (let's say it is 10,000 USD)
For the result Bonus Pct, the system applies the 5 % to 10,000 USD and returns a value of 500 USD.
Access the Result Definition page and select MATRIX as a Result Type.
Matrix ID |
Select the matrix on which this result should be based. |
Matrix Result ID |
Select a result ID (for the matrix) on which this result should be based. |
This type of result uses one of the result IDs of another matrix as its value. When a matrix using this result is evaluated, the system will evaluate the referenced matrix to get the final value. For example, assume that you want to set up a payment structure for health benefits and you decide that the company will pay health benefits at 20% of the standard compensation rates by department. In order to determine a worker's health benefit rate, you need to determine their department's standard compensation rate. However the standard compensation rate itself is dynamically set based on Salary Grade Steps. Assume that the standard rate is derived using the KUR001 rate matrix which has NEW_AMOUNT as the result. Then the system would use the NEW_AMOUNT result of that matrix as the reference rate. Now the system can apply a percentage on that result (using PCNTOFBASE) to get a final health benefit rate.
Therefore in this case, the Matrix ID is KUR001, and the Matrix Result ID is NEW_AMOUNT.
To define configurable matrices, use the Define Matrices (WCS_LK_TBL_DEFN) component.
This section discusses how to:
Define matrices.
Define inputs (source IDs).
Define matrix output (result IDs) information.
Specify search keys for configurable matrices
Load values from the prompt table.
Enter data content fields.
View matrix results.
Description |
Enter a description for the matrix. |
Status |
Select Active or Inactive. Important! Matrices must have a status of Active to be used in any business process. |
Comment |
Add any relevant comments for this matrix. |
Default Label |
Enter the label. |
Page Name |
Object Name |
Navigation |
Usage |
WCS_LK_TBL_DEFN |
Set Up HRMS, Common Definitions, Configurable Matrices, Define Matrices |
Define and maintain matrices. |
|
WCS_LK_TBL_INPUTS |
Set Up HRMS, Common Definitions, Configurable Matrices, Define Matrices, Inputs |
Define inputs to the configurable matrix. |
|
WCS_LK_TBL_OUTPUTS |
Set Up HRMS, Common Definitions, Configurable Matrices, Define Matrices, Outputs |
Define outputs of the matrix. |
|
WCS_LK_TBL_KEYS |
Set Up HRMS, Common Definitions, Configurable Matrices, Define Matrices, Search Keys |
Specify the search keys to be used to match worker data. |
|
WCS_LK_TBL_KEY_SEC |
Set Up HRMS, Common Definitions, Configurable Matrices, Define Matrices, Search Keys Click the Load Values from Prompt link. |
Automatically load search keys for specific sources using a prompt table. |
|
WCS_LK_TBL_DATA |
Set Up HRMS, Common Definitions, Configurable Matrices, Define Matrices, Data Content |
Enter values for the output data. |
|
WCS_LK_TBL_VIEW |
Set Up HRMS, Common Definitions, Configurable Matrices, Define Matrices, View |
View the matrix as of the last saved version. |
Access the Matrix Definition page.
Note. All matrices are created with a state of Inactive. You must change the status to Active in order to use them.
Matrix Type |
Select the matrix type on which the configurable matrix should be based. Values are:
|
Orientation |
The orientation indicates the starting point for associating the employee ID to other related fields. If all sources used in the matrix can be evaluated using EMPLOYEE and JOB records only, then you only need the EMPLOYEE orientation. If there are sources that can be evaluated starting from worker's Position information, then you can add POSITION as another orientation. Note. You must have at least one orientation. You are allowed to have both orientations. If the information available to the calling program is only position data and not the employee ID, then you need POSITION as an orientation to allow the matrix to evaluate the sources. |
See Also
Setting Up and Working with Market Pay
Budgeting and Planning Salary Increases
Access the Inputs page.
Matrix Inputs
Order |
Enter the numerical value to indicate the order in which the inputs should appear in the configurable matrix. This will also determine the order in which the inputs are evaluated against the worker data. |
Label |
Enter the label that will be displayed. |
Key Type |
Select a value:
|
Decimal |
Enter the number of decimal positions to maintain for numeric inputs. This field will be grayed out as applicable. |
Display As |
Select whether this input should display as a Row or a Column header. Important! Only one input can be selected as a Column header. However, you can choose to have all inputs displayed as rows. |
Optional Prompting
If you want the ability to enter search keys from a prompt table, you can use this section to specify the Table, Field, and SetID.
Note. The system does not enforce that search keys must exist in that table. You are allowed to enter search keys that are new and do not exist in any table.
Sources for Resolving Input
Source ID |
Select one or more sources that can be used to derive the matrix inputs. For example, if you are defining an input for JOBCODE, you should select the JOBCODE source ID. Every input is defined using at least one source, therefore you must select at least one source. Note. You can leave the label for the input blank, and upon selecting the source, the system will populate the label field with the default label for that source. |
Range Rules
Range Lookup Method |
Select the method that dictates which breakpoint (range) the system should consider as a match. Values are:
|
The following example illustrates how ranges work. Assume we have Percent-In-Range as the input. The typical ranges are 0–40%, 41–60%, 61–80% and 81–100%. For this example, we will only use the last 3 ranges (40–100). When defining these ranges in a configurable matrix, we would only enter the range breakpoints, which in this example are 40, 60, 80 and 100. The system interprets these breakpoints as defining the following ranges:
Range Breakpoints |
Range Breakpoints are equal to |
40 |
All values below 40, up to and including 40. |
60 |
All values greater than 40, up to and including 60. |
80 |
All values greater than 60, up to and including 80. |
100 |
All values greater than 80, up to and including 100. |
Analyzing the Lookup Methods
Assume a worker had a value of 45 percent.
If the method is Use Higher Limit, the system determines that 60 is the first breakpoint higher than 45, and will use “60”.
If the method is Use Lower Limit, the system determines that 40 is the first breakpoint lower than 45 and will use “40”.
If the method is Use Nearest Limit, the system determines that 45 is closest to 40 and will use “40”. (If the worker's percent-in-range had been 55, it would have used “60”.)
When Outside Range
Use First Limit if Under |
Use this option if you want the system to consider the first breakpoint a match for all values lower than the first breakpoint. For example, if the worker had percent-in-range of 20%, it would use “40” if this check box was selected. If the box is cleared, the system will find “no match” for that input. |
Use Last Limit if Over |
Use this option if you want the system to consider the last breakpoint a match for all values higher than the last breakpoint. For example, if the worker had percent–in–range of 120%, the system would use “100” if this check box was selected. If the box is cleared, the system will find “no match” for that input. |
Special Processing
Interpolate Result IDs |
Use this option if you want the system to calculate and return a numerical value that is proportional to the values tied to specific breakpoints. |
Interpolate Result IDs — Example
For this example, let's assume that we have a matrix with the same percent-in-range breakpoints and one output that is a rate.
Note. All values are percentages, unless noted otherwise.
Step |
40 |
60 |
80 |
100 |
1 |
40 |
30 |
20 |
10 |
2 |
50 |
40 |
30 |
20 |
3 |
60 |
50 |
40 |
30 |
4 |
70 |
60 |
50 |
40 |
Now suppose that the worker was on Step 1 and the Percent-in-Range (PIR) was 50. That means the rate could be 40 or 30. However if the Interpolate Result IDs option was set, the system would calculate the ratio of worker's value (50) to the lower limit (40) and use that ratio on the lower rate (40) and return a rate of 35. The worker's PIR of 50 is exactly between the breakpoints 40 and 60, and so the system calculates a rate exactly between the rates of 40 and 30.
If the PIR was 55 (75 percent of the numerical difference between 40 and 60), the system would return 32.50 as the 75 percent rate value between 40 and 60.
Access the Outputs page.
Note. Available results on this page will differ depending upon the matrix type.
Matrix Outputs (Result Columns)
Order |
Enter a numerical value that indicates the order in which the outputs should appear in the matrix. |
*Result ID |
Select a value that the configurable matrix should return as an output. These values come from the Results ID table. |
*Label |
Enter the label that will be displayed in the matrix. |
Type of Data |
This display-only field indicates if the Result ID has a character, number or date format. |
Decimals |
If the result ID has a number format, then you can enter the number of decimal places that you want displayed on the matrix. |
Do not return Results |
Select this check box if the result is to be used as a reference only for a calculation in another result. For example, if you have a PCNTOFBASE type result which uses BASERATE as its reference, you can set this check box on the BASERATE result ID. This means that the calling program will only receive PCNTOFBASE as an output result ID. It will not receive any other output from the matrix. Note. You will see all defined result IDs on matrix displays, even though this check box may be selected for some results. |
Access the Search Keys page.
Use this page to enter the key values against which worker data is matched. In the previous example, the system will check for worker's performance ratings to be 1, 2, 3, or 4.
Note. For market pay matrices, you are allowed to create the matrix without specifying any search keys and output data values. This
is useful when you intend to load data into the matrix from a flat file. In this case you will define the matrix but not specify
search keys and output data. You will still update the status to Active. Then you can load data into it from a flat file.
However, if you change the status of the matrix to Active and you have not defined any search criteria or values, you will
receive a warning.
For more options, review the sections regarding market pay matrices that explain how to load data into a matrix.
See Setting Up and Working with Market Pay.
Matrix Definition
*Enter Keys for: |
Select the input for which you will enter search keys. These values come from the Matrix Definition - Inputs page. You must enter at least one search key for each input (except for market pay matrices). In the previous example, after you have entered keys for performance ratings, you would switch to Percent-In-Range and enter keys for that input. |
Select Values From Prompt Table |
If you defined the Table and Field in the Optional Prompting group box for the selected input, you can click this link to access a search page that lists the values from that table. This link is not available if the input has a key type of Range. |
Search Key Series
*Search Key (Character) |
Enter a value. This will be the key values against which worker data is matched. For example, you would enter rows with key values 1, 2, 3, 4 for the input Performance Rating. You would enter key values 40, 60, 80 and 100 for the input Percent-in-Range. |
Order |
Enter a numeric value that indicates the order in which the search keys will be displayed in the matrix. This field only applies to keys of type Character. Numeric and Date values have an implicit order and do not use this field for display order. |
WildCard |
Select if the system should use the search key as a wildcard. This means that if the worker's data did not match any other key, then the system will use this row as a match. For example, assume that there are 4 departments listed in the matrix as keys 101, 102, 103, and 104. Now if you wanted all workers in all other departments to be handled separately, then enter a fifth key for Dept and make it a wildcard. You can set a wildcard only if the key type was set to Match. Wildcards do not apply for key type of Range. |
Generate Key Combinations |
After you have completed entering keys for all inputs, click this button to generate the key combinations for the configurable matrix. The system automatically takes you to the Data Content page where you can enter values for each result ID for different input combination. |
Generating Key Combinations — Example
For example, if you had one input as Dept with values 101, 102, 103, and 104, and another input of Job Risk with values of High, Med, or Low, and a single output of Rate, then the system would generate the following table of combinations automatically.
Dept |
Risk |
Rate |
101 |
Low |
0 |
101 |
Med |
0 |
101 |
High |
0 |
102 |
Low |
0 |
102 |
Med |
0 |
102 |
High |
0 |
103 |
Low |
0 |
103 |
Med |
0 |
103 |
High |
0 |
104 |
Low |
0 |
104 |
Med |
0 |
104 |
High |
0 |
Now you can simply enter the rates and you do not need to manually enter Dept IDs or Risk levels.
Access the Load Configurable Matrix Keys page.
To load values from a specific prompt table:
Select the Prompt Table.
Select the Prompt Field.
Click Search.
In the Select Key Values to Load grid, select the check boxes for the values you want to load.
Click OK.
Access the Data Content page.
This page lists the combinations of search keys for all inputs that the matrix will evaluate. For each combination, it lists all outputs fields. You can add the character, date, or numerical values of each output here.
Note. All inputs appear to the left of the Default column and all outputs appear to the right of the Default column.
Default |
(Optional) Select the row that you want to use as default results if the system does not find a match between the worker data and any combination of input rows. In the previous example, you can choose a default should a worker be above or below the 40 and 100 ranges or who does not have any performance rating. Important! You can only select one row as a Default. |
Access the View page.
After you have entered all data content for outputs, you must save the matrix. You can view the matrix on this page only after you have saved it.
When you click the Display Saved Matrix button, the results generated are from the last saved version of the matrix.
Important! This page will display only the last saved version of the matrix.
There are special rules to use when you create rate matrices and salary increase guidelines matrices. There are specific result ID values that must exist in each type of matrix in order for the system to be able to process the matrix. This is required because the components where these matrices are invoked will look for and process specific result IDs. If the correct result IDs do not exist, the calling component will not know how to process the output.
Rate Matrix
This table lists the result IDs that must exist in a rate matrix which you plan to associate to a rate code. The list of expected result IDs is based on the Rate Code Type:
Note. You do not need every result ID for each type. You only need one of these result IDs.
Rate Code Type |
One of these Result IDs must exist |
Flat Rate |
|
Hourly Rate + Flat Amount |
|
Hourly Rate |
|
Percent |
INCREMENT_PERCENT |
Points |
NEW_POINTS |
If you create a rate matrix that uses calculations, such as result IDs with the type of PERCENT_TO_APPLY, INCREMENT_PERCENT, and so on, you must select the Do not return Results check box for all other result IDs. This is necessary because the system requires that a rate matrix attached to a rate code can have only one result ID returned.
Salary Increase Matrix Attached to a Group Budget
The result IDs in the matrix must match the Rate Code Type. This table illustrates the result IDs that are allowed based on Rate Code Type:
Rate Code Type |
Allowed Combinations of Result IDs |
Flat, Hourly, or Flat + Hourly |
The matrix must have one of the following three combinations of result IDs:
|
Percent |
The matrix must have one of the following two combinations of result IDs:
|
Points |
The matrix must have one of the following two combinations of result IDs:
|
When the salary increase matrix is attached to a group budget, the system will always look for the DEFAULT_PERCENTAGE, DEFAULT_AMOUNT, or DEFAULT_POINTS result ID, and will use that result ID to calculate the budget or assign increases.
However, the system performs special processing when the matrix includes both DEFAULT_PERCENTAGE and AMOUNT result IDs. In this case, the AMOUNT result ID is treated like a lump sum increase amount. Since every row will have both a default percentage and an amount result, the system will first check to see if the value for AMOUNT is greater than 0. If the value is greater than 0, the system uses that value as a lump sum increase amount on the group budget. If the AMOUNT value is 0, then the system uses the value for DEFAULT_PERCENTAGE as a change percentage. This allows you to create a salary increase matrix which handles the cases where worker's compa-ratio or percent-in-range values are outside the standard guidelines.
This example illustrates a salary increase matrix that includes percent-in-range values that are outside the standard guidelines.
Perf Rating |
0 |
50 |
100 |
1000 |
||||||||||||
Min Pct |
Dflt Pct |
Max Pct |
Lump Sum |
Min Pct |
Dflt Pct |
Max Pct |
Lump Sum |
Min Pct |
Dflt Pct |
Max Pct |
Lump Sum |
Min Pct |
Dflt Pct |
Max Pct |
Lump Sum |
|
1 |
0.00 |
0.00 |
0.00 |
20.00 |
6.00 |
6.50 |
7.00 |
0.00 |
5.00 |
5.50 |
7.00 |
0.00 |
0.00 |
0.00 |
0.00 |
6.00 |
2 |
0.00 |
0.00 |
0.00 |
18.00 |
5.00 |
5.50 |
6.00 |
0.00 |
4.00 |
5.00 |
6.00 |
0.00 |
0.00 |
0.00 |
0.00 |
4.00 |
3 |
0.00 |
0.00 |
0.00 |
16.00 |
4.50 |
5.00 |
5.50 |
0.00 |
4.50 |
4.50 |
5.00 |
0.00 |
0.00 |
0.00 |
0.00 |
2.00 |
4 |
0.00 |
0.00 |
0.00 |
6.00 |
3.00 |
3.50 |
4.00 |
0.00 |
3.00 |
3.50 |
4.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
Note that the matrix includes an explicit breakpoint with Percent in Range (PIR) value of 0. This is required to handle all workers whose PIR is negative as compared to their salary range. Also there is a breakpoint with a value 1000. This is required to handle all workers whose PIR is greater than 100. The value 1000 is just an arbitrarily high value chosen to ensure we can capture all possible PIR values greater than 100.
Note how the LumpSum values are non-zero only for breakpoints 0 and 1000. All other breakpoints have LumpSum=0. This means that worker whose PIR is between 0 and 100 will get increases based on DEFAULT_PERCENTAGE guideline, while those whose PIR is outside the standard range (less than 0 or greater than 100) will get a flat amount increase based on the LumpSum AMOUNT guideline.
This section discusses how to create new matrices by copying existing matrices.
Page Name |
Object Name |
Navigation |
Usage |
WCS_LK_TBL_CLONE |
Set Up HRMS, Common Definitions, Configurable Matrices, Copy Matrix |
Copy matrices. |
Access the Copy Matrix page.
To copy a matrix:
Select the matrix that you want to copy from the Available Matrices.
In the Copy To... group box, enter a Matrix Name, Effective Date, and Description for the new matrix.
In the Matrix Components to Copy group box, select one of these values:
Copy Structure Only: This includes just matrix details, input and output definitions.
Copy Structure and Keys: This includes the structure plus all search key values for every input.
Copy Structure, Keys, and Data: This clones the entire matrix.
Click Copy Matrix and the system will create the copy.
You will get a confirmation message and then see a new link “Edit New Matrix <<matrix name>>. You can click the link to begin editing the new matrix immediately.
This section provides the steps to take to build a special rate matrix using the PERCENT_TO_APPLY result ID and RELATED_EMPLOYEE_INFORMATION sources types.
For this tutorial, let us assume you want to set up a rate code of COLA01 to track the cost of living allowance (COLA) for all workers within a certain salary plan. However, you want the actual rate for each worker to be based on the worker’s Step in the salary grade and the current minimum hourly rate for that grade. You do not want to create a rate code with fixed (static) rates. Since workers can be on different grades and different steps, you need the rate to be dynamically set at the time the rate code is defaulted onto the worker’s compensation record.
Understanding the High-Level Steps to Build this Special Rate Matrix
These are the high-level steps involved in this tutorial.
Define the source that will refer to the minimum hourly rate (by grade range) for the worker.
Define the result that will use that source.
Define the rate matrix using the percentage calculation.
Define the COLA01 rate code, and associate the rate matrix to it.
This ensures that the rate will always be the default value based on worker’s grade and step.
Update the salary plan definition and add the new rate code to the step components
Default pay components for appropriate workers.
The rules used in this example are:
For workers on Step 1 : Rate = (worker’s grade min ) * 2%.
For workers on Step 2 : Rate = (worker’s grade min ) * 3%.
For workers on Step 3 : Rate = (worker’s grade min ) * 4% .
For workers on Step 4 : Rate = (worker’s grade min ) * 5%.
For all other workers, Rate = 0.
To achieve this rule set, the rate matrix will be as follows:
Source 1 Step |
Result 1: Grade Range Min |
Result 2: Percent To Apply |
1 |
EMPL_GRD_MINHRLY |
2 |
2 |
EMPL_GRD_MINHRLY |
3 |
3 |
EMPL_GRD_MINHRLY |
4 |
4 |
EMPL_GRD_MINHRLY |
5 |
* |
EMPL_GRD_MINHRLY |
0 |
Step 1: Create the Source for the Worker Grade Range Minimum (Hourly) Rate
Since we do not have an existing source that refers to a worker’s grade range minimum hourly rate, we will create it.
Navigate to the Define Sources page (Set Up HRMS, Common Definitions, Configurable Matrices, Define Sources), and click Add a New Value.
Enter EMPL_GRD_MINHRLY as the Source ID.
Select EMPRELATED as the Source Type ID.
Fill in all other required fields.
On the tree, open Job History, Salary Grade - Salary Grade Table, and then click Min_RT_Hourly (minimum pay rate hourly).
Click Save.
Now we have the source.
Step 2: Create the Result to Refer to the New Source
We already have the PERCENT_TO_APPLY result ID. However, this result can only work in conjunction with another result ID. We can only apply the percentages to another result ID, not to any source.
Therefore, we need to create a result ID that refers to the new source.
Navigate to the Define Results page (Set Up HRMS, Common Definitions, Configurable Matrices, Define Results and click Add a New Value.
Enter EMPL_GRD_MINHRLY as the Result ID so we know this is referring to worker’s grade range minimum.
Select SOURCE as the Result Type ID.
Click Add a New Value.
Fill in all other required fields.
On the Results Definition page, select EMPL_GRD_MINHRLY ( hourly rate of grade minimum) as the Source ID .
Select Rate Tables in the Results Usage group box.
Click Save.
You now have the result.
Step 3: Define the Rate Matrix
Now we are ready to create the rate matrix.
Navigate to the Define Matrices page (Set Up HRMS, Common Definitions, Configurable Matrices, Define Matrices), and click Add a New Value.
Enter the name COLA001 (this is the Matrix name, not the rate code name, but in this example to make it easy, we will use a similar name).
Fill in all required fields on the Matrix Definition page.
Select the Inputs tab.
Since we are using just the worker’s salary grade step to differentiate the rates, we only need a single source and that is the Step. Select STEP as the single source ID in the Sources for Resolving Input group box.
Select the Outputs tab.
Select EMPL_GRD_MINHRLY as the first Result ID. Enter label Empl Grd Min.
Click Add a Row icon (+) to add another row, and select PERCENT_TO_APPLY— this is the formula we want to use.
Enter COLA as the Label for that result.
Select EMPL_GRD_MINHRLY as the operand for the formula (Uses Result)
Go to the Search Keys page.
Enter the Search Key (Number); these are the actual step numbers. In this example, we entered values of 1,2,3,4 and * as the wildcard.
Note. In this example, we are using a wildcard as the last row. So workers who are not on any step will be handled with that entry.
Click the Generate Key Combinations button.
The system has automatically taken you to the Data Content page.
Enter the percentages you want to apply for each step.
Click the Matrix Definition page and change the Status to Active.
Click Save.
The matrix is now ready for use.
Step 4: Create the COLA01 Rate Code
You now need to create the rate code for this example.
Navigate to the Define Comp Rate Code Table page (Set Up HRMS, Foundation Tables, Compensation Rules, Comp Rate Code Table), and click Add a New Value.
Enter COLA01 as the name for this rate code.
Enter or select these values for these fields in the Compensation Rate Code Information group box:
Effective Date: Enter the effective date for this rate code.
Status: Select Active.
Description: Enter COLA Rate Code.
Base Pay: Select this check box.
Rate Code Type: Select Hourly Rate.
Rate Code Class: Select BASSAL (elements of base salary).
Calculated By: Select Rate Matrix.
Rate Matrix Name: Select COLA001.
Currency: For this example, select USD.
Frequency: Select H (hourly).
Click Save.
Step 5: Update Salary Plan Definition
You are now ready to add the new COLA01 compensation rate code to the salary step components.
Navigate to the Define Salary Grades component (Compensation, Base Compensation, Maintain Plans, Define Salary Grades), and search for the salary compensation plan to which you want to associate the new rate code.
Click the Salary Step Components tab.
Click the Add a Row icon (+) and add the COLA01 rate code to Step 1 of this salary step.
Click the Next Row icon to navigate to next Step and add the COLA01 rate code for each additional step.
Click Save.
Step 6: Set the Default Pay Component for One Worker in One Step
In this example, we are using the worker Simon Glenn, who is on step 3 of grade 1. We will set the default pay components for him so that the new rate code is added to his compensation record.
First, let’s review the salary ranges for the grade:
Frequency |
Minimum |
Midpoint |
Maximum |
Annual |
24,960.00 |
33,280.00 |
41,600.00 |
Monthly |
2,080.00 |
2,773.34 |
3,466.67 |
Daily |
96.00 |
128.00 |
160.00 |
Hourly |
12.00 |
16.00 |
20.00 |
Simon’s current compensation record is as follows:
Starting Annual Salary: 37,440.00
Add an effective dated row of 07/01/2003.
Add the COLA01 rate code to this row.
Click the Default Pay Components button, the system enters a rate of 0.48 USD as the hourly COLA rate.
Effective Date |
Frequency |
Rate Code to be Applied |
Compensation Rate (for rate code) |
01/01/2003 |
Annual |
NAHRLY |
18.000000 |
07/01/2003 |
Hourly |
COLA01 |
0.800000 |
Since Simon is on step 3, using our matrix, that rate was based on 4% of the minimum hourly rate on his grade. Testing this scenario against the rate table, we would get a rate of (0.12 USD * 4% ) = 0.48 USD as the hourly rate amount returned by the matrix.
All new workers who get this rate code will now get the appropriate COLA pay.