Page tree
Skip to end of metadata
Go to start of metadata

Title: Comp Time (Banking Time) 

Brief description:

Many companies use Comp Time as a form of allowing employees to earn and take leave. This is often separate from vacation time. Because almost every company’s definition of comp time is different, there is not a comp time feature, per se, in Unanet. This solution outlines how to set up a Comp Time (Banking Time) solution to capture time earned/banked and time taken/paid. Each customer’s comp time solution is specific to their requirements, so it will typically require a professional services consultant to implement/configure the solution. Please contact your Unanet Customer Success Manager for more details.

The following provides insight regarding Comp Time from a compliance perspective:

Technology & Business Solutions - Comp Time Policies - Accounting Impacts for Government Contractors

What’s covered in this document:


Some of the key questions to consider when considering implementing a Comp Time plan include: 

  1. Does everyone have the same plan? What employee types are eligible for comp time plans?
  2. What are the rules for banking? For example, can anything over 8 hours/day be banked? Anything over 40 hours/week can be banked? Something else?
  3. Do the hours cap at a certain level?
  4. Do the hours expire?
  5. Can the employee be paid for unused hours?
  6. Can the employee select how many hours they are going to "bank" versus be "paid out"?


Below there are two options for tracking comp time in Unanet. The main difference between the two is that Option 1 tracks comp time in a separate Pay Code, allowing for reporting on past comp time in Unanet, while Option 2 does not. Option 2 makes it easier on the end user by requiring only one row in the timesheet instead of the two lines needed for Option 1 (one to regular time and one to the comp time Pay Code).

Option 1 (employee charges to a separate Pay Code)

In this approach, comp time is earned when the person charges in their timesheet to a unique pay code (e.g. “COMP_BANKD”) on the customer/direct project. An export template is used to export out all time charged to that unique pay code into the form of a Unanet Assignment import. Once imported back in, the assignment budgets are updated into a Comp Time Leave Project. The employee is not paid for these hours. They are banked as future leave available to be taken.

When the person uses the earned comp time, they charge it to a different pay code (e.g. “COMP_PAID”). The employee is paid for these hours as typical leave earnings.

The update is run as often/regularly as you want to update the earned leave balance, but most often coincides with payroll processing (after timesheets for the period are completed).

Note: There could be different flavors of handling Comp Time (Banking Time) balances at year end. One example is below:

  • Clients may desire to carry over Comp Time (Banking Time) balances from year to year, never expiring or paying them out. In that case, the export logic is set to create assignment budget dates of BOT to EOT, and the person’s Comp Time assignment budget will continually increase over time. Their ‘balance’ of hours will always show on the Assignment equal to:
    • Total # of hours earned/recorded on COMP_BANKD pay code - Total # of hours taken/recorded on COMP_PAID pay code = VARIANCE / Comp Time Balance.
    • Depending on the frequency at which clients run their export/import of this time, the balances may be only as valid as the latest import run of data.
      • Additional Coding:
      • To assist in managing the comp time balances, a Stored Procedure could be coded to, either at the point of Save or Submission, check the user's balance of all time charged to COMP_BANKD minus all time taken on COMP_PAID, to determine if the balance is 0 or greater. If the balance is a negative, the SP could throw an error, provide the actual balance in the message, and force the user to edit his/her timesheet before submitting.

Setup Steps (Option 1)

  1. Ensure "Pay Code" is shown on the timesheet by going to Admin > Properties > Time > Edit Settings and deselecting the "Hide Pay Code" option.
  2. Set up two Pay Codes of "CT_BANKD" and "CT_PAID" in Admin > Setup > Pay Codes.
    1. CT_BANKD is used to record time earned, and is associated with the worked projects.
      1. Set up as (Additional Pay - Undiluted) with a cost rate factor = 1
      2. The CT_BANKD Pay Code should be excluded from data transmitted to payroll providers to avoid duplicate paying the employee.
    2. CT_PAID is used to record time taken from the bucket of earned hours, and is associated with the Comp Time project.
      1. Set up as (Standard Pay - Diluted) with a cost rate factor = 1
      2. The CT_PAID Pay Code is treating as Regular Time for purposes of transmitting data to payroll.
  3. Create a project called COMP_TIME, mark it as a Leave Project, and allow future charges on the Time tab.
    1. Also, on this project’s profile > left menu > Pay Code, select ONLY the “CT_PAID” Pay Code
    2. For Financials licenses, this project should be mapped to an "Accrued Comp Time" GL account in the project profile > left menu > Accounts.
    3. See additional considerations for Financials licenses below.
  4. Create a Comp Time export template in your instance of Unanet, and review the logic. You will likely need the assistance of a Unanet representative.
  5. In the export template logic below, understand that the data is being output into an Assignment Import file type format to be re-imported back into Unanet to update (replacing, not adding to) each user’s comp time balance/budget of hours.

