Human Capital Management Blogs by SAP
Get insider info on SAP SuccessFactors HCM suite for core HR and payroll, time and attendance, talent management, employee experience management, and more in this SAP blog.
cancel
Showing results for 
Search instead for 
Did you mean: 
TB
Product and Topic Expert
Product and Topic Expert

Why should I read this blog post?


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



Time Evaluation – 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.



  • UI Component

    • 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.



  • 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



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.


Time Type Groups – Time Category



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.


Time Type Groups – Set-like 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’.


Time Type Groups – Calculated Groups


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)





  • Processing

    • Valuation Type (e.g. Aggregate and Split)

    • Additional fields depending on Valuation Type



  • Result Groups (Time Category = ‚Calculated Time‘ / ‚Counted Events‘

    • Time Type Group Above

    • Time Type Group Below



  • Error message

    • Error flag

      • No Error message

      • Raise error on Time Type Group Above / Below



    • Additional Info

    • Message

    • Error Type





Time Valuation



Time valuation - UI


Time valuations can be setup in Manage Data.


Time Valuation - UI



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"



Valuate Per Day



Valuation Method "Valuate Up To Today"



Valuate Up To Today



Valuation Method "Valuate Whole Sheet"



Valuate Whole Sheet



Valuation Types


Overview



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)?



Aggregate Input Groups and Split



Aggregate Input Groups and Split - How it works



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, …?



Filter Input Groups - How it works



Time Records Filter - Overview



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)



Filter Segments from Input Groups - How it works



Excurs on cross midnight processing



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.


Time Segment Filter - Next Day Indicator



Time Records Filter - Public Holidays



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?


Deduct Group from Input Groups - Example



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”.

So that all result groups have a reasonable definition, the below group is set to the inverted above group. That means that positive time records out of the above group are converted to negative time records and vice versa.

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.



Difference Between Threshold and Input - How it works



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 Input Groups and Count Events - How it works



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?



Compare Threshold with Comparison Group to Route Input - How it works



Compare Threshold with Comparison Group to Route Input - How it works



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.



Filter Single Records from Input Groups - How it works



Configuration Options for Valuation Types



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.



Overtime Recorder with Premium for Overtime above 40 total hours per week



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.



Weekly overtime calculation



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.



Daily overtime calculation



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.



Core night detection



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



  • 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





  • 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



Core night detection



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.



Detection of Late Comers



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.


Check Tool



Time ValuationEmployee 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



Employee Time Valuation Result


 

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.


Trace - 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)



    • Time Valuation Trace

      • Runtime view

      • According to internal recursive time valuation algorithm





  • No allowances



Trace



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.





  • 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.





  • 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.





  • 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.





  • 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“





  • 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.





  • 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.



49 Comments
juergenprinz
Explorer
0 Kudos
Hi Timo, thanks a lot for this great article. Very informative and well explained.

 

best regards

Juergen

 

 
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Juergen,

thanks a lot for your feedback. Please feel free to contact me in case of questions.

Best Regards,

Timo
Venkat_Iyengar
Product and Topic Expert
Product and Topic Expert
0 Kudos
timo.biedenbender - This is an awesome blog explaining the concepts of Time Evaluation in a well structured and informative way. Thanks for the blog.

Venkat
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Venkat,

thanks a lot for you feedback. Please do not hesitate to contact me in case of questions.

Best Regards,

Timo
manibell
Explorer
0 Kudos
Hi Time sorry Timo :),

 

I'm not surprosed why your name rhymes with time and I believe it should continue. Such a wonderful piece of work on Time Evaluation. You have made it simple for everyone to understand this.

Let such sharing continue in future.

Regards

Prasanna

Question: Do you think the product will accommodate scenario of entering amount instead of only time; like how we do in CATS? This will help us to enter the amount directly for a on Call duty or derive using some valuation type. If not I don't mind creating an idea incident for this.

Regards

Prasanna

 
manibell
Explorer
0 Kudos
Hi Timo,

Another Question

In the picture 'Difference between threshold and input' in the left hand side 'Day 3' you have put 10:00-17:00 but in the right hand side it's 00:00-01-:00, I'm not sure how this entry is picked up? Can you please throw some light.

 

Regards

Prasanna
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Prasanna,

thanks a lot for your feedback. I make this typo in my name quit often. 🙂

