Global Absence Accrual Matrix Formula
The Global Absence Accrual Matrix fast formula can be used in conjunction with the accrual matrix to implement requirements such as band change proration, FTE proration' and so on.
An organization might have a vacation plan in which workers enrolled into the plan can accrue days every year based on their grade. If the grade changes mid-period, then the total accrual needs to be prorated based on the amount of time that the worker spends in each band. This can be achieved by defining an accrual matrix that is based on grades and using a combination of accrual event formula and accrual matrix formula.
Configuration Point in HCM Cloud
If you have created this formula, you can attach this formula to the absence plan definition.
Navigation
- In the Absence Administration work area, click Absence Plans to open the Absence Plans page.
- On the Search Results section toolbar, click Create to open the Create Absence Plan dialog box.
- In the Plan Type field, select Accrual.
- Click Continue.
- On the Edit Absence Plan page Accruals tab there is a table in the Accrual Matrix section.
- Select the defined formula in the Accrual Formula column in the table.
Contexts
The following contexts are available in this formula type:
Context Name | Data Type |
---|---|
ABSENCE_ENTRY_ID | Number |
ABSENCE_TYPE_ID | Number |
ACCRUAL_PLAN_ID | Number |
DATE_EARNED | Date |
EFFECTIVE_DATE | Date |
END_DATE | Date |
ENTERPRISE_ID | Number |
HR_ASSIGNMENT_ID | Number |
HR_RELATIONSHIP_ID | Number |
HR_TERM_ID | Number |
JOB_ID | Number |
LEGAL_EMPLOYER_ID | Number |
LEGISLATIVE_DATA_GROUP_ID | Number |
ORGANIZATION_ID | Number |
PAYROLL_ASSIGNMENT_ID | Number |
PAYROLL_ID | Number |
PAYROLL_RELATIONSHIP_ID | Number |
PAYROLL_TERM_ID | Number |
PERSON_ID | Number |
START_DATE | Date |
Input Values
Variable Name | Data Type | Description |
---|---|---|
IV_ACCRUAL | Number | Accrual value received from the accrual matrix. |
IV_CARRYOVER | Number | Carryover limit received from accrual matrix. |
IV_CEILING | Number | Ceiling limit received from the accrual matrix. |
IV_ACCRUALPERIODSTARTDATE | Date | Start date of accrual period. |
IV_ACCRUALPERIODENDDATE | Date | End date of accrual period. |
IV_CALEDARSTARTDATE | Date | Start date of accrual calendar year. |
IV_CALEDARENDDATE | Date | End date of accrual calendar year. |
IV_PLANENROLLMENTSTARTDATE | Date | Start date of enrollment. |
IV_PLANENROLLMENTENDDATE | Date | End date of enrollment. |
IV_BAND_CHG_DT1* | Date | If the accrual matrix band definition consists of grades or derived factors length of service or age, then this input value fetches the date on which worker has had a change in any of these factors within the period. |
IV_BAND_CHG_BEFVAL1* | Number | Accrual value as per the matrix before IV_BAND_CHG_DT1. |
IV_BAND_CHG_AFTVAL1* | Number | Accrual value as per the matrix after IV_BAND_CHG_DT1. |
IV_EVENT_DATES | Date_Number | Array of dates returned by the Accrual Event formula. |
IV_ACCRUAL_VALUES | Number_Number | Array of accrual values fetched from the accrual matrix as of the dates contained in the accrual event dates array. |
IV_ACCRUAL_CEILING | Number | Annual accrual limit from the accrual matrix. |
Return Variables
Variable Name | Data Type | Description |
---|---|---|
accrual | Number | Amount of accrual that the worker accrues in the specific period. |
ceiling | Number | Maximum time that a worker can accrue. |
carryover | Number | Maximum unused time that a worker can transfer to the next accrual term. |
adjustmentvalues | Number_Number | Array of balance adjustments that when returned by the formula is applied against the accrual plan enrollment. |
adjustmentdates | Date_Number | Array of dates associated with the array of balance adjustment values to specify the dates on which each of the balance adjustments need to be applied. |
adjustmenttypes | Text_Number | Array of adjustment reasons used for the balance adjustments. |
absvalues | Number_Number | Array of absence accrual usages that can be applied against an accrual plan enrollment. Useful for cases where the absence entry itself is not captured in Global Absence Management, but rather via other modules (such as payroll element entries) or even third party systems and the absence deduction against the accrual plan needs to happen in HCM Cloud. When using this, it should be noted that absence entries should not be made for the same dates. |
absdates | Date_Number | Array of dates associated with the absence accrual usages on which the deduction is applied. |
accrualCeiling | Number | Maximum time that a worker can accrue |
Sample Formula
Requirement: The organization has an accrual plan for Vacation where-in workers accrue a set number of days every year depending on the grade level that they are in. If the worker changes grade within a year, then the accrual needs to be prorated depending on the days spent in each grade. Also, the total accrual value needs to be prorated by FTE and rounded to two decimal places.
Solution: A Global Absence Accrual Matrix formula such as the one below can be used.
FORMULA NAME: ANC_ACCMAT
FORMULA TYPE: Global Absence Accrual Matrix Formula
DESCRIPTION: This formula returns the prorated accrual value for Vacation plan with band change proration.
DEFAULT FOR IV_CALEDARSTARTDATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR IV_CALEDARENDDATE IS '4712/12/31 00:00:00' (date)
DEFAULT FOR IV_EVENT_DATES IS EMPTY_DATE_NUMBER
DEFAULT FOR IV_ACCRUAL_VALUES IS EMPTY_NUMBER_NUMBER
DEFAULT FOR PER_ASG_FTE_VALUE IS 1
INPUTS ARE IV_ACCRUAL, IV_EVENT_DATES, IV_ACCRUAL_VALUES, IV_CALEDARSTARTDATE (date), IV_CALEDARENDDATE (date)
i = 1
j = 2
ln_accrual_total = 0
WHILE IV_EVENT_DATES.EXISTS(j)
LOOP
(
ln_accrual_total = ln_accrual_total + ( (DAYS_BETWEEN(IV_EVENT_DATES[j], IV_EVENT_DATES[i]) + 1) * IV_ACCRUAL_VALUES[i] )
i = i+1
j = j+1
)
ln_term_duration = DAYS_BETWEEN(IV_CALEDARENDDATE, IV_CALEDARSTARTDATE) + 1
ln_accrual = PER_ASG_FTE_VALUE * (ln_accrual_total / ln_term_duration)
accrual = ROUND(ln_accrual, 2)
RETURN accrual