Ongoing Process (Option 1 only)

Charging Time 

  1. Instruct timesheet users to charge any comp time (banking time) earned to the project worked and change the pay code to CT_BANKD.
    1. User records standard hours worked of "8" against direct project with the RT pay code.
    2. User records additional hours worked that earned Comp Time against direct project and selects the CT_BANKD pay code from the drop down menu (this is a custom labeled code, so it can be whatever you want).


  2. Charge any comp time used/paid to the pay code CT-PAID (this is a custom labeled code, so it can be whatever you want).

  3. NOTE: Clicking on the eyeglasses next to the COMP_TIME project gives you a pop up screen that shows the current balance of available hours in the Variance column.

Verifying Earnings 

  1. Run Time Details report on current time period to see if there are any pending CT-PAID (used) hours for the period that just ended. Be sure to filter on just the CT-PAID Pay Code.

    Alternatively, run the Project Pay Code Summary Report selecting only CT_BANKD and CT_PAID for the same results without as much detail.

  2. Check to see if there are hours on the report.

  3. If there are no hours on the report, you do not need to complete the process. If there are hours displayed in the report, proceed by running the Admin > Export > Comp Time Template to export the new balance of hours (explained below).

Updating Comp Time Assignment Balances

Exporting the new balance of hours
  1. Run the extract on either the current year (1/1/20XX – 12/31/20XX) or BOT to EOT, depending on your requirements for balances. Be sure to check COMPLETED, LOCKED, and EXTRACTED statuses.

Importing the new assignment budgets
  1. Save the file, and go to Admin > Import > Assignments. Navigate to the file you just saved. Check the email notification box if you would like to remind those users that they have credit hours available for use.
  2. Click the “Import” button. Confirm there are no errors.

View Existing Balances
  1. Run the Summary Project Performance Report, filter to the “Comp Time”/"Banking Time" Project, select either “Current Year” or “BOT – EOT” (depending if your Comp Time/Banking Time balances expire) from the dropdown, and click Run.

Error rendering macro 'excerpt-include'

User 'null' does not have permission to view the page.

Option 2 (calculation occurs based on time charged over standard business week hours)

To simplify for end users, and have all time reported against one row (rather than the two separate Pay Codes), chose Option 2. In this approach, comp time earned will be based off of total hours worked minus total hours in a business week. This overage would be equal to the users comp time earned. These calculated hours would then be distributed to the employees using a dummy Accrual Plan. A Time export in the format of a "Person Accruals" import would calculate the excess hours considered to be comp time (for example, anything over 40 hours in one week). This export would be imported into the dummy Accrual Plan, and the excess hours would be added to the employees' budgets. 

Setup Steps (Option 2)

  1. Create a Time export, using the “Person Accruals" import format as the template.
  2. Create a dummy Accrual Plan.
    1. Assign dummy plan to all employees that are eligible for Comp Time/Banking Time (this step should also create the Project/Task Assignments being used for this plan). 
    2. Do not have any rows entered on the Schedule tab for Months of Service intervals or Accrual Hours Per Period (the hours in the Accrual Plan will be adjusted by the export).
    3. Set the Accrual Plan to post manually to keep it from being automatically scheduled (the system should never auto-post this).

Ongoing Process (Option 2) 

  1. Run Time Export
    1. At the end of the Time Period, run the export. This should take the number of hours worked in the period for an employee, subtract the number of hours in the Time Period, and produce a value in the Hours field of the export.

  2. Import Time export as Person Accruals Import
    1. Take the CSV export file and import back into Unanet under the "Person Accruals" Import Type. This should add the value in the Hours field to the existing budget in the Accrual Plan.

  3. Error rendering macro 'excerpt-include'

    User 'null' does not have permission to view the page.

Additional Considerations for Financials License Types

For those with Financials license types, it is important to understand how these transactions flow into the General Ledger. These transactions are summarized below:

  • Labor Cost Post system journal entry created when comp time is earned (CT_BANKD)

DR labor expense


  • Manual journal entry required to correct the labor cost posting above

A manual journal entry is required each payroll period to move the appropriate balance from accrued wages and into the comp time liability account.

The amount of this journal entry can be found by running a Person PayCode report or a Person Time Details filtered for just the "CT_BNKD" PayCode. This entry could be automated by using a Time Export to automate the journal entry, similar to the assignment import process described above.

DR accrued wages 

CR comp time liability 

  • Labor Cost Post system journal entry created when comp time is taken (CT_PAID)

DR comp time liability

CR accrued wages payable