Regarding your question: Do you mean it should be possible to have a clock-time recorder who can record certain data like on-call as a duration? To make sure I got it right: You ask for the combination of clock-time and duration recording?

This is currently not possible. A clock-time recorder can only record clock-times (with exception of allowances) and a duration recorder can only record durations. It would be good if you create an influence request.

Best Regards,
Timo
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi Prasanna,

thank you for this hint.

I added the following to the description of this valuation type to make it clearer.

'So that all result groups have a reasonable definition, the below group is set to the inverted above group.'

I hope this answered your question.

Best Regards,
Timo

I815923
Product and Topic Expert
Product and Topic Expert
0 Kudos
Excellent Blog and thank you so much to share it!!! 🙂
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Thanks a lot for your feedback 🙂
ppad
Product and Topic Expert
Product and Topic Expert
0 Kudos
Dear Timo,

It is very comprehensive and excellent detailed knowledge. Thank you so much. I have a scenario I would ike to ask the possbility to calculate by Time Evaluation. Many customers I have talked to, they have employees who work OT across midnight, and they want the OT after midnight calculated based on what the next day is.

For example: Employee has regular schedule from 8am - 5pm today. He/she worked OT from 5pm to 2am on the next day. The OT after midnight from 12am - 2am will be different upon what the next day is. If the next day is Working Day, it will be granted OT 1.5X for 2 hours. However, if the next day is Non-Working Day, it will be granted OT 3.0X for 2 hours.

I can't find the simple configuration which we can do in Time Evaluation. As I explored with my collegues, we tried to use the Filter Input Group by Type of Day (Working/Non-Working), but Time Evaluation consider the current day to be the Filter Group, not the next day. Next, we tried to use Time Fiter Segment, but it is not possible to know whether the next day is working or non-working day. We tried to flag the 'across midnight' for today work schedule, but it is not allow because the today work schedule is 8am-5pm which is not across the midnight. We understand that currently Time Evaluation can identify whether next day is the public holiday, but what we are looking here is  to identify whether the next day is working or non-working day. Or better if it can identify what the nexy day is, it would be the best.

My questions is whether it is possible to configure in current Time Evaluation? Or if not, would it be possibility to consider putting in the future release?

Best Regards,
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Dear Pachara,

thanks a lot for your feedback and raising this really good question.

For me, it's crucial to know if the non-working days are always Saturday and Sunday or if they can rotate during the week.

In case that they are always Saturday and Sunday you can use a time records filter for Friday and setup a time segment filter with next day indicator.

When the non-working days are rotating during the week I see currently no possibility to check if the next day is a non-working day. When we process the current day we can not check the definition of the next day. We would need something similar like the filter on public holidays in the time records filter.

I hope this answered your question.

Best Regards,
Timo
ppad
Product and Topic Expert
Product and Topic Expert
0 Kudos
Dear Timo,

Thank you for the answer. For your question, the non-working days are not always Sat or Sun, otherwise we would be able to use time rcords filter for Day of Week.

As currently we can't check the next day, would it be any chance to have future roadmap to add more filter? Ex: check Day Model of the next day, or check working/non-working day (Planned Hours = 0) of the next day. If there is more filter, I believe it would be really useful to handle a lot more complex time scenarios.

Best Regards,

Pachara
TB
Product and Topic Expert
Product and Topic Expert
Dear Pachara,

we are aware that we should close this functional gap, but unfortunately it's not on our roadmap yet.

I didn't found a request in our influence tool (https://influence.sap.com/sap/ino/#/campaign/2419) about this requirement. It would be good if you can create one, so that other customers can vote for this requirement.

Best Regards,
Timo
ppad
Product and Topic Expert
Product and Topic Expert
0 Kudos
Sure. Thank you Timo.
Stephen_B
Participant
0 Kudos
Hi Timo,

We are a conglomerate from the Philippines and still heavily relying on the old SAP HCM Time Evaluation solution (pcr and schemas) for our employees on positive time. Do you think the current Succesfactors Time valuation solution robust enough to replace our SAP Time evaluation? Do you already have customers outside of Germany?

Can you also point me to resources where I can read the roads maps or existing functionality for Succesfactors Time Evaluation.

 

Thanks and great article!

Stephen
Frans_Smolders
Product and Topic Expert
Product and Topic Expert
Hi Stephen, that might very well be the case 🙂

