Time Evaluation is needed to process recorded times in a way to calculate overtime premiums, shift premiums, working time account or overtime account balances, to create alerts and warnings if employees have times outside their planned hours, outside the flextime bandwidth, if they record more than 10hours per day and many more reasons. Successfactors Time Evaluation provides you a very flexible way to create time valuation rules to accommodate your company agreements, trade union contracts or even processes that are derived from laws and regulations like the European Directive on working time.
Time Evaluation might be easy – but can also be complex. This depends on the business processes you want to cover. This blog describes the mechanism of the Successfactors Time Evaluation and each time valuation type in more detail in order to give some hints and help you to decide which valuation type to be used in what constellation.
Target readers are time management consultants who want to learn more on the configuration of Successfactors Time Evaluation.
Time Evaluation
Definitions
Time Evaluation is a valuation of attendance, break, oncall and absence times by comparing the recorded hours against the company-internal, contractual, and collective agreement provisions.
Time Evaluation runs periodically to calculate overtime, calculate time off in lieu postings and working time accounts (flextime), validate attendance recordings, and calculate wage types (for example, bonuses) for payroll.
- Time Evaluation is the process of calculating valuation results from a set of input time records to generate an output time record.
- An output time record can be an interim calculation result or an time valuation result
- Input time records, output time records and the valuation results are represented by time type groups.
- The complete Time Evaluation contains several small calculation steps with time type groups as input and output. These steps are called time valuations and are combined in a time recording profile.
Definition by Example
Basics
Time Type Groups – General and Usage
- General
- Time type groups are containers for interim calculation results and final time pay types.
- Time type groups are containers for interim calculation results and final time pay types.
- UI Component
- Output of time valuations that can be displayed on the Time Sheet UI.
- Output of time valuations that can be displayed on the Time Sheet UI.
- Time Pay Type
- The calculated time valuation results are stored on the database and available either for payroll processing or conversion to time off in lieu or working time account.
- The calculated time valuation results are stored on the database and available either for payroll processing or conversion to time off in lieu or working time account.
- Time Collector
- Calculated time valuation result which is aggregated daily, weekly, or monthly and stored on the database.
Usage and Storage of time valuation results
Time Type Groups – Time Category
Overview
The Time Type Groups on the left hand side are defined by an assignment of time types. These groups are Set-like Groups.
The Time Type Group on the right hand side is calculated by a time valuation.
Set-like Groups
The set-like groups are defined by an assignment of time types. You can use absence, break, attendance and on-call and even mix them in a time type group just as you need. You can create different set-like time type groups based on the need of your valuations.
The set-like Groups are the starting point to calculate more complex (calculated) groups.
Calculated Groups
The calculated groups are calculated by one single or several time valuations in a time recording profile.
The calculated groups have the time category ‘Calculated Time’ or ‘Counted Events’.
The calculation method for a specific calculated result group is defined as a valuation rule, which describes how one or two result groups are generated from a set of input groups.
The calculated groups have the time category Calculated Time or Counted Events. The calculated groups having the time category Calculated Time can be Input groups for subsequent time valuations.
Time valuation
- Input
- Input Groups with
- Reverse Sign (optional)
- Factor (optional)
- Reverse Sign (optional)
- Input Groups with
- Processing
- Valuation Type (e.g. Aggregate and Split)
- Additional fields depending on Valuation Type
- Valuation Type (e.g. Aggregate and Split)
- Result Groups (Time Category = ‚Calculated Time‘ / ‚Counted Events‘
- Time Type Group Above
- Time Type Group Below
- Time Type Group Above
- Error message
- Error flag
- No Error message
- Raise error on Time Type Group Above / Below
- No Error message
- Additional Info
- Message
- Error Type
- Error flag
Time valuation – UI
Time valuations can be setup in Manage Data.
How are Time valuations processed?
General
- In General all time valuations in a Time Recording Profile are processed on a daily basis for the entire time sheet period.
- All time valuations in a Time Recording Profile are processed first with data (e.g. scheduled working time and recorded working time) of Monday. After this the data of Tuesday is processed, and so on.
- The order in which the different time valuations are processed cannot be influenced in the configuration. It is determined automatically, so that necessary Time Type Groups are already calculated when a time valuation is using them as Input, Threshold, Comparison or Deduction group.
Time valuation Methods
- When using the Valuation Methods “Valuate Per Day” or “Valuate Up To Today” only the entries for a single day are considered. If the breaks are deducted from the scheduled working time, this is done with the values of a single day for instance on Monday the break of 1hr is deducted from the scheduled working time of Monday 8hr.
- The processing is stopped after the processing of the current day when the Valuation Method “Valuate Up To Today” is used. Days in the future in the same time sheet period are not processed.
- When using the Valuation Method “Valuate Whole Sheet” the entries for the complete time sheet (usually one week) are considered. This is for instance necessary to calculate times of the whole time sheet greater 40 hrs per week.
Valuation Method “Valuate Per Day”
Valuation Method “Valuate Up To Today”
Valuation Method “Valuate Whole Sheet”
Valuation Types
Overview
Aggregate Input Groups and Split
This type of valuation collects all the time records from a set of input groups. At a certain threshold value, the collected records shift from the below group to the above group. The threshold (i.e. when the switch from above to below happens) can be defined per day and per time sheet period.
The threshold can either be a fix value or a reference to a Time Type Group which was calculated before as a result of other time valuations.
Possible use case
- Which working time is up to 8 hours a day (= regular time) and which is above 8 hours a day (= overtime)?
Filter Input Groups
The filter used in this valuation is a type of day filter. All the time records from the input groups passing the day filter with all attributes are collected in the below group. Time records not fulfilling at least one filter attribute are put to the above group.
This valuation type supports using a Time Segment Filter as well.
Possible use case
- Which working time is on full holidays, non-working days, Sundays, at night shifts, …?
Time Records Filter – Overview
Filter Segments from Input Groups
The segmentation uses a special time segment filter which is a list of time segments. Time segments are a clocktime intervall. The valuation moves the parts of the input time records to the below group that overlaps with one of the time segments. The parts not overlapping are put in the above group.
This means that input records can be split in parts overlapping a time segment and a part not overlapping any time segment.
This valuation type can only be used for time recording variant clock-time.
Possible use case
- Which working time is after 20:00 and needs to be considered for premium calculation? (Segment Filter: 20:00 – 6:00)
Excurs on cross midnight processing
All data of a shift day is processed in the shift day, even if it can be on a different physical day. All time valuations are processed on the shift day as well.
For several night shift requirements it’s necessary to process data from the next physical day. For instance a night shift can end on a public holiday and special premiums for the part of the night shift on the public holiday has to be paid.
Because the complete night shift is processed on the shift day (the day on which the shift started) we introduced a next day indicator in the time segment filter. We also enhanced the time records filter so that it can be checked if the next physical day is a public holiday.
Deduct Group from Input Groups
The Valuation Type “Deduct Group from Input Groups” is an enhancement of “Filter Segments from Input Groups”
- Deduction group defines a list of time segments
- Input time record overlapping any time segment (of deduction group)
à Overlapping part is set to below group, remaining parts to above group - Input time record overlapping none of the time segments (of deduction group)
àIs set to above group
Example
Which is the (net) working time without breaks?
Difference Between Threshold and Input
This valuation type compares all time records from a set of input groups to the specified threshold value per day or per time sheet period. The purpose is to calculate the difference “input minus threshold” and put this result into the above group.
If the threshold is reached, the time records above the threshold are moved to the above group. If the threshold is not reached, a new time record with the missing negative difference is created and put in the above group.
The time type of this new time record is the main attendance time type and the date is set to the valuated day or – in case of valuation per time sheet period – the end date of the time sheet period.
Thereby, the above group always contains the positive or negative difference “input minus threshold”.
Possible use case
- What is the delta between working time and scheduled working time per day or week? This delta can then be accrued to a working time account (WTA) for each day or for the whole week.
Compare Threshold with Input Groups and Count Events
Result groups from this valuation are a special kind of calculated time type group: The above and the below group are so-called ‘counter’ groups with ‘counter’ records as time records.
A counter (time type) group is defined by time category COUNTED_EVENTS and has only time records with an internal counter time type of time data type ‘counter’.
This valuation aggregates all input records of the day (or the whole sheet period depending on the valuation method).
In case of day valuation, if the amount of all records is above the threshold a “counter record of 1” (for the counted event above threshold) is put to the above group. If not, the “counter record of 1” is put to the below group (for the counted event below threshold).
In case of whole sheet valuation method, all input time records together are compared to the threshold for the entire week, and depending on the result the “counter record of 1” is put either into the above group or into the below group on the end date of the valuation period.
Possible use case
- How many days (in the time sheet week) have got working time above 8 hours?
Compare Threshold with Comparison Group to Route Input
This valuation allows to move all input time records together for each day (or for the whole week depending on the valuation method) either to the above group or the below group.
Therefore, independently from the input time records, the comparison group is compared to the threshold. per day or time sheet period. If the time records of the comparison group are above the threshold, the corresponding input time records are moved to the above group, otherwise to the below group.
Possible use case
- What is the planned working time for days on a public holiday if there is recorded working time for that day?
Filter Single Records from Input Groups (Time Tracking subscription necessary)
This valuation type loops over all time records of the input time type group.
For every record, the record attribute (e.g. Start Time) is compared with the attribute that is configured for the comparison group (e.g. Earliest Start Time).
The comparison operator can be configured as “Equal To”, “Less than or Equal To”, or “Greater than or Equal To”.
Time records that fulfill the condition are moved to the time type group below. All other time records are moved to the time type group above.
Possible use case
- Find gaps in recorded working time at the beginning or the end of the scheduled working time.
Configuration Options for Valuation Types
Examples
Some information in front about the examples
- The example configurations, described in this document, must be adapted accordingly to fit in existing Time Recording Profiles and meet requirements.
- They need to be adapted with regards to used Set-Like Time Type Groups (e.g. WT-SCHED for scheduled working time) and the naming of necessary Time Type Groups and time valuations.
- Partially the configurations are simplified for a better understanding of the basic functionality.
Overtime Recorder with Premium for Overtime above 40 total hours per week
Requirement
- An Overtime Recorder records only overtime by using a certain Time Type Group. For all times (scheduled working time + overtime) above 40 hours per week there must be paid a premium.
- The premium must be calculated for the day on which the overtime was recorded, not at the end of the week.
Solution in a nutshell
- The recorded overtime is available in a Time Type Group of Time Category „Recorded Overtime“
- The difference between 40 hours and the scheduled working time for a week is calculated and stored in a Time Type Group
- The part of the recorded overtime above the value of the Time Type Group, that contains the difference between 40 hours and the scheduled working time, is moved to a Time Type Group for the premium.
Weekly overtime calculation
Requirement
- For the first two hours overtime per week a premium OT 1.5 has to be paid. For every additional overtime a premium OT 2.0 has to be paid.
- The OT 2.0 premium has to be paid for working time on non-working days as well, independend if the employee worked overtime in this week at all.
Solution in a nutshell
- Use a time records filter to filter work on non-working days. Recorded working time on non-working days can directly be moved to a Time Type Group OT 2.0
- Use a time records filter to filter work on working days.
- Calculate daily overtime by split recorded working time after reaching the scheduled working time.
- Split the weekly overtime by two hours. Overtime up to two hours are paid OT 1.5. Overtime above two hours are paid OT 2.0.
- Aggregate OT 2.0 from non-working days and working days in one Time Type Group.
Daily overtime calculation
Requirement
- A positive recorder records working time and overtime and both is considered for calculating a overtime premium of 100% for more than two hours per day.
- For the overtime up to two hours per day a premium of 50% must be calculated
Solution in a nutshell
- Breaks are deducted from overtime relevant time
- Breaks are deducted from the scheduled working time
- Overtime per day is calculated by deducting the scheduled working time without breaks from the overtime relevant time without breaks
- Breaks are deducted from recorded overtime
- Calculated overtime and recorded overtime are aggregated to the total overtime per day
- The part of the overtime above two hours is moved to a Time Type Group for the 100% premium. The overtime up to two hours are moved to a Time Type Group for the 50% premium.
Core night detection
Requirement
- In Germany if working time for a night-shift started before midnight then the tax free portion of the night premium is 25% till 00:00, but 40% in the time frame from 00:00 – 04:00 and after 04:00 it is again 25% till 06:00 in the morning.
Solution in a nutshell
- For further usage in the core night detection we need to deduct breaks from the recorded working time.
- We need to filter recorded working time without breaks for the following time frames:
- 8:00 PM – 12:00 AM
- 12:00 AM – 4:00 AM on the day after the start day of the night shift
- 4:00 AM – 6:00 AM on the day after the start day of the night shift
- 8:00 PM – 12:00 AM
- Any recorded working time in the time frame 12:00 AM – 4:00 AM is moved to a Time Type Group for tax-free night premiums when there was working time recorded in the time frame 8:00 PM – 12:00 AM.
- If there is no recorded working time in the time frame 8:00 PM – 12:00 AM then the recorded working time 12:00 AM – 4:00 AM is moved to a Time Type Group for taxable premiums
- If there is no recorded working time in the time frame 8:00 PM – 12:00 AM then the recorded working time 12:00 AM – 4:00 AM is moved to a Time Type Group for taxable premiums
- The taxable premiums 8:00 PM – 12:00 AM, 12:00 AM – 4:00 AM, and 4:00 AM – 6:00 AM are aggregated in one Time Type Group
One remark
- The documented solution is simplified and needs to be adapted because a part of the night shift can fall into a sunday or a public holiday, and in these cases higher premiums needs to be calculated.
Detection of Late comers
Requirement
- An Employee must be counted as a late comer on every day on which he/she clocks in more than 15 minutes after the beginning of the scheduled working time. For every occurence of late coming a warning message must be raised.
- When there is a gap at the beginning of the scheduled working time but the employee recorded additional working time before the beginning of the scheduled working time, he/she must not count as a late comer.
- When there is no working time at all recorded the employee must not count as a late comer.
- The monthly occurrences of late coming must be counted and a warning message is raised when the employee came too late more than three times in a month.
Solution in a nutshell
- A time valuation finds gaps within the scheduled working time, in which no working time is recorded, and stores them in a Time Type Group. This Time Type Group would also contain a gap e.g. caused by a lunch break.
- In a time valuation possible gap at the beginning of the scheduled working time are filtered out of all gaps of the entire day. If a gap at the beginning of the scheduled working time is found, this gap is stored in a Time Type Group.
- A time valuation checks, if there is recorded working time for this day at all, and routes the gap at the beginning of the scheduled working time to a Time Type Group if there is working time recorded. If there is no working time recorded at all for a day it is not a late comer. It might be that this employee forgot to record attendances, or an absence.
- A time valuation checks if there is recorded working time before the beginning of the scheduled working time and stores it in a Time Type Group.
- A time valuation routes the gap at the beginning of the scheduled working time to a Time Type Group in case that there is no working time recorded before the beginning of the scheduled working time.
- A time valuation routes the gap at the beginning of the scheduled working time to a Time Type Group when the gap is longer than the threshold value 15 minutes. In this case, a warning is raised. In this time valuation a “real” late comer is detected according to the described requirements.
- A time valuation counts the occurrences of late coming in a month in a Time Type Group. This Time Type Group is of Time Category “Counted Events”.
- A last time valuation raises a warning when an employee clocked in too late more than three times in a month.
Special Topics
Check Tool
The configurations in a Time Recording Profile can be checked by several checks in the check tool.
That should be done before a Time Recording Profile is used to avoid errors caused by erroneous configurations during runtime.
Time Valuation – Employee Time Valuation Result
Employee time valuation results are shown in the Employee Time Sheet object in Manage Data
- Condensed per time type group, day and cost center
- Posting Target defines further processing (Payroll, Time Account, Working Time Account)
- Contains also allowances for payroll
Time Valuation – Trace
The trace, that can be called from the Time Sheet UI, is a tool that is used from Admins to analyze the results of the Time Evaluation for one week of an employee.
Permission needs to be granted in Role Based Permissions.
- Shows the result of new valuation run (Results can differ from results for Time Type Groups shown on the Time Sheet UI)
- Two Parts
- Time Valuation Result
- Valuated Time Records (not equal to UI Time Records)
- Time Type Groups with Result (incl. Time Records)
- Time Valuations with Results (incl. Time Records)
- Valuated Time Records (not equal to UI Time Records)
- Time Valuation Result
- Time Valuation Trace
- Runtime view
- According to internal recursive time valuation algorithm
- Runtime view
- No allowances
Troubleshooting / Hints & Tips / Q&A
- Q: A Time Type Group is not filled with a value, also Time Type Groups that contribute to this Time Type Group are not filled. For these Time Type Groups “No time records” is shown in Trace.
- A: Time Type Groups are only calculated when they are configured as pay type, UI component, or Time Collector or they contribute to such a Time Type Group.
- A: Time Type Groups are only calculated when they are configured as pay type, UI component, or Time Collector or they contribute to such a Time Type Group.
- Q: Threshold with minutes is not considered correctly
- A: Please check in which format the threshold is configured. If you want to use ½ hour as a threshold you need to configure 0,5 instead of 0,3.
- A: Please check in which format the threshold is configured. If you want to use ½ hour as a threshold you need to configure 0,5 instead of 0,3.
- Q: The weekly result of a Time Type Group for the current week is wrong because future days are considered.
- A: Please check if in affected time valuations the valuation method “Valuate Up To Today“ needs to be used.
- A: Please check if in affected time valuations the valuation method “Valuate Up To Today“ needs to be used.
- Q: How can I use < as comparison operator?
- A: You can use “Reverse Sign“ for the Input Time Type Group and compare it with a negative threshold.
- A: You can use “Reverse Sign“ for the Input Time Type Group and compare it with a negative threshold.
- Q: How can I trigger a time valuation only on a certain weekday, on a working (non-working) day, on a day with a certain shift classification, on a public holiday?
- A: Use a Time Records Filter within a time valuation of type “Filter Input Groups“
- A: Use a Time Records Filter within a time valuation of type “Filter Input Groups“
- Q: I only want to aggregate Time Type Groups without Split. How can I configure this?
- A: Create a time valuation of type “Aggregate Input Groups and Split“ with the Threshold type “Fixed Value“ and the Threshold Value 0.
- A: Create a time valuation of type “Aggregate Input Groups and Split“ with the Threshold type “Fixed Value“ and the Threshold Value 0.
- Q: I need to change a time valuation but do not know in which Time Recording Profiles it is used so that I can estimate the impact of my change and I can test it.
- A: You can export (Import and Export Data) the MDF object “Time Recording Profile-Time Valuation”. In the column “timeValuation.externalCode” you can find the external code of the time valuation and in the column “externalCode“ you can find the external code of the Time Recording Profile in which the time valuation is used.