Gain insight into streamlining your vacation accrual configurations using table V_T559L. Understand four widespread business scenarios and solutions available to accurately calculate vacation accruals that involve unique requirements.
Key Concept
Table V_T559L generates separate screens to configure quota types, base entitlements, validity/deduction intervals, and selection rules to implement vacation accrual policies in an SAP system.
Note
This article covers moderately complex scenarios. I assume readers know basic concepts and settings surrounding SAP standard configuration for quota and table
V_T559L. For highly complex scenarios that are not met by standard table configuration alone, you can modify the time schema and related PCRs to enhance your solution. For basic and detailed information on PCRs and Editor for PCRs (PY-XX-TL), see documentation available at
https://help.sap.com/printdocu/core/Print46c/en/data/pdf/PAXX/PYINT_REGEL.pdf.
Most companies allot vacation entitlement to employees based on a policy. Calculating vacation accrual can be tricky. Each employee requires a different set of rules and policies to abide by because of several factors, such as work schedule, start date, and work experience. Imagine the amount of time it takes to manually create customized vacation policies for each employee.
Many people don’t realize that their SAP system is already equipped to meet these challenges with minimal to zero ABAP programming. SAP Releases 4.6B and above offer pre-configured permutations and combinations to satisfy simple and complex business processes related to calculating vacation accrual.
Users frequently develop complex ABAP programs, Personnel Calculation Rules (PCRs), and user exits to accommodate the diverse vacation accrual requirements within a single company. Oftentimes, these steps are unnecessary and are used to design even the most straightforward business needs. Standard SAP base table V_T559L provides one-step configuration for common business needs.
You can reduce dependency on complicated ABAP programming by integrating all the interdependent, customized screens and SAP’s permutations and combinations available in table V_T559L. Based on my experience, I have identified four challenges users face when configuring vacation policies. I’ll identify four common business scenarios used in building vacation policies: configuring vacation accrual based on anniversary date, accelerated vacation, daily hours worked, and cap policies. For each business scenario, I’ll provide scenario details, expected results, a solution, and the steps required to implement the solution.
Note
Table V_T559L provides one-step configuration for the following business needs:
- Define absence quota types
- Set validity and deduction intervals
- Define base entitlements
- Define generation/selection rules
Scenario 1: How to Configure Vacation Rules Based on Anniversary Dates
Details of business requirement: An anniversary date is the date an employee completes his or her year of service with the company. The anniversary date is important because company policies may grant employees vacation time on the basis of number of years of service. A common example is an employee accrues 80 hours of vacation time from zero to two years of service, and 120 hours from three to five years of service.
Expected results: One anniversary year for an employee yields the following expected results:
- 04/02/2007 to 04/01/2008 = 80 hrs
- 04/02/2008 to 04/01/2009 = 80 hrs
- 04/02/2009 to 04/01/2010 = 120 hrs
Solution: Step 1. Maintain infotype 0041 with date type 01 (hire date), as shown in Figure 1. Date type 01 is used as an entry date in the system. To view further documentation on SAP standard Entry feature, execute transaction PE03 and follow the menu path Feature ENTRY>Documentation.

Figure 1
Date type 01 (hire date)
Step 2. Define base entitlement. To define base entitlement, follow menu path SAP Ref Img>Time Management>Time data recording & Admin>Managing time accounts using attendance/absence quota>Calculating absence entitlement >Rules of generating absence quotas>Set Base entitlement>Base entitlement for absence quota generation.
Now you are ready to configure the base entitlement (Figure 2) using date type to define related to period. View the related to period tab at the bottom of the screen (Figure 2). Click on the Rel. to date type button and select 01 Hire Date. In the Lngth field, enter 12, and choose Months in the drop-down list. Completing this process ensures that the employee has a base vacation accrual of 80 hours for his or her anniversary date until the employee reaches the seniority of two years, when vacation accrual begins to increase with the anniversary date.

Figure 2
Define base entitlement using date type 01
Step 3. Define Validity Interval and Deduction Interval using a combination of Date type and Base period (Figure 3). The Valid from date should be the date type from infotype 0041 (01 — hire date). Under the Valid from section of the Validity interval tab on your screen, click on the Date type button and select 01 Hire Date in the corresponding field. Locate the Valid to section of your screen and click on Base period. Make sure you also choose the End button to indicate your selection is an end date, instead of a start date.

Figure 3
Define validity period using a combination of date type and base period
The most common mistakes users make are selecting Date type (instead of Base period) and Relative position (instead of End) to define the Valid to period, as illustrated in Figure 4. As you can see, problematic results occur when these mistakes are made. By selecting Relative position as 12 months, the first year is actually calculated as two years, which in turn, incorrectly calculates vacation accrual (Figure 5).

Figure 4
One common mistake is to use Date type to define Valid to period and relative position