Please read this post: https://blogs.sap.com/2021/12/21/how-does-sap-successfactors-time-management-compare-to-sap-hcm-time...

The crux is: SFSF Time Management meanwhile is becoming so robust that on a high level you can't say anymore if it is feasible, or is not feasible. You have to look at the individual use cases.

Cheers, Frans

 
Stephen_B
Participant
0 Kudos
Thanks, Frans.

I have not been keeping abreast with SFSF roadmaps and it's good to know that SAP has been busy developing a solution akin to SAP Time Management - an area that has been in limbo since SAP announced that SAP HCM does not figure in theirs plans for the future. =,(

I've read the article you've linked and I just have a question.

  1. Does SFSF Time Management have or will have a feature similar to the 'Time Wage Type selection' configuration options in SAP Time Management. To illustrate with an example below:

    • An employee works night shift from 8pm – 4am (crossover midnight). He worked Overtime from 4am – 8am on a day that falls on a special holiday.

    • We should be able to generate the time value (hours or minutes) for the following 'time wage types' that will be fed to payroll for valuation:

      • Time value the employee is late/undertime based on his/her biometrics clock data.

      • Time value the employee's night premium coz he worked at a time period (10pm - 6am)  where s/he is eligible to be paid night premium. (4 hours, in this example 10pm - 4am)

      • Time value the employee worked OT for the first 2 hours and the succeeding 2 hours - 2 different time wage types since they have different rate of pay.

      • Time value the employee worked OT on a special holiday. (4 hours)



    • This is just an example and we have prolly have hundreds/thousand of permutation of these scenarios. Currently, we are able to met these requirements via Time Wage type selection config and pcr configurations in Time Evaluation schema.

    • Will SFSF have something similar to this i.e. we can also deliver the requirements via configuration and without resorting to development or code changes.




Thanks

Stephen

 
Frans_Smolders
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Stephen, yes this should be possible. In this blog you find how time valuation for night shifts works and how we can differentiate premiums for different segments: https://blogs.sap.com/2021/10/26/successfactors-time-management-new-features-in-h2-2021/ Hope this helps? Cheers, Frans
Prasitw
Explorer
0 Kudos
Hi Timo,

I feel thankful for this your article to explain about time valuation help me to understand and clearly about this so much.

Thank a lot to share

Prasit Watthana.
Sanjayt
Explorer
0 Kudos
Hi timo.biedenbender

Is there anyway a clock in/clock out employee can apply for an absence outside planned working hours. Currently employees get the below error when they apply for a leave outside absence hours. "Please enter a start and an end time that falls within the planned working time".

This is required because employees work on flexible schedule even though there is a fixed planned working time on day model. Could you please advise if there is any workaround.

Thank you,

Sanjay
parthu6
Participant
0 Kudos
Hi timo.biedenbender,

 

Excellent and spoon feeding blog, Thanks alot. 🙂

 

Thanks,

Parthu
former_member29554
Discoverer
0 Kudos
Hi All,

Is Time valuation functionality covered in EC license or do we need Time Tracking license?
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Faisal,

the Time Valuation itself and the major part of their functionality is part covered by the EC subscription.

New features of the Time Valuation (e.g. cross midnight for attendances, latecomer detection, rest period determination) are (or will be in future release) only available with the Time Tracking subscription. The configuration for these functionalities is only possible when Time Tracking is enabled.

Best Regards,
Timo
rderaser
Discoverer
0 Kudos
Hi Timo,

great set of information, thank you!

I got questions regarding the time valuation trace: I am struggling to understand the sequence of the trace compared to the sequence of time valuations in the time recording profile. Coming from the SAP HCM time management world, I am probably used to the readibility of the schema.

Is there an explanation on why the time valuation is sequenced the way it is? Or do I always need to search for content that I am looking for?

Thanks and best regards,

Michael
arrouth
Participant
0 Kudos
Thanks a lot Timo!
TB
Product and Topic Expert
Product and Topic Expert
Hi Michael,

thanks a lot for your feedback.

The sequence of the trace is essentially due to the fact that the order of processing the Time Valuations is determined by the Time Valuation Engine during the runtime. The order of the Time Valuations in the Time Recording Profile has no impact on the processing order.

