Skip to Content
Menu
This question has been flagged
1 Reply
719 Views

We have an overtime bank (time bank) agreement for employees that allow hours above their weekly expected hours to be banked in exchange for time off at regular pay during regular working hours at some later date.  

Example:

  • John works 9 hours on Monday
  • He can bank 1 hour to reduce his working hours to 8
  • John works 7 hours on Thursday
  • He can use the banked hour to meet his 8 hours requirement for Thursday

I believe this is called "Comp Time" or also "Flexible Hours".

Avatar
Discard
Best Answer

Create a Project - Bank Time - and create one Task per Employee where they can timesheet their hours in and out.

When they work more hours than required, they would reduce their hours for that day by logging a negative amount of hours on their bank time Task.

When the work less hours than required, they would increase their hours for that day by logging a positive amount of hours on their bank time Task.


A simple Automation Rule can update the Description of their bank time Task so they can see their "balance" at any time by clicking the Task during Timesheet Entry.

The Action is of type Update Record using Compute on the Description field:

'No hours available.' if record.effective_hours == 0 else ('%s hours available.' % str(-record.effective_hours) if record.effective_hours < 0 else 'No hours available - you owe %s hour(s).' % str(record.effective_hours))


User then manage their Timesheets like this:

Initially, when they click on their Bank Time Task:

They see:


When they reduce their worked hours from 9 to 8:

They would then see:


If they ever took more than available, they would see:


OPTIONAL: You may also want to schedule an Approval Activity for "withdrawals" of banked time, via another Automation Rule that looks for increases in the Time Spent field.

Avatar
Discard
Related Posts Replies Views Activity
1
Mar 25
2133
0
Apr 23
2613
0
Jan 23
1443
0
Jul 21
2118
1
May 21
11764