Figure 5
Results of incorrectly selecting Relative position as 12 months
Without the use of Relative position, the date 04/02/2008 is used as an end date of the first year, as well as the start date of the second year. This is an inaccurate representation of periods. Time evaluation now has two choices on every 04/02 to add on to an old record or create a new record. In this situation, the system creates strange results (Figure 6).

Figure 6
Misrepresentation of time periods, due to neglecting Relative position setting during configuration
On the other hand, a combination of date type and base period as shown in Figure 3, the system generates the following records:
- 1st year: 04/02/2007 to 04/01/2008
- 2nd year: 04/02/2008 to 04/01/2009
The end date of the first year is one day before the anniversary date (04/01/2008). On the anniversary day (04/02/2008), the system creates a new record in infotype 2006. See Figure 7 for details on infotype 2006.

Figure 7
Correct representation of validity start and end date
Note
Dynamic action is a tool used to dynamically populate default value in an infotype field. Use dynamic action T588Z to populate the date types with default values. Use transaction SPRO and follow this menu path to define a dynamic action: Personnel Management>Customizing Procedure>Dynamic Action.
Scenario 2: How to Configure Accelerated Vacation
Details of business requirement: This scenario occurs when a company has a policy to grant accelerated vacation based on previous years of service experience with other employers. For example, employees X and Y join a company on 04/02/2007. Y has three years of industry experience, receiving accelerated vacation upon joining. Employees X and Y require unique vacation accrual calculations, even though they started the same day.
Expected results: Employee X has a standard rate of vacation accrual:
- 04/02/2007 to 04/01/2008 = 80 hours
- 04/02/2008 to 04/01/2009 = 80 hours
Employee Y has an accelerated rate of vacation accrual:
- 04/02/2007 to 04/01/2008 = 120 hours
- 04/02/2008 to 04/01/2009 = 120 hours
Solution: Step 1. Define new date type 06 (vacation accrual date) in table V_T548Y. To create date types, execute transaction SPRO and follow menu path Personnel Management>Personnel Administration>Evaluation basis>Date specification>Define date type.
Maintain date type Vacation accrual date in infotype 0041, as follows:
- For X as 04/02/2007
- For Y as 04/02/2004
Step 2. Define and maintain base entitlement and validity period using date type 06. Follow the same procedure listed in step 2 of scenario 1. The only difference is you are using date type 06 (not date type 01) in this scenario to maintain base entitlement. Activate user exit EXIT_SAPLHRLV_006. Code custom logic in include ZXPLAU07 to pass date type 06 (vacation accrual date) as the default hire date used only for quota calculations. Activate user exit (transaction CMOD) and use menu path Enhancement>HRPTIM03>Exit_ SAPLHRLV_006.
Tip!
The logic behind the ABAP code that you write for the include ZXPLAU07 is the following: look for date type 06 in the current record of infotype 0041. If it exists, then take that date and apply it as the hire date for quota calculations. If the date type 06 isn’t there, skip the user exit program and use date type 01 for calculations.
Note
Transaction SMOD allows you to create include ZXPLAU07 and display enhancement HRPTIM03; however, use transaction CMOD to activate user exit EXIT_SAPLHRLV_006.
In my example, it is essential to change date type 01 to 06 (vacation accrual date) because I use date type 06 for seniority calculations of vacation accrual. The reason 06 is used instead of 01 is because standard date type 01 is configured as the entry date in feature Entry — the base for seniority calculations in HR, Time, and Benefit modules.
User exit Exit_SAPLHRLV_006 is used only for quota calculations, so as to not disturb other HR calculations based on entry dates of infotype 0000 or date type 01 of infotype 0041. By default, SAP uses infotype 0000 or date type 01 from feature Entry for the vacation accrual program. SAP provides user exits, such as Exit_SAPLHRLV_006, to override this entry date. It is effective only for quota calculations — other programs are unaffected by this activation. However, the user exit is required if you use date type 06 instead of 01 for this scenario. The user exit is not required for using date type 01 in scenario two, but your other programs may inadvertently be affected by using 01. Figures 8 and 9 illustrate the end results of configuring vacation accrual for employee X. Figures 10 and 11 show the results for employee Y, with accelerated vacation accrual.

Figure 8
Employee X with date type 06 for 04/02/2007

Figure 9
Infotype 2006 record for employee X

Figure 10
Employee Y with date type 06 for 04/02/2004