We are aware, that it could be difficult to use the trace when you want to analyze how a certain Time Type Group was calculated. We are thinking of an enhancement, that the calculation of a selected Time Type Group can be shown/explained in the trace in the processing order. This is not on the road map, yet.

Your feedback on this approach would be welcome.

Best Regards,
Timo
rderaser
Discoverer
Hi Timo,

thanks for your reply! I think such an enhancement would be really helpful!

Is there any source of information where I can learn about the details of how the engine works? E.g. I saw a SAP note recently that said "The time valuation starts its process on all time type groups that are marked relevant for UI or for payroll."

Information like that would probably make it easier to understand the approach.

Best regards and have a nice weekend,

Michael
clumbert
Contributor
Thanks for asking this question Michael. I have been struggling with the same issue. In some of the more simple Time Valuations, I have been able to follow it, but when they start getting complex, it is really difficult to understand. It is especially difficult when I am supporting a Time Recording Profile that I did not build, so I don't know the background of why things were set up the way they are.

I would love to see the enhancement, but agree that an understanding of the processing order would be helpful.

Thanks,

Cindy
danneu
Explorer
0 Kudos
Hi Timo,

Thanks a lot for the great work!
I wonder why in the chart for the Valuation Type Aggregate Input Groups and Split clock times are shown as output. I assumed that this Valuation Type only holds the duration, correct?

Best regards,

Daniel
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Daniel,

thanks a lot for your feedback and your question.

In case of a duration recorder, you are right.

For clock time recorders the clock times are considered as well by this valuation type. When the threshold is reached within a record in a Time Type Group this Time Type Group is split into two.

If you configured a Time Valuation of this type with threshold 10 hours, and there is a record in the Time Type Group from 5:00 PM to 7 PM and the threshold is reached at 6:00 PM, the time frame from 5:00 PM to 6:00 PM will be booked to the Time Type Group Below and the time frame from 6:00 PM to 7:00 PM will be booked to the Time Type Group Above.

I hope, this answered your question.

Best Regards,
Timo
chiru_sf
Participant
0 Kudos

Hi timo.biedenbender

Are the alert notification Business rule assigned under the "Post Save Rules " section of the object definition: 'Time Valuvation".

Or is there any other way where we could trigger alert email notification for scenarios:

  • Alert 1: The working time per day exceeds 10 hours (8 regular hours + 2 hrs overtime)
  • Alert 2: The working time per week exceeds 50 hours (40 regular hours + 10 hrs overtime).

Prior to creating this alerts, I have configured the Time Valuations per day and per week and assigned on the Time Recroding profile.

My sample rule looks liken this:

Could you please share a sample business rule for one of the scenarios above?

 

Thanks a lot for your inputs in advance!

 

Best Regards,

Chiru

 

TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi Chiru,

for me these requirements look like typical requirements for our Time Valuation and not for business rules. I recommend setting up Time Valuations in your time recording profile.

If you've the regular hours in one Time Type Group, and the overtime hours in a second Time Type Group, you can create a Time Valuation of type "Aggregate Input Groups and Split".

These Time Type Groups are used as Input Time Type Groups of this Time Valuation.

If you configure Threshold Type as "Fixed Value" and Threshold Value as 10, all the hours above ten hours would be transferred to the Time Type Group Above.

With help of the "Message Flag", you can raise an alert on the Time Type Group Above.

I hope, this answered your question.

Best Regards,
Timo
chiru_sf
Participant
0 Kudos
Hi timo.biedenbender

Thank you for your comments, the infomration above answers my question to some extent.

I have already set up the Time Valuation as suggested above and the user gets the 'Message Text' as a pop up within the 'Time Sheet UI' depending on the 'Message Type' = 'Error'/'Alert and warning'.


Until here, everything is fine.

But here the employee is allowed to record more than 10 hours per day, (Message Type = 'Alert and Warning'), but the Manager/HR should get an alert notification email, each time the employee books/records more than 10 hours per day.

Is it possible via 'Post Save' business rule under 'Time Valuation' mdf object or from 'Time Valuation' itself or from 'Validation Rules' section under the respective 'Time Recording Profile' or from somwehere else within the configuration?

Many thanks in advance!

Best Regards,

