Payroll Processor

The payroll processor allows to group employees/contractors, especially with different regulations.

The main attributes are:

  • Type - Weekly or Monthly
  • First Day of Week (defaults to Sunday if not defined)
  • Overtime min hours/week (default, can be overwritten in Resource)
  • Default - for Resources which do not have a Payroll Processor assigned

You can also define here a cut-off date (close date) for Time and Expense entries.


Payroll Period


You need to define your payroll periods with a

  • unique name
  • payroll processor
  • start date
  • end date

The Date Range should not overlap and be in sync with the Timesheet range (week start). If this is not the case, the first applicable (not closed) payroll period will be used. Once you closed a payroll period, you can create a new one for the same date range - e.g. for late Timesheets or adjustments.


You can define parallel Payroll Periods for different user groups - e.g. US and Canadian employees.


Payroll Codes


You can define multiple payroll codes which are used as summary levels in the Payroll Periods. For the normal time, you would not select any of the indicators. For Holiday and Vacation, it is best practice to create Projects, so that users can use the normal Timesheet entry to specify off-time. Alternatively, you could also use Activity Types, but you should make sure that the payroll codes used in Projects and Activity Types are consistent.


Payroll Code Priorities


You can define the payroll code in different parts of the system. This is the priority hierarchy to derive the payroll code:

  • Activity Type
  • Project
  • Resource
  • User
  • Custom Setting - Payroll Settings (fallback) 


Payroll Reporting Flow



Payroll Processing Flow

After Timesheets have been entered and approved, the Payroll Periods needs to be updated. This can be done manually in the Payroll Period via the Update Period button - or via a scheduled Apex Class (PayrollUpdate).


If you have Overtime rules, you would run the overtime calculation via the Calculate Overtime button after you closed the period. You can (re) run the overtime calculation multiple times - also before you close the period to validate the calculation.


Users (and their Managers) can view their reported hours in the Payroll View tab by selecting the payroll period.


Payroll Summary


The Payroll Summary is a reporting entity. It summarizes the values Daily by

  • Payroll Period, User and
  • optionally Project / Phase / Line / Activity Type / Rework. 


You set the summary level in the Custom Settings in "Payroll Settings" for Summary. Note that changes are effective for new transactions. To change existing summaries, you need to recalculate the period.


Payroll Entry


This is the underlying entity for Payroll View and allows how to summarize the entries - by


  • Payroll Period, User, Payroll Code and
  • optionally Project / Phase / Line / Activity Type / Rework.


You set the summary level in the Custom Settings in "Payroll Settings" for Entry. Note that changes are effective for new transactions. To change existing entries, you need to recalculate the period.



Payroll Setup Steps (Basic)

Payroll Processor

  • Create at least one (default) Payroll processor. The main selection here is the week start day (changing the week start day with existing data may result in inconsistent reporting)
  • Specify the weekend days for overtime calculation (if used) - Weekend days can be overwritten by Resource

Payroll Type

  • Create a Payroll type for all time categories you report to the Payroll System
  • Typical values are: Salaried (Exempt), Hourly
  • Depending on your setup, you may have just one PTO (Paid Time Off) or differentiate it, e.g. PTO Planned (Vacation), PTO Unplanned, (Sick leave), Statutory Holidays, ...

Project

  • Create a Project (or Project Line) for all PTO (Paid Time Off) options, e.g. Vacation, Sick, Holiday, ... and link it to the corresponding Payroll Type.

Resource

  • For each resource, select the Payroll Processor (if more than one)
  • and the default Payroll Code (e.g. Salaried, Hourly)

Payroll Period(s)

  • Create your Payroll Period(s).
  • Click on Process Period - or on the individual steps
    • Update Period - Entry/Summary Overtime - Entry/Summary Limit



Payroll Setup Steps (Overtime)

This sets up overtime calculations for Hourly employees.

Payroll Type

  • Create a Payroll Type for each type of overtime (multiplier) - i.e. you may have normal overtime and overtime on weekends.
  • Update the e.g. Hourly Payroll Type with the Overtime Payroll Type

Resource

  • Enter the Overtime min hours/week - e.g. 40


Payroll Setup Steps (Limit)

Salaried (exempt) employees are not paid overtime.  Sometimes, the Payroll System requires that only 40 hours are reported.  In this case, the reported hours are capped for reporting (and booked to a different Payroll Code).

Payroll Code

  • Create a Payroll Code for Limit

Resource

  • In Payroll Period Limit, enter the max hours to be reported, e.g. 40
  •  Select the Payroll Code for Limit
  • Optionally, you can book these hours to a 'management hours' project - create the Project/Phase/Line and reference it in the Resource Field Payroll Period Limit