Figure 11
Infotype 2006 record for employee Y
To get the results shown in Figures 8-11, you need to activate EXIT_SAPLHRLV_006 and write a few lines of ABAP code in the include ZXPLAU07. A practical solution for accurately calculating accelerated vacation (scenario 2), is to define and use a date type other than 01 (in my example, date type 06 is used instead). Once you have defined a new date type (06) to be used only for vacation calculations, the system needs to recognize this change and use date type 06 to determine seniority. User exit EXIT_SAPLHRLV_006 provides a window to key in custom logic for the date type to be used in determining seniority. If you do not activate this user exit, the system continues to use date type 01 to calculate seniority.
Note
Date type 01 is also used as a standard SAP entry date in many programs, including the function module HR_ENTRY_DATE. To avoid negatively affecting other areas of configuration and causing confusion among users, it is not recommended to change the dates of the date type 01 only for calculating vacation accruals. To learn more, execute transaction SE37 and follow the menu path Function Module HR_ENTRY_DATE>Go to>Documentation>Functional module documentation.
Scenario 3: How to Accrue Vacation on Daily Hours Worked
Details of business requirement: In this scenario, an employee is eligible for a vacation accrual policy that is calculated based on the percentage of daily hours worked. For example, if an employee works for 8 hours per day, then 4.22% of daily hours worked are added to vacation accrual (8*0.0422=0.3376). Therefore, 0.3376 hours are added every day in their vacation bucket.
Expected results: Time evaluation calculates the vacation accrual using daily hours worked and adds it to the vacation bucket.
Solution: Step 1. Store the percentage of daily hours worked (in this example, 4.22%) as a constant value in base entitlement table V_T559E (Figure 12).

Figure 12
Store percentage of daily hours worked as constant value
Step 2. Create a PCR to store daily hours worked in time type (Figure 13). PCRs are usually different for every company’s vacation accrual policy. This example is designed to capture time based on employee subgroup and processing type based on the following business rules:
- Straight time: Includes regular hours worked and paid absences; excludes overtime, unpaid absences, and holidays worked
- Hours worked: Includes regular hours, overtime, and holidays worked; excludes paid and unpaid absences
- All hours paid and worked: Includes all hours; excludes unpaid absences
Note
You build the logic based on business rules around hours worked. Users must have knowledge of PCRs and other aspects of time evaluation, such as the various tables used to store hours in time evaluation, concept of time pairs, time types, processing types and time evaluation schemas, and operations that are used to process hours in PCRs to successfully build the logic.

Figure 13
PCR to store daily hours worked in table TES
Step 3. Insert newly created PCR ZA05 before function Quota in the time evaluation Edit Schema screen (Figure 14). This ensures the processing of PCR ZA05 in the time evaluation run. Schema YM04 helps run time evaluation. Use transaction PE01 to edit the schema YM04. Time type 6000 is calculated in the output of PCR ZA05 after time evaluation is run for one day (Figure 15).

Figure 14
Insert PCR ZA05 before function QUOTA

Figure 15
Daily balance of time type 6000
Step 4. Use the newly created time type 6000 as a multiplying factor in the Accrual entitl. tab of the Selection rules screen in Figure 16.

Figure 16
Use time type as a multiplying factor
Function QUOTA uses the value 8 (hours worked) of time type 6000 and multiplies it by the constant value (0.0422) stored in base entitlement to generate the output shown in Figure 17. See Figure 18 to view infotype 2006 after time evaluation is run for a single day.

Figure 17
Accrue vacation using formula 8*0.0422 = 0.3376 hours

Figure 18
Infotype 2006 record after time evaluation has run for a day
Scenario 4: How to Put a Cap on Vacation Accrual
Details of business requirement: This process is an extension of scenario 3, with additional modifications. For example, a vacation policy states that an employee can accrue up to 0.30000 hours on a daily basis and no more than that. 0.30000 is the cap value for vacation accrual.
Expected results: Time evaluation automatically calculates and transfers the vacation accrual granted (per daily hours worked, as in scenario 3) to cap at 0.30000 hours.
Solution: Step 1. Activate table V_T559L to access the Change View “Selection rules”: Details screen via the Dialog Structure on the left side of your screen by clicking on the Selection rules folder. Under the Accrual period tab in the screen that appears, you must select Daily. See Figure 19 for details.

Figure 19
Accrual period is marked Daily
Step 2. Now click on the Accrual entitl. tab and locate the Reduction, rounding, max. entitlement section at the bottom of your screen (Figure 20). Enter the maximum accrual entitlement limit (in this case, 0.30000 hours) in the Max.entitlement field to the left of Hours.

Enter the maximum entitlement cap 0.30000
See Figure 21 for a detailed view of all generated results, including data from scenarios 1-3. Figure 22 shows how infotype 2006 looks when time evaluation has run for a day with a capped vacation accrual rule. If you wish to configure a limit on maximum entitlement per generation period, enter the value (in this case, 80.00000 hours) in the Max. entitl. field within the Total entitl. tab (Figure 23). In my example, the generation period is 04/02/2007 to 04/01/2008.

Figure 21
Detailed view of vacation accrual cap 0.30000

Figure 22
Infotype 2006 after time evaluation has run for a day with a capped accrual rate, as shown in the Number column (0.30000)

Figure 23
Enter the Max. entitl. of 80.00000 on the Total entitl
Abhijit Parab
Abhijit Parab is a certified SAP HR consultant. He works as a senior SAP HR consultant with Fujitsu Consulting. He has a master’s degree in human resources management and has 15 years of business experience. He has implemented and supported SAP Payroll (USA and India) and the Personnel Time Management module.
You may contact the author at abhijit.parab@us.fujitsu.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.