Human Capital Management Blogs by Members
Gain valuable knowledge and tips on SAP SuccessFactors HCM suite and human capital management market from member blog posts. Share your insights with a post of your own.
Showing results for 
Search instead for 
Did you mean: 
Active Contributor
I have implemented the Time Off solution for a big client (more than 15k employees) where they have built heavily customized logic in SAP HCM to handle their Time Management. Therefore I would like to start the series of the blog to share how to configure Time Off to handle various complex scenarios in EC.

Useful documents:

Earlier, SAP provided 2 different documents:

  • One is for Implementing Time Off

  • One is for Rule Functions in Time Off.

However now in H1 2021, I saw SAP combines both into Implementing Employee Central Time Management. The document is very useful, however it will require a lot of time to understand it 😄

You can google or refer the below  link.

The Notes on Rule Functions in Time Off are very important to power your Accruals. Understanding how it works and how to use are crucial.

One of the most key rules I usually use are:
- Calculate Average Value For Numeric Job Info Field()
- Get Absence In Days For Period Based On Calendar Days()

Some complex requirements that you can handle in Time Off Accrual:

Basing on the outcome I have configured for this project, the following requirements are able to handle by Time Off.

  • Handle No Paid Leave (NPL) with cut-off date for many differently of Leaves.

  • Can handle NPL which impact to Length of Service (seniority).

  • Full and Part-time conversion in same years when NPL are applied both in FT and PT.

    • Need to accumulate both NPL in FT and PT and check with cut-off.

  • Promotion from lower Job Grade to higher Job Grade.

  • Carry forward remaining / overconsumed when FT - PT mid year conversion.

  • Length of Service (LOS) is changed in mid of year.

    • until 31 Jul, entitle for 15 day per year only.

    • From 1st Aug, entitle for 18 days per year.

    • In other words, LOS can jump to next rank at any time (due to NPL cut off). Please refer below example.

      • Emp joins in 1st Jun 2020.

        • EmpA applied 30 NPL Days in 2024 (more than cut-off):

          • Then LOS = 5 year from 1st Jul 2025.

        • EmpB applied 30 NPL Days but each year 10 days only (less than cut-off):

          • Then LOS = 5 year still start from 1st Jun 2025.


Today, I would like to share how to handle NPL cut-off.

  • Each type of NPL has different cut-off (All are calendar days).

    • Other NPL:         15 days

    • Hosp NPL:          50 days.

    • Maternity NPL:    100 days

  • Only when employees apply more than cut-off, the Annual Leave will be prorated accordingly.

  • The NPL cutt-off is also impact to LOS.

  • However in this blog I will share how to handle proration. The impact of NPL to LOS i will share later.


If we handle this logic via If ELSE in Accrual, it will end up with so many scenarios. I would say it will not be possible to do, especially when you need to consider NPL impacting to LOS.

  • Employees can work for company 20, 30 years, etc. Some employees apply one type of NPL, some apply many different NPL, etc.

Therefore we should create a MDF table for mapping and then use Lookup function.

  • Then the final figure returning after mapping with MDF is valid figure to use. Therefore no more IF ELSE required in Accrual rule anymore.

How to handle NPL cut-off:

I would like to share how to handle proration in main Accrual Rule only. The hiring and termination Accruals will need to handle a bit different. Please take note of that.

The solution will have 4 main steps below:

  1. Using Get Absence in Days for Period based on Calendar Days for Time Types:

    • Get NPL for both FT and PT.

  2. Creating a MDF table for mapping.

    • There is a mapping for 366 records.

      • 0-14, return value 0 for all types of NPL.

      • 15 above:

        • return 15 and corresponding value for NPL.

        • 50+: return 50 and corresponding value for Hosp NPL.

        • etc.

    • NoOfDay Cut_off_NPL cust_Cut_off_NPL_Hosp cust_Cut_off_NPL_Maternity
      0 0 0 0
      1 0 0 0
      14 0 0 0
      15 15 0 0
      49 49 0 0
      50 50 50 0
      51 51 51 0
      99 99 99 0
      100 100 100 100
      101 101 101 101
      102 102 102 102

3. Get number of NPL for PT only.

4. Similar to step 2 above:

    • mapping also but mapping for all negative values to 0.

    • BUT positive values are as it.

    • This is a special logic to handle FT and PT converted within a year.

    • NoOfDay Cut_off_NPL cust_Cut_off_NPL_Hosp cust_Cut_off_NPL_Maternity
      externalCode externalName Cut_off_NPL_Hosp Cut_off_NPL_Maternity
      -365 0 0 0
      -1 0 0 0
      0 0 0 0
      1 1 1 1
      2 2 2 2
      3 3 3 3
      4 4 4 4
      5 5 5 5

    • To make it easier to understand why step 4 mapping is different with step 2:

    • Example 1:

      • Emp in FT apply 10 days -> Less than cut off.

      • Emp in PT apply 6 days -> less than cut off.

        • But when lump sum together, there are valid as 10 + 6 = 16.

      • Step 2 will return 16.

        • Step 3: return 6.

        • Step 4: will return 16- 6 = 10. Mapping to 10 as cut off handling at step 2.

    • Example 2:

      • Emp in FT apply 4 days -> Less than cut off.

      • Emp in PT apply 6 days -> less than cut off.

      • Step 2 will return 0 as 10 < 15.

        • Step 3: return 6.

        • Step 4: will return 0 - 6 = -6. Mapping to -6 to 0.

The solution is configured in 1 variable in Time Off Accrual.

  • Recommended to use Variable. It will help you a lot to make your Accrual clearer and easier to reuse in many places.

  • Recommend to use Add Multiple as well.

Assign in main Accrual


You can see the below outcome as expected. If less than cutoff, no impact / no prorate to Annual Leave at all.

After hitting cutoff, the AL will be prorated accordingly.


You can see the outcome in the business rule log (to see the actual prorated value before rounding).

Hope it is useful for you and easier to configure and handle the complex scenarios in Time Off and make your Accrual rule much stronger. Thanks.

Best regards

Woody Nguyen
Labels in this area