Chiru

 

 
Former Member
0 Kudos
Hello, very good blog, I would like to know if it is possible through the integration center to send absences based on time collectors of the clock in and clock out (the difference between the planned time vs the registered one), I ask since I did some tests but it seems that integration center does not accept the start and end time, otherwise it sends the absence with a duration equal to the planned time.
parthasarathy
Explorer
0 Kudos
Dear Timo,

As per our current understanding, Time Off and Time Valuation is still considered as part of EC license subscription. Can you please advise if there is any latest update/ future roadmap from SAP, to consider Time Off & Time Valuation- as part of separate license and not included as part of EC license?
iamishantdua311
Discoverer
0 Kudos
Hello timo.biedenbender

 

This is a fantastic blog and fills up much of the Gap which we were seeking for. Wish that this type of content gets in the standard Implementation Guides also and makes all our lives easier :).

However, I do have one query though - with valuation type "Difference between threshold and Input" - it does not matter whether I choose valuation per day or valuation per week, the result is always shown for the whole week.

As in your example, if you don't apply anything for Day 4 to Day 7, then the Time type above group will have an output of 0 + 2 - 1 - 8 - 8 - 8 - 8 = -31 Hours even through we have selected Valuation method as "Valuate per day".

My question is then how can we valuate per day and store in a Time type group per day?

 

Thank You in advance

Ishant Dua

A Time Management Enthusiast
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hello iamishantdua3112

Thanks a lot for your feedback.

The main difference between these different Valuation Methods is, that the values of Time Type Groups and Fixed Values are processed daily or aggregated for a complete week / time sheet. The result is stored daily in the Time Type Group Above and Time Type Group Below independently of the selected Valuation Method.

In the following example, recorded overtime is split with a fixed threshold of 5. One Time Valuation uses the Valuation Method "Valuate Per Day", the other one uses the Valuation Method "Valuate Whole Sheet".

  • Time Valuation "Valuate Per Day": Difference OT - Threshold 5 --> Time Type Group "Diff OT-5 Daily"

  • Time Valuation "Valuate Whole Sheet": Difference OT - Threshold 5 --> Time Type Group "Diff OT-5 Weekly"




I hope, this answered your question.

Best Regards,

Timo
mihaivasile
Discoverer
0 Kudos
Hi,

 

It is possible to configure a valuation rule to raise a message if break time was not clocked by the employee?

 

Thanks,
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi mihai.vasile

It should be possible to configure such a Time Valuation as here described.

For this, you need to separate the time type for generated breaks, which is configured as the Main Break Time Type in the Time Profile, from the time type for manually recorded breaks.

The Main Break Time Type must not be enabled for ESS, so that an employee can’t record breaks using this Time Type. This Time Type is used for generated breaks and for import of breaks via External Time Data. Recorded breaks need to be recorded with a separate, ESS enabled, Time Type. Both Time Type group need to result in separate Time Type Groups, which can be processed by our Time Valuation Engine.

A Time Valuation of valuation type "Compare Threshold with Comparison Group to Route Input" can check if the duration of recorded breaks in the Time Type Group, that includes the Time Type for recorded breaks, is greater than 0. If this condition isn't fulfilled, the Input Time Type Group is routed to the Time Type Group Below. As a last step, you can raise an alert on the Time Type Group Below. This alert is shown in the Time Sheet UI and in the Admin Alerts UT.

There’s one last challenge. We need an Input Time Type Group that has always a value. We can create an additional Time Valuation, which uses the valuation type "Create Time Record" for this. This valuation type is only available when Time Tracking is enabled. Otherwise, the described configuration needs to be adapted.

It might be necessary to aggregate both Time Type Groups in one single Time Type Groups for further calculations in the Time Recording Profile.

When breaks aren't recorded with a Time Type, but arise because of gaps in recorded working time, another configuration is needed. This might be when employees clock in and out at time terminals. In such cases, a gap can result when an employee clocks in at 7:00 AM, clocks out at 12:00 PM and clocks in again at 1:00 PM. The gap from 12:00 PM to 1:00 PM can be considered as a break, as well. For this, the documentation for determination of rest period can help. The described configuration must be adapted. For the rest period determination, features are used which are only available when Time Tracking is enabled.

I hope this hints helped.

Best Regards,

Timo
mihaivasile
Discoverer
0 Kudos
Thanks a lot for your answer.

 

