Human Capital Management Blog Posts by Members
Explore blogs from customers or SAP partners to gain best practices and fresh insights to succeed.
cancel
Showing results for 
Search instead for 
Did you mean: 
SoDo
Explorer
1,884

In many organizations, employees can carry over unused vacation days into the following year. However, effectively managing carryover rules in SAP SuccessFactors can be challenging—especially when each company’s requirements vary significantly. Building on the foundation of various existing resources (such as this excellent overview), I’d like to present a specific solution that lets you transfer leftover vacation into a dedicated carryover account based on your own defined conditions.

Key Benefits

  • Separate Carryover Account: Unused vacation appears in its own account, distinct from the following year’s regular entitlement.
  • Clear Yearly Breakdown: Each carryover balance is shown separately (a legal requirement in some countries, such as Germany).
  • First-In-First-Out Usage: You can configure the system so that the oldest accrued days are used first.
  • Flexible Eligibility: Permissions and rules around who may carry over time can be tailored to your organization’s needs.

 

How to Implement

  1. Add a Custom Field to the Time Account Object

In Configure Object Definitions, add a decimal-type custom field (for example, “Carry Over Balance”) to store the leftover vacation balance at the end of the base account’s validity period.

SoDo_0-1740478440225.png

 

  1. Create a Period-End Business Rule in the Base Time Account Type

For your base (primary) time account type (e.g., the “Vacation” account), create a Business Rule that triggers at the Period End. This rule calculates any unused vacation balance, stores it in the custom “Carry Over Balance” field, and then closes the account so it cannot be used beyond its end date.

Assign this rule under Period-End Processing Rule in the base time account type.

SoDo_1-1740478440229.png

  1. Set Up a Dedicated Carryover Time Account

For this use case, we do not want the carryover to be transferred to the vacation account of the following year, but we want to save it in a separate carryover account, so that it can be displayed separately. Therefore, create a new Time Account Type (e.g., “Carryover Account”) and assign it to the same Time Type used by your base account.

Make sure to adjust the Posting Priority in the Time Type to “Post to time accounts by posting rules only” and ensure the carryover account is listed before the base account in under Time Account Posting Rules.

SoDo_2-1740478440236.png

 

SoDo_3-1740478440245.png

  1. Define an Accrual Rule for the Carryover Account

To ensure the carryover account is correctly populated, configure a new Accrual Business Rule that references the “Carry Over Balance” stored in the base account’s custom field. Within this rule, you can define precisely when a carryover should occur, allowing you to establish multiple conditions. In this example, the entitlement is carried over if the employee was absent at the end of the base time account—meaning they were unable to use or schedule their vacation—or if any other special circumstances apply (as determined by HR).

SoDo_4-1740478440253.png

 

How the rule works:

  • The first IF condition checks whether an employee was absent at the end of the original time account. Specifically, it calculates the absence days within a defined period (in this case, March 30 to March 31 of the current year) for selected absence types (which you can configure as needed).
  • The second IF condition checks a custom HRIS field in the employee profile, which was created in Job Info (via Manage Business Configuration) and linked to a simple Yes/No picklist called “Carryover Eligible.” This lets HR determine if an employee could not take their vacation for other reasons (e.g., operational) and is therefore entitled to a carryover.

Note: This post does not cover the detailed creation of custom HRIS fields; there are other excellent resources for that.

  • In the THEN definition, you specify what happens to the carryover if the employee is indeed eligible. For the Posting Date, you can use the variable time.account valid from, which denotes the start date of the carryover account. The Amount Posted configuration is a bit more involved: to reference the correct original account, use a Lookup function (object = Time Account). Within that Time Account, select the “Carry Over Balance” field created in step one. Then define which specific account’s balance should be referenced by ensuring the user matches the one in the current carryover account, the Time Account Type equals “Vacation,” and the account’s start and end dates fall between January 1 and December 31 of the previous year. This ensures the system retrieves only the most recent base account rather than one from an earlier period.

 

Final Thoughts

With these configurations in place, leftover vacation days are automatically calculated, transferred into a dedicated carryover account, and made clearly distinguishable for both employees and administrators. This not only reduces the manual workload for HR but also aligns with legal and policy requirements around vacation entitlement transparency.

 

Have questions or need more details? Feel free to leave a comment!

Greetings from Germany
Sofia

 

Disclaimers

This is a custom solution. Please conduct thorough testing and exercise due diligence before deploying it in a production environment.

All data here is fictitious, any correspondence with real data is pure coincidence.