I have one more question/scenario. One of my clients has the following scenario: The manager records an overtime request for the employee of 2 - 3 hours. Then the employee clocks the normal hours then he clocks the overtime separately by using a specific Time event type "Overtime".

It is possible to somehow create a valuation rule forcing the employee to clock the Overtime by using the Time event type "Overtime" only during the time frame specified by the Overtime request (Overtime request is a time type with Classification Extra)

More to the point if the employee haze the Overtime request from 17:00 to 19:00 the clock overtime should be used only during that interval.

It is possible?

Best regards,
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi mihai.vasile

If you want to check the recorded overtime against the exact time of the overtime request, this should be possible using a time valuation of the valuation type "Deduct Group from Input Groups".

The borderline case, if a recording partially outside the overtime request is allowed (e.g. the recording is starting before the start of the overtime request and ends within the overtime request), the described approach needs to be adapted.

The mentioned Time Valuation can look like this:

  • Create a Time Type Group that only contains the Time Type Overtime, which is used by the employees for recording this special kind of overtime.

  • Use this Time Type Group as the Input Time Group for the Time Valuation of type "Deduct Group from Input Groups".

  • Configure as the Deduction Group, the Time Type Group that contains the Extra Time Type used for the overtime request.

  • Use a Time Type Group Above that will be filled with recorded overtime outside the overtime request. This Time Type Group is a kind of dummy, because the value is only used for raising an error.

  • Raise an Error on the Time Type Group Above.

  • When there is overtime recorded outside the overtime request, an error will be raised by this Time Valuation.


Best Regards,

Timo
mihaivasile
Discoverer
0 Kudos

Thanks a lot. I highly appreciate your reply.

If I can still be bold and ask your opinion on another point :).

I configured Time Off in Lieu so the overtime done by the employee is accumulated and is used later to take some time off. The client wants to have a maximum balance of 40 hours per year.

How do I stop the accumulation of hours in the Time Off in Lieu time account type at 40 hours?

Best regards and again I truly appreciate your help. 

Antoine_DeWinte
Explorer
0 Kudos
Hi Timo,

 

Nice blog.

I am trying to write a time valuation which gives an error when 'WorkingHours' are registered.

1 outside the bandwidth (7:30 - 20:00)

2 inside the core hours (08:00 - 16:30).

we have negative clock time for which the workinghours outside the core hours are stored in the 'Flex Time' time account.

At this moment whatever working hours I register outside the core hours gives an error;

Thanks

 
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi antoine.winter

thanks a lot for your feedback.

Sorry, I didn't understand your requirement.

When a certain Time Type is recorded, you want to raise an error? Do you want to raise this error only when the recording overlaps a certain time frame? Is this time frame defined by fixed times or is it a segment from the Work Schedule?

Thanks,

Timo
Samo
Discoverer
0 Kudos
Hi Timo,

This is an excellent blog, thanks a lot for your comprehensive explanation about Time Evaluation, really appreciate it!

Short question, Is it possible to create a dynamic threshold value for the time valuation, I would like to adjust it based on the FTE, I mean when an employee is working part time the overtime will be considered based on the FTE*daily hours as regular time, any value above should be considered as overtime. Is that possible?

Thanks in advance!

Best regards.
TB
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hi samuel.moran.g,

Thanks a lot for your feedback.

Currently, we have no access to any job info fields within our Time Valuation.

Since we are aware that this is necessary in many cases, we are working on a solution to integrate business rules in our Time Valuation. At the moment I cannot say in which release this feature will be general available.

This new feature should meet your requirement. Such a business rule can get the scheduled working time as an input, multiply this value by the FTE, and returns the result. The result is available in a Time Type Group and can be used as a threshold.

Best Regards,
Timo
WJANPOOM
Discoverer
0 Kudos

Hi Timo,

Thank you so much for the helpful sharing.

 

And I have the questions as below. Could you please help?

 

How can I create the record from the midnight to start plan?

 

Thank you so much.

WJANPOOM

mihaivasile
Discoverer
0 Kudos
Hi Timo.

 

Thanks a lot for your help in my previous comments.

 

I have one let's say strange question. As standard timesheet, UI displays error messages but when there are multiple errors does not provide the date or day on which the error is present.


There is any possibility of adding the date in the system text or in the Time Valuation Message Text?

Best regards,

Mihai

 

Standard error message display