Skip to content

Payroll


The Payroll module handles the full payroll cycle — from timesheet collection through payroll computation and posting — along with complete employee records management and a self-service employee portal.


  • Payroll Period — A defined time window (e.g., bi-weekly, semi-monthly) for which employees are paid. Each payroll period has a start date, end date, and check date. Payroll statements are grouped by period.

  • Timesheet — A record of an employee’s hours worked during a payroll period, broken down by day and entry type. Timesheets can be allocated to jobs and work orders for cross-module cost tracking. They must be approved before syncing to payroll.

  • Payroll Statement — A single employee’s pay calculation for a payroll period. Contains earnings (regular, overtime, holiday, etc.), deductions (taxes, insurance, 401k), and accrual usage. Each statement must be approved before the payroll run.

  • Earning Type — A classification for compensation (e.g., Regular, Overtime, Holiday, Commission). Each earning type has a code, a GL account, a rate multiple (e.g., 1.5× for overtime), and tax treatment settings.

  • Deduction Type — A classification for payroll withholdings (e.g., Federal Tax, Health Insurance, 401k, Garnishment). Each deduction type has a code, a GL account, and settings for pre-tax treatment, FICA exemption, and employer vs. employee responsibility.

  • Accrual — A running balance of earned time off (Vacation, Sick, PTO). Accruals track a running balance that is adjusted on payroll statements. When an employee uses PTO, the accrual balance is reduced on their payroll statement.

  • Direct Deposit Split — Employees can split their net pay across multiple bank accounts by percentage or flat amount. The ACH file generated after payroll run includes all split instructions for the bank.

  • Time Clock — A browser-based (desktop) or mobile clock-in/clock-out interface for employees. Employees select a pay type, clock in to start tracking time, and clock out when finished. The system captures timestamps, geolocation, and calculates hours and amounts. Time clock entries feed into timesheets for payroll processing.


Upstream — Where Payroll gets its data:

  • Timesheets → Approved timesheets are synced to payroll statements via the Sync Timesheets action. During sync, timesheet entries are aggregated by earning type, rate, and tax/GL settings into earning lines on the employee’s statement — entries sharing the same earning type and rate combine into one line — with overtime premiums added as separate lines. When Link Service Labor to Time Clock is enabled, each work-order time entry is additionally split by GL account: the portion matching the cost recorded on the work order’s linked labor lines posts against the Accrued Service Wages Ledger (netting out the accrual that work-order billing posts there), and any remainder posts against the unapplied labor account. Only labor rows that have been clocked out are included in the split; a row still on the clock stays editable and its time remains in unapplied labor.
  • Service (Work Orders) → When Link Service Labor to Time Clock is enabled in Settings, technicians clocking in and out on work orders from the mobile app create timesheet entries that are linked to the work order’s labor cost lines. When it is disabled, mobile work-order clock-ins create labor cost lines only, without timesheet entries (work-order-linked time can still be entered manually on timesheets).
  • Job Costing → Timesheet entries allocated to jobs feed labor cost tracking. Syncing creates the payroll earning line on the statement; when the payroll is run (processed), each job-allocated, post-to-GL timesheet entry also creates a job cost entry (with labor hours and overhead).

Downstream — Where Payroll sends its data:

  • General Ledger → Running payroll posts GL entries: debit the configured wage expense accounts for earnings, debit the configured employer tax accounts for employer contributions, credit the configured payroll-accrual (clearing) account for net pay (settled to the bank account when checks/ACH are issued), and credit the configured tax liability accounts for withholdings.
  • Job Costing → Job-allocated timesheet hours create labor cost entries on the job, appearing in the Actual vs. Estimate comparison. An employee’s hourly rate × hours worked flows as a labor expense.
  • Bank (ACH) → The ACH file (downloaded on demand from Previous Payrolls → Download ACH File) contains direct-deposit instructions only for employees set up for direct deposit, ready for bank submission. Employees paid by check are excluded from the ACH file and receive printed checks instead.

Key Integration Point — Timesheet-to-Job-to-GL Flow: When Mike Torres logs 8 hours on Job J-1050 via his timesheet, the system creates three connected records: (1) a timesheet entry for 8 hours, (2) a payroll earning on his statement for 8 hrs × $30/hr = $240, and (3) a job cost entry on J-1050 for $240 of labor. Processing the payroll posts several separate balanced GL documents rather than one combined posting: a per-employee check document (debiting each earning’s GL account for the gross wages, crediting the withholding liability accounts for the deductions, and crediting the payroll-accrual account for net pay; for employees paid by check, a paired posting then debits the payroll-accrual account and credits the bank account) plus a separate “Payroll Job Hours Posting” document for each job-allocated timesheet entry (with its own debit/credit pair and any overhead), and “OT Premium Job Allocation” documents where overtime premiums are redistributed to jobs.


Navigate to Payroll → Compute Payroll to process payroll for a period.

ControlDescription
PayrollDropdown — select the active payroll period to work with
Start DateRead-only — period start from the selected payroll
End DateRead-only — period end from the selected payroll
Check DateRead-only — check date from the selected payroll
BankBank account to use for payroll disbursement

All payroll statements for the current period appear in the grid:

ColumnDescription
ApprovedA checkbox per statement; the group row shows an “X of Y approved” summary
Direct DepositWhether the statement is paid by direct deposit (yes/no)
IDThe employee’s ID
EmployeeEmployee name (last, first)
(per earning type)One column per earning type, showing that earning’s amount
Gross PayTotal compensation before deductions
Net PayTake-home amount after all deductions

Use the Search bar to filter statements by employee name. Toggle Only Unapproved to focus on statements that still need review.

ActionDescription
New Payroll StatementCreate a statement for an additional employee in this period
Sync TimesheetsPull approved timesheet entries into payroll statements
RunExecute payroll computation — validates all statements and posts
Approve Entire PayrollApprove all statements at once
Un-Approve Entire PayrollReverse approval on all statements
Turn On Direct DepositSet all statements to direct deposit — but only for employees who have a bank account on file
Turn Off Direct DepositRemove direct deposit from all statements
Previous PayrollsView and work with completed historical payrolls
Payroll SummaryRun the payroll summary report
Delete PayrollPermanently remove the current payroll (requires permission)

Deleting a payroll permanently removes the payroll period and all its associated statements.

Prerequisites:

  • The payroll must not be processed — if payroll has already been run, it cannot be deleted. Refresh the page if you see a stale record.
  • There must be no timesheets still associated with the payroll — unlink or delete associated timesheets first.
  • User must have the Delete Payroll permission.

A confirmation dialog appears before the deletion proceeds. This action cannot be undone.

FieldRequiredDescription
EmployeeYesEmployee to add to this payroll
NotesNoOptional notes for this statement

Lists completed payrolls showing Start Date, End Date, Check Date, Description, Check Total, Direct Deposit Total, and Total. From each historical payroll you can:

  • Download ACH File — Download the ACH direct deposit file
  • Print Direct Deposit Stubs — Download the direct-deposit stubs as a PDF
  • Re-Print All Checks — Reprint check documents for all employees in the payroll
  • Re-Print Single Check — Reprint an individual employee’s check without reprinting the entire batch
  • Re-Send Direct Deposit Stubs — Re-email stubs to direct-deposit employees, at each address marked Email Pay Stubs on their Email Addresses tab
  • Check Register Report — Open the check register report
  • Payroll Summary Report — Open the payroll summary report
  • Timesheet Summary Report — Open the timesheet summary report

Clicking Run triggers a series of validation steps before payroll posts:

  1. Overshot Deductions Dialog — Runs first. If any deductions exceed their allowed maximum, this dialog shows the overage and offers to auto-adjust; payroll continues once there are no overshot deductions.
  2. Check Issues — Lists any fatal or non-fatal validation issues (for example, unapproved timesheets or a direct-deposit/bank misconfiguration are fatal; a negative accrual balance is non-fatal). Fatal issues must be resolved; when only non-fatal issues remain, a Run Anyways button bypasses them.
  3. Payroll Messages Dialog — Enter an optional message to include on pay stubs, then click Run Payroll to finalize.

After running, you are taken to the Payroll Complete screen.


Clicking an employee’s statement from the Compute Payroll grid opens the statement detail screen.

FieldDescription
PayrollThe payroll this statement belongs to (read-only label)
EmployeeThe employee for this statement (selectable)
NotesFree-text notes for the statement
Accrual BalancesCurrent balance for each accrual type
Direct DepositCheckbox marking the statement to be paid by direct deposit

Computed totals — Total Hours, Gross Pay, Taxes, Other Deductions, Reimbursement, and Net Pay — are shown in the footer beneath the earnings and deductions grids, not in the header.

Lists all earning entries for this statement:

ColumnDescription
Earning TypeThe earning type, chosen from a dropdown (a single selectable column)
HoursHours worked (for hour-based types)
RatePay rate
AmountDollar amount for this earning
LedgerLedger account this earning posts to
OverriddenWhether the amount was manually overridden (for computed earning types)

Add an earning with the Add Earning button in the column header, and remove a row with its Delete button; cells are edited inline. When you select an earning type configured for FLSA overtime, an Overtime Date Range dialog opens automatically, letting you set the overtime start and end dates or mark the overtime Discretionary. (Earnings synced from a timesheet show a Synced chip instead of a delete button and cannot be edited here.)

Lists all deduction entries:

ColumnDescription
Deduction TypeThe deduction type, chosen from a dropdown (a single selectable column)
AmountDollar amount for this deduction
YTD TotalYear-to-date total for this deduction type (read-only)
OverriddenWhether the amount was manually overridden

Editing earnings or deductions on a statement triggers a background recompute that recalculates the affected amounts and the footer totals (Gross Pay, Taxes, Other Deductions, Reimbursement, Net Pay). Whether the engine recalculates a given line depends on its Overridden flag.

For each deduction line:

  • When Overridden is unchecked and the deduction type is computed (system-calculated) or percent-based, recompute recalculates the line’s amount from the current configuration — a computed deduction is recalculated by its rule, and a percent deduction is recalculated as its percentage of gross pay.
  • When Overridden is checked, recompute leaves the amount exactly as you entered it.

Typing an amount into a computed deduction line — or into a line that came from an employee deduction setup — automatically checks Overridden for that line, so your manual figure is preserved on the next recompute.

The same logic applies to computed earnings: an earning whose type is system-computed is recalculated by recompute unless its Overridden box is checked, in which case the entered amount is kept.

Some earning types are configured to compute FLSA overtime automatically. When you select one of these earning types on a statement, the Overtime Date Range dialog opens.

  1. Set the Overtime Start Date and Overtime End Date for the range over which overtime should be computed. The range defaults to the payroll period’s start and end dates.

  2. Alternatively, check Discretionary. This clears the date range and treats the earning as a discretionary payment that does not generate an overtime premium.

  3. Click Save to close the dialog.

For a non-discretionary overtime earning, the system automatically adds a separate OT Premium earning line tied to the originating earning and its date range (it is not added a second time if a matching OT Premium line already exists). The OT Premium line’s amount is calculated by the recompute engine as the FLSA overtime premium for the selected date range, and like other computed earnings it is recalculated on recompute unless its Overridden box is checked.

Displays the employee’s current accrual balance for each accrual type — a single balance number shown above the accrual type name. It does not break out opening balance, amount used, and remaining balance separately.

The statement recalculates automatically as you edit earnings and deductions. Click Save to store your changes; saving also marks the statement as approved and returns you to Compute Payroll. To approve/unapprove or delete a statement without opening it, use the Approved checkbox and the delete (trash) icon on the Compute Payroll grid.


After running payroll, the completion screen confirms the results and provides output options.

  • Check Date and GL Date
  • Pay Period (start and end dates)
  • Total Direct Deposit Amount
  • Total Check Amount

Employee counts, earning-type breakdowns, per-employee detail, and YTD figures are not shown here — they appear in the separate Payroll Summary Report.

ActionDescription
Email Direct Deposit StubsEmail pay stubs to direct deposit employees, at each address marked Email Pay Stubs (employees with no such address are skipped)
Download ACH FileDownload the ACH file for bank submission
Print ChecksPrint physical payroll checks
Print Direct Deposit StubsDownload/print the direct deposit pay stubs
Check Register ReportOpen the check register report
Payroll Summary ReportOpen the payroll summary report

Voiding a payroll check creates reversing GL entries that offset the original check posting. The original posting is preserved for audit purposes — it is not deleted.

Navigation: Go to Payroll → Manage Employees, select the employee, then open the Payroll History tab. On the check’s row, click the Void (cancel) icon button and confirm.

A confirmation dialog titled Void Payroll Check appears: “Are you sure you want to void Check # [check number]?” Click the red Void button to proceed or Close to abort.

The void date is set to the original check date of the payroll run.

The system creates a complete set of reversing GL entries with amounts negated (multiplied by −1). The reversal is recorded as a “Void Payroll Check” source posting. After voiding, the check displays a red Void chip in the payroll history.

Permission required: Void Payroll Check


From the Payroll History tab you can email the pay stub for any individual past payroll statement directly to an email address. The stub is sent as a PDF attachment named paystub.pdf.

Navigation: Go to Payroll → Manage Employees, select the employee, then open the Payroll History tab. On a check’s row, click the Email Pay Stub (envelope) icon button.

The icon appears only on non-void rows; voided checks show a red Void chip in place of the row actions and cannot be emailed.

A dialog titled Email Pay Stub opens with the following fields:

FieldRequiredDescription
Email AddressYesRecipient address. Choose one of the employee’s saved email addresses from the autocomplete, or type any valid email address. Must be a valid email.
SubjectNoEmail subject line.
BodyNoEmail message body (multi-line).

The Email Address autocomplete is populated from the email addresses recorded on the employee’s Email Addresses tab. Click Send to deliver the stub, or Close to cancel. On success, a “Pay stub sent!” confirmation appears and the dialog closes.

Navigate to Payroll → Manage Employees to create, edit, and manage employee records.

ColumnDescription
IDSystem-assigned employee identifier
NameEmployee full name
Pay TypeHourly, Salary, or Commission
Pay MethodCheck or Direct Deposit
StatusActive or Terminated

Use the search bar to filter by name or Employee ID. An Active / All / Terminated toggle filters the list by employee status (defaults to Active).

General Tab

FieldRequiredDescription
Employee IDNo (create) / Yes (edit)Human-readable ID (max 50 characters)
Effective Hire DateYes (create only)The employee’s initial hire date; required when creating, read-only when editing
First NameYesEmployee first name
Middle InitialNoMiddle initial
Last NameYesEmployee last name
AddressYesStreet address
Apartment NumberNoSuite or unit (field is labeled “Apartment Number”)
CityYesCity
StateYesState (dropdown)
ZipYesPostal code (field is labeled “Zip”)
Cell PhoneYesPrimary mobile phone
Home PhoneNoHome phone number
DepartmentNoThe employee’s organizational department — used as a filter in payroll and timesheet reports
DivisionsNoPayroll divisions this employee is assigned to (multi-select); managed on the employee View screen
NotesNoFree-text notes (multi-line)

Tax Info Tab

FieldRequiredDescription
Social Security NumberYesSSN in masked format. Must be unique — saving a Social Security Number that already belongs to another employee (active or terminated) is rejected with a message naming the existing employee, so you can find and rehire that record instead of creating a duplicate.
Birth DateYesMust be in the past
Tax StateYesState used for tax withholding
Marital StatusYesSingle, Married, or Head of Household
SexYesMale or Female
ExemptionsNoNumber of tax exemptions
Wage Garnishment Limit (%)NoMaximum garnishable percentage of pay (edit only)
Use Post 2020 W4?NoCheckbox — uses the updated W4 withholding method
Box 2(c)NoCheckbox — W4 multiple-jobs / spouse-works indicator (labeled “Box 2(c)”); enabled only when Use Post 2020 W4? is checked
Dependents CreditNoDependent tax credit amount
Other IncomeNoAdditional income for withholding purposes
Other DeductionsNoAdditional deductions for withholding
Non-Resident AlienNoCheckbox — applies NRA tax rules
Workers Comp CodeNoWorkers compensation classification code

Notes Tab

Free-text notes field for general employee notes.

Custom Fields Tab

Organization-specific custom data fields.

TabDescription
AccrualsAccrual balances — type, effective date, expiration date, balance. Add/edit/delete entries.
AttachmentsUploaded documents (W2s, tax forms, etc.)
Deduction TypesEmployee-specific deduction configuration — deduction type, amount/percent, target amount, and minimum/maximum amounts (no effective date)
Direct Deposit SplitsBank account routing for split direct deposits — percentage or flat amount per account
Earning TypesEarning types available to this employee, each with an optional GL account override (shown in the GL Override column). No per-employee rate override or effective dates.
Email AddressesMultiple email addresses — primary and secondary designations, and an Email Pay Stubs checkbox per address. Direct deposit stubs are emailed only to addresses with Email Pay Stubs checked; saving an address does not opt it in.
Employment HistoryHire, rehire, and termination event history with dates and notes
Pay RatesHistorical pay rates with effective dates and hourly/salary indicator
Payroll HistoryPast payroll statements — check dates, gross/net pay, YTD totals

The Payroll History tab lists an employee’s past payroll statements from processed payroll runs. Each row is a single statement and can be expanded to show its earnings and deductions detail.

FilterDescription
Start DateIncludes only statements whose check date is on or after this date
End DateIncludes only statements whose check date is on or before this date
Earning TypeIncludes only statements that contain at least one earning of the selected earning type. The list shows non-archived earning types.

Set any combination of filters and click Search to reload the grid. The history loads automatically when you first open the tab. Only statements from payroll runs that have been processed are shown.

ColumnDescription
Check DateThe check date of the payroll run
Check NumberThe statement’s check number
HoursTotal hours-based earning hours on the statement
Gross PayGross pay for the statement
DeductionsTotal employee (non-employer) deductions
Net PayNet pay for the statement
Direct DepositIndicates whether the statement was paid by direct deposit

A footer row aggregates the sum of Hours, Gross Pay, Deductions, and Net Pay across the displayed rows. The grid is sorted by check date with the most recent statement first.

By default, voided statements are hidden. The eye icon in the header of the rightmost (action) column toggles between Show Void and Hide Void. When voided statements are shown, each voided row displays a red Void chip in place of its row actions.

For statements that are not voided, the action column provides:

ActionDescription
Email Pay StubOpens the Email Pay Stub dialog to send the statement’s pay stub to an email address, with an optional Subject and Body
Void Payroll StatementVoids the statement after confirmation

Click the expand toggle on a row to open a detail panel showing two grids for that statement:

GridColumns
EarningsEarnings (earning type name), Rate, Hours, Amount
DeductionsDeductions (deduction type name), Amount

In the Hours column, hours are shown only for earning types whose type is Hours. The Deductions grid lists employee deductions only; employer deductions are not shown.

ActionDescription
Audit EmployeeOpens the employee’s audit (change) history — see Audit Employee below
Edit EmployeeOpens the employee record for editing
Terminate EmployeeOpens a dialog requiring an Effective Date (must be on or after the latest hire/rehire date) and optional Note
Rehire EmployeeReactivates a terminated employee — requires an Effective Date and optional Note. Creates a new employment history record.

Adding a pay rate or an accrual is done from the employee record’s Pay Rates and Accruals tabs, not from this Actions menu.

Rehiring reactivates a terminated employee and creates a new employment history record.

FieldRequiredDescription
Effective DateYesThe rehire date. Defaults to today.
NoteNoOptional note documenting the reason for rehire.

On submission, the system:

  1. Creates a new employment record with the effective date as the start date and no end date.
  2. Updates the employee’s status from Terminated to Active.
  3. The employee becomes available for payroll processing and timesheet entry.

The Rehire Employee action appears only when the employee’s status is Terminated. The employee’s full employment history (hire, termination, and rehire events) is preserved on the Employment History tab.


The Audit Employee action opens a read-only change history for the employee record, showing each recorded change along with when it happened and which user made it.

Navigation: Payroll → Manage Employees, open the Actions menu on an employee, then choose Audit Employee.

The screen loads with a date range and lists only the audit activity within it. By default the range spans the previous month through today. Adjust the range and select Search to reload.

FieldDescription
Start Date/TimeBeginning of the audit range. Defaults to one month before today.
End Date/TimeEnd of the audit range. Defaults to today.

Each row is one recorded change transaction:

ColumnDescription
TimestampDate and time the change was recorded
UserThe user who made the change
DescriptionA summary of what the transaction did

Expand a row to see the individual field changes within that transaction. Each change shows a Description, the Old Value, and the New Value. Empty values are shown as (empty). Old values are highlighted in red and new values in green.

Navigate to Payroll → Manage Timesheets to record and manage employee time.

ControlDescription
PayrollSelect the payroll period to view timesheets for
Start / End / Check DateRead-only — derived from the selected payroll
Division FilterFilter timesheets by division
Only UnapprovedToggle to show only unapproved timesheets
TabDescription
TimesheetsGrouped list of timesheets by employee
Un-Imported EntriesIndividual time-entry records not yet imported into a timesheet
ColumnDescription
ApprovedCheckbox to approve/unapprove the timesheet
IDEmployee ID
Employee NameEmployee the timesheet belongs to
Timesheet StartEarliest entry date in the timesheet
Timesheet EndLatest entry date in the timesheet
(per pay/earning type)Dynamic columns showing hours or amounts for each timesheet entry type
Total HoursTotal hours in the timesheet
(actions)Edit and Delete the timesheet
ColumnDescription
DateDate of the time entry
NameEmployee who worked
Pay TypeTimesheet entry type classification
Time OnClock-in time
Time OffClock-out time
HoursCalculated hours
RatePay rate (visible with the Payroll Show Rates permission)
AmountDollar cost — for Hours-type entries it requires the Payroll Show Rates permission; for Amount-type entries it requires the Payroll Show Amounts permission
SourceWhere the entry originated
MemoFree-text notes on the entry
ActionDescription
New TimesheetOpen a new timesheet for an employee and period (Timesheets tab)
Auto-ImportAutomatically pull in matching un-imported time entries (Un-Imported Entries tab)
Import SelectedImport the currently selected un-imported entries (Un-Imported Entries tab)
Process TimesheetsPush approved time into the payroll statements; available only when enabled in Payroll Settings
Timesheet SummaryOpen the timesheet summary report
Timesheet Summary by JobOpen the timesheet summary report grouped by job (PDF/Excel)
Delete All TimesheetsDelete every timesheet in the selected payroll at once, respecting the Division Filter (Timesheets tab; requires the Delete All Payroll Timesheets permission)
Import IncentivesPull eligible spiffs and commissions onto the selected payroll as earning lines (Un-Imported Entries tab)

Editing and deleting a timesheet are per-row icon actions in the timesheets grid, and approval is the per-row Approved checkbox — not top-level menu actions.

Available on the Timesheets tab to users with the Delete All Payroll Timesheets permission, Delete All Timesheets clears every timesheet in the selected payroll in one step instead of deleting them row by row. It honors the Division Filter: with a specific division selected it deletes only that division’s timesheets; with the filter set to show all, it deletes every division you manage. Only timesheets you have access to are affected.

Deleting a timesheet does not discard its work — the time entries are moved back to Un-Imported Entries, where they can be re-imported later. Any labor already linked to a work order keeps that link, so synced or invoiced labor is left intact. A confirmation dialog spells out what will be deleted before you proceed. Delete All Timesheets is not available on a payroll that has already been processed.

Un-Imported Entries: Auto-Import and Import Selected

Section titled “Un-Imported Entries: Auto-Import and Import Selected”

The Un-Imported Entries tab lists individual time-entry records that are not yet attached to any timesheet. While this tab is active, the Actions menu replaces New Timesheet with import actions — Auto-Import, Import Selected, and Import Incentives — that pull these loose entries (and eligible incentives) into timesheets for the selected payroll.

Both actions attach entries to each employee’s existing timesheet for the selected payroll, or create a new timesheet for that employee if one does not yet exist. Any timesheet that receives entries is reset to unapproved and unsynced, so it must be re-approved before it is processed.

Auto-Import opens the Entries for Auto-Import dialog, which previews every un-imported entry that qualifies for the selected payroll before anything is changed. The dialog title shows the selected payroll’s date range.

An entry appears in the preview when all of the following are true:

  • It is not yet attached to a timesheet.
  • Its date falls within the selected payroll’s start and end dates.
  • It belongs to an employee you are allowed to manage.
  • It is not a time-clock entry that still requires a clock-out — that is, time-clock entries whose pay type requires a Time Off value are excluded until that value is filled in.

The preview grid shows these columns:

ColumnDescription
DateDate of the entry
NameEmployee, shown as “Last, First”
Pay TypeThe entry’s timesheet entry type
Time OnClock-in time
Time OffClock-out time
HoursCalculated hours
RatePay rate (visible with the Payroll Show Rates permission)
AmountDollar amount — for Hours-type entries it requires the Payroll Show Rates permission; for Amount-type entries it requires the Payroll Show Amounts permission
SourceWhere the entry originated
MemoFree-text notes on the entry
  1. On the Un-Imported Entries tab, open Actions and choose Auto-Import.
  2. Review the entries listed in the Entries for Auto-Import dialog.
  3. Choose Continue Import to import every previewed entry, or Cancel to close without importing. Continue Import is disabled when there are no qualifying entries.

Import Selected imports only the entries whose checkboxes you have selected in the Un-Imported Entries grid, regardless of their dates. If no entries are selected, the action does nothing.

  1. On the Un-Imported Entries tab, select the checkbox on each entry you want to import.
  2. Open Actions and choose Import Selected.
  3. If any selected entry’s date falls outside the selected payroll’s start/end dates, confirm the Entries Outside of Selected Payroll dialog (see below). Otherwise the selected entries are imported immediately.

After a successful import, the imported rows leave the Un-Imported Entries list and the selection is cleared.

When you use Import Selected and one or more selected entries have a date before the selected payroll’s start date or after its end date, an Entries Outside of Selected Payroll warning dialog appears before the import completes. The dialog shows the selected payroll’s date range and a warning that these entries are outside the payroll dates and will be imported into the selected payroll anyway. It lists the out-of-range entries in the same columns as the Auto-Import preview.

Choose Continue Import to import the selected entries — including the out-of-range ones — into the selected payroll, or Cancel to back out without importing.

On the Un-Imported Entries tab, Import Incentives pulls Eligible incentives (spiffs and commissions; see Incentives) onto the selected payroll as earning lines. It opens a dialog titled with the selected payroll’s date range and lists the eligible incentives for the employees you manage, with all rows preselected:

ColumnDescription
Incentive #System-assigned incentive number
EmployeeThe payee
RuleThe incentive rule
KindSpiff or Commission
Invoice #The linked customer invoice
Eligible SinceDate the incentive became eligible
AmountThe incentive amount

Clear any rows you do not want to import, then choose Import Incentives. Each imported incentive is added to that employee’s statement under its rule’s earning type and moves to Imported. The result reports how many were imported and how many were skipped, with reasons — for example an employee with no statement on this payroll (the incentive stays Eligible for a later run), a statement that is already approved (un-approve it first), or a rule earning type with no GL account.

Navigation: Go to Payroll → Manage Timesheets, select a payroll in the Payroll control, then open the Actions menu and choose Process Timesheets.

The Process Timesheets action is shown in the Actions menu only when Process Timesheets Enabled is turned on in Payroll Settings. When it is not enabled, the action does not appear. The menu item is disabled until a payroll is selected.

Selecting the action opens a Process Timesheets confirmation dialog asking “Are you sure you want to process the timesheets?”. Click Confirm to run the process, or close the dialog to cancel.

When confirmed, the system processes the selected payroll’s timesheet entries:

  1. Each timesheet entry whose entry type is set to post to the general ledger is posted, creating the corresponding ledger documents and ledger lines (debit and credit) for the time amount, plus job-cost overhead postings where the entry is tied to a job.

  2. For entries tied to a job, a job cost entry is recorded, splitting the time into regular, overtime, and double-time hours according to the entry type.

  3. The payroll is marked as processed.

  4. The payroll is cleared from the Payroll selector for users who had it selected, so it no longer appears as the active in-progress payroll.

On success, a “Timesheets Processed” confirmation appears and the payroll list refreshes.

Navigation: Payroll → Manage Timesheets → Actions → Timesheet Summary by Job

This action opens the Timesheet Summary by Job Report dialog, which produces a report of timesheet entries for the selected payroll grouped by job. It is distinct from the Timesheet Summary report: rather than recapping hours by employee, it lists each timesheet entry under its job and subtotals hours (and amounts, where permitted) per job.

The report is scoped to the currently selected payroll and includes all timesheet statuses (approved and unapproved).

ButtonDescription
Export PDFGenerate and open the report as a PDF
Export ExcelDownload the report as an .xlsx file
CloseDismiss the dialog without generating a report
ColumnDescription
JobJob (Job Costing) the entry is assigned to; entries are grouped under this value
DepartmentEmployee’s department (included in the Excel export only)
ApprovedWhether the timesheet is approved
DateDate of the time entry
NameEmployee name (last, first)
TypeTimesheet entry type
Job CategoryJob cost category for the entry
Time OnClock-in time
Time OffClock-out time
HoursHours on the entry; subtotaled per job
RatePay rate (shown only with the Payroll Show Rates permission)
AmountDollar amount; subtotaled per job (shown only with the Payroll Show Amounts permission)
NotesNotes on the timesheet entry

Rows are ordered by job, then date, then employee name, and each job group shows a subtotal of Hours (and Amount, when shown).

On the Timesheets tab, individual timesheet rows can display warning icons that flag problems with the time covered by that timesheet. These warnings are advisory: they appear next to the affected employee’s name and are driven by the timesheet’s entry dates compared against the selected payroll period.

WarningMeaning
Timesheet contains dates outside of payroll rangeThe timesheet’s earliest entry falls before the payroll’s Start Date, and/or its latest entry falls after the payroll’s End Date.
This timesheet is invalidThe timesheet has an overtime-eligible entry that is missing required overtime date information, so it cannot be approved as-is.

When a timesheet is flagged as invalid, its Approved checkbox is disabled and the timesheet cannot be approved until the underlying entry is corrected. The out-of-range warning does not block approval — it only highlights that some entry dates lie outside the selected payroll period.

The “dates outside of payroll range” warning is determined by comparing each timesheet’s Timesheet Start and Timesheet End values against the selected payroll’s Start Date and End Date, so reviewing those columns alongside the warning icon shows which dates are out of range.

Opening a timesheet shows the header (employee, period, approval status) and a grid of time entries.

FieldRequiredDescription
DateYesDate of the entry
Pay TypeYesClassification for this entry
Time OnConditionalClock-in time (required for timed entry types)
Time OffConditionalClock-out time (required for timed entry types)
HoursConditionalDuration in hours, calculated automatically from Time On and Time Off for Hours-type pay types
RateNoPay rate for the entry
JobConditionalJob Costing job to assign this time to (required when the selected Pay Type is job-linked)
Work OrderConditionalWork order to assign this time to (required when the selected Pay Type is work-order-linked)
AppointmentConditionalService appointment associated with this entry (required when the selected Pay Type is work-order-linked)
Job CategoryConditionalCost category for job costing (required when the selected Pay Type is job-linked)
AmountNoDollar amount (for reimbursement entry types)
MemoNoFree-text notes

Each time entry row on the Timesheet Detail Screen has its own set of icon actions on the right side of the row, separate from the timesheet-level actions below.

ActionDescription
Unlink from timesheet and move to un-importedMarks the entry to be removed from this timesheet. The entry’s editable fields (date, pay type, times, job, hours, rate, amount, memo) are disabled while it is marked for unlinking.
Link back to timesheetShown in place of the unlink action once an entry has been marked to unlink; clears the mark and re-enables the entry’s fields so it stays on the timesheet.
Overtime Date RangeOpens the overtime date-range dialog for the entry. This action is available only for entries whose pay type is configured to compute FLSA overtime, and is disabled while the entry is marked for unlinking.
Delete timesheet entryRemoves the entry from the timesheet entirely. A time entry cannot be deleted once its linked work-order labor has been synced to payroll (correct it with an adjusting payroll entry) or the work order has been invoiced (credit the work-order billing first, then delete).
  1. On the Timesheet Detail Screen, find the entry you want to move and select Unlink from timesheet and move to un-imported. The entry’s fields become disabled to indicate it is marked for removal.
  2. If you change your mind before saving, select Link back to timesheet on the same row to restore the entry.
  3. Select Save. Each unlinked entry is detached from this timesheet and returned to the un-imported pool, where it can be imported into another timesheet via Auto-Import or Import Selected on the Un-Imported Entries tab.
  • Approved checkbox — Toggle the timesheet’s approval status (available on the timesheet detail screen and in the timesheets list)
  • Delete — Remove the timesheet from the timesheets list
  • Process Timesheets — A list-level action (not a per-timesheet button) that pushes approved time into the payroll statements; available when enabled in Payroll Settings

Open Employee Portal from the standalone item in the main sidebar (it is not nested under Payroll) for self-service access to pay history and personal information. The portal is unlocked by SSN verification and is accessible without administrator credentials.

Above the tabs, the portal always shows a row of summary stat cards and a privacy toggle, no matter which tab is selected.

Summary Cards — Four stat cards:

  • Last Paycheck Net Pay — net pay of the most recent paycheck, with a subtitle of either “Direct Deposit” or the check number
  • YTD Gross — year-to-date gross pay, with the number of pay periods
  • YTD Deductions — total year-to-date taxes and benefits withheld
  • YTD Net Pay — year-to-date take-home pay

Privacy Toggle — Employees can toggle the visibility of dollar amounts and sensitive information for privacy when viewing on shared screens.

Below the summary cards, the portal organizes information into four tabs: Personal Info, Employment, Pay History, and Tax Info.

  • Personal Details — employee ID, full name, date of birth, filing status, and Social Security Number (which can be revealed or hidden)
  • Contact Information — address, home phone, cell phone, and email
  • Current Employment — start (hire) date and tenure
  • Current Pay Rate — pay rate, effective date, and pay type (Hourly or Salary)

YTD Charts

  • Pay History (Last 12 Periods) — a bar chart comparing Gross Pay and Net Pay for each of the last 12 pay periods
  • YTD Deductions Breakdown — a donut chart showing year-to-date deductions by type

Active Deductions — Lists each active deduction for the employee, showing its name and code, the amount or percentage withheld, any configured Target / Min / Max goal amounts, and a Pre-tax indicator where applicable. The portal does not display accrual balances.

Pay Statements Table

ColumnDescription
Check DateDate of the paycheck
Check #Check number, or “DD” for direct deposit
Type”Check” or “Direct Dep.”
Gross PayTotal before deductions
DeductionsTotal deductions withheld
ReimbursementReimbursed amount (hidden on mobile)
Net PayTake-home amount
ActionsView the full statement detail or download the pay stub as a PDF

Use the View Details action (or expand the row) to open the full statement detail, which shows the earnings and deductions breakdown for that pay period.

Use the Download action on a statement’s row to download that pay period’s stub as a PDF showing current and year-to-date earnings, deductions, and net pay. The downloaded stub honors the Show Payroll Accruals on Pay Stub setting: when that setting is turned on for the payroll type, the stub lists your accrual balances; when it is off, they are omitted. Downloads work whether the portal was opened from the sidebar or from a token link, and each employee can download only their own pay stubs.

Displays your tax filing information — tax state, filing status, exemptions, and W-4 details — along with any wage garnishment limit on file. These fields are read-only.


The Employee Portal can be reached two ways. Both load the same self-service screen.

  • From the main sidebar — Open Employee Portal from the standalone item in the main sidebar. When opened this way as a signed-in organization user, the portal loads the data for the employee linked to your own user account.
  • From a token link — The portal can also be opened from a link that carries an access token in its web address (a token value in the URL query string). When a token is present, the portal loads the data for the employee that the token identifies, then immediately rewrites the address bar to the plain Employee Portal address so the token is not left visible in the URL. Access tokens are time-limited and expire 5 minutes after they are generated, so a link must be used promptly.

However the portal is opened, it always opens locked. Before any pay or personal information is shown, you are presented with an Employee Portal unlock screen that reads “Please verify your identity to access your information.”

FieldRequiredDescription
Social Security NumberYesYour 9-digit Social Security Number. The field accepts up to 11 characters and auto-formats your entry as XXX-XX-XXXX while you type. The value is masked as you enter it.
  1. On the unlock screen, type your full Social Security Number into the Social Security Number field. Dashes are added automatically; you may type digits only.

  2. Select Unlock Portal.

  3. If the number you entered matches the Social Security Number on your employee record (compared as digits only, ignoring formatting), the portal unlocks and your information is displayed.

  4. If the number does not match, an “Invalid Social Security Number” message is shown, the field is briefly highlighted in red, and the portal stays locked. Re-enter the number to try again.

Note: Verification is performed against the Social Security Number stored on your employee record, so that number must be on file for the unlock to succeed. The portal does not offer an alternative verification method if the Social Security Number cannot be matched.

Navigation: Account/avatar menu (top bar) → Time Clock

The Employee Time Clock provides a browser-based clock-in/clock-out interface for employees. It is opened from the user account (avatar) menu in the top bar rather than from a Payroll menu item, and the menu option is available only to users granted time clock access. It can also be accessed from the mobile app when Mobile Time Clock Enabled is turned on in Payroll Settings.

The time clock screen displays:

  • An analog clock showing the current time
  • The current date and digital time (updated every second)
  • A Privacy Mode toggle to hide rates and dollar amounts on shared screens
ControlDescription
Pay TypeSelect the timesheet entry type for this clock-in session (e.g., Regular, Overtime)
Clock InCreates a new timesheet entry with the current timestamp as the Time On. Disabled if already clocked in.
Clock OutUpdates the current open entry with the current timestamp as Time Off and calculates hours worked. Disabled if not clocked in.

When clocking in or out, the system captures geolocation data (latitude, longitude, IP address) for audit purposes.

Below the clock controls, a grid shows the employee’s recent time entries:

ColumnDescription
DateEntry date
Pay TypeTimesheet entry type
Time OnClock-in timestamp
Time OffClock-out timestamp
HoursCalculated duration (4 decimal places)
RatePay rate (hidden in privacy mode)
AmountDollar amount (hidden in privacy mode)
Source”Desktop Time Clock” for clock punches
NotesOptional notes

Employees can also create manual time entries (for historical or offline hours) by selecting the + (Create Timesheet Entry) button above the time-entry grid, which opens the Create Timesheet Entry dialog.

At the top of the dialog, a Hide Rates and Amounts toggle controls whether the Rate and Amount fields are shown. It is turned on by default, so rate and amount fields are hidden until you turn it off.

FieldRequiredDescription
Pay TypeYesTimesheet entry type for the entry. Its configuration determines which other fields are enabled and required.
DateYesDate of the entry
Time OnConditionalClock-in time. Enabled and used only for hours-based pay types.
Time OffConditionalClock-out time. Enabled and used only for hours-based pay types.
HoursConditionalDuration in hours (4 decimal places). Calculated automatically from Time On and Time Off, and editable, for hours-based pay types.
RateNoPay rate (read-only; shown only when Hide Rates and Amounts is off)
AmountConditionalDollar amount. Enabled for amount-based pay types; shown only when Hide Rates and Amounts is off.
JobConditionalJob Costing job to allocate time to. Enabled and required only when the selected pay type is linked to a job.
Job Cost CategoryConditionalCost category for job costing. Enabled and required only when the selected pay type is linked to a job.
Work OrderConditionalWork order to assign time to. Enabled and required only when the selected pay type is linked to a work order.
AppointmentConditionalAppointment on the selected work order. Enabled and required only when the selected pay type is linked to a work order. The appointment list is populated from the chosen work order.
NotesNoFree-text notes

Whether the Job, Work Order, and Appointment fields apply is driven by the selected Pay Type. Choosing a different pay type clears any values for fields that no longer apply.

To link a manual entry to a work order appointment:

  1. Select the + (Create Timesheet Entry) button above the time-entry grid to open the Create Timesheet Entry dialog.

  2. Select a Pay Type that is linked to a work order. This enables (and requires) the Work Order and Appointment fields.

  3. Select the Work Order. The Appointment list is then loaded from that work order.

  4. Select the Appointment for the work order.

  5. Fill in the remaining required fields and click Create.

Hours are multiplied by the employee’s pay rate, adjusted for the pay type’s rate multiple (e.g., 1.5× for overtime) or rate override if configured.

A counter displays total hours not yet linked to any timesheet, helping employees and managers track pending time.


Navigation: Payroll → Incentives (ledger) · Payroll → Incentive Approvals (approval queue) · Payroll → Settings → Incentive Rules (setup)

Incentives are extra pay — spiffs and commissions — owed to an employee for a specific sale. Each incentive is created from an incentive rule (a template configured in Payroll Settings; see Incentive Rules below) that decides what qualifies, who is paid, how the amount is computed, and which payroll earning type pays it out. An incentive travels through a fixed lifecycle from creation to payroll payout, and every step is visible on the Incentives screen.

StatusMeaning
PendingCreated but not yet reviewed. Awaits a decision on the Incentive Approvals screen.
ApprovedApproved for payout, but not yet payable — it becomes payable only after the sale is collected.
DeniedRejected during approval, with a denial reason on file.
EligibleThe gating condition is met (the customer invoice is paid in full) and the incentive is ready to be imported onto a payroll.
ImportedAdded to an employee’s payroll statement (on an unprocessed payroll) as an earning line.
PaidThe payroll was processed and the incentive was disbursed. It is not clawed back on its own, but voiding the paycheck (or deleting the statement or payroll) releases it — back to Eligible so a later payroll can pick it up, or to Cancelled if the underlying sale was credited.
CancelledVoided before payout — e.g. the work order was cancelled, its invoice was credited, or the source line was removed at billing. Reversing a work-order cancellation returns its incentives to Pending; a bill-credit or removed-line cancellation is permanent.

There are two ways an incentive comes into being:

  • Automatically at billing. When a work order is billed, every active incentive rule whose effective window covers the invoice date and whose Auto Create at Billing option is on is matched against the work order and its line items. A matching rule creates a Pending incentive for the resolved payee (the appointment technician or the work order salesman, per the rule’s Payee). Rules whose amount cannot be computed from the sale (such as GPPM Tiered), whose payee cannot be resolved or is terminated, or that would compute a zero or negative amount are skipped.
  • Manually with Add Spiff. On a work order’s Line Items tab, use the per-line Add Spiff action to attach an incentive to that line by hand (see the Service module). Manual spiffs are also created Pending. Pre-billing manual spiffs are adopted onto the invoice when the work order is billed.

Navigation: Payroll → Incentives

A read-only ledger of every incentive (excluding archived), across all statuses.

ColumnDescription
Incentive #System-assigned incentive number
StatusLifecycle status (see above)
CreatedDate the incentive was created
EmployeeThe payee
RuleThe incentive rule it was created from
KindSpiff or Commission
Work OrderThe source work order (click to open)
Invoice #The linked customer invoice, once billed (click to open)
BasisThe figure the amount was computed from (e.g. the sale amount or gross profit)
AmountThe incentive amount
Eligible SinceDate the incentive became eligible
Approved ByUser who approved it
Denial ReasonReason recorded if denied
NotesFree-text notes

Navigation: Payroll → Incentive Approvals

Lists Pending incentives awaiting a decision. Select one or more rows (the header checkbox selects all filtered rows), then:

  • Approve — moves the selected incentives to Approved. A confirmation notes that “Approved incentives become payable once the customer invoice is paid in full.”
  • Deny — opens a dialog requiring a Denial Reason (up to 255 characters), then moves the selected incentives to Denied.

Only still-Pending rows are acted on; any that changed status since the list loaded are skipped, and the result reports how many were updated and how many were skipped.

Requires the Approve Incentives permission.

Eligible incentives are pulled onto a payroll with the Import Incentives action in Manage Timesheets (on the Un-Imported Entries tab; see Timesheet Entry). Importing adds each incentive to the payee’s payroll statement as an earning line under the rule’s Payroll Earning Type. When the payroll is processed, that earning is disbursed like any other and the incentive is marked Paid.

An imported incentive posts through its Payroll Earning Type exactly like any other earning on the statement: when the payroll is run, the earning is debited to that earning type’s GL account (or to an employee-specific override account when one is configured) as part of the balanced payroll document (see GL Post on Run). If the earning type is a reimbursement, the incentive is paid without tax withholding. An incentive whose earning type has no GL account configured cannot be imported and is skipped.


Navigate to Payroll → Settings to configure system-wide payroll options and reference data.

FieldRequiredDescription
Employer FICA Expense LedgerYesGL account for the employer’s FICA contributions
Payroll Payable LedgerYesGL account for accrued payroll liabilities
Accrued Service Wages LedgerNoGL account where wages for time-clock-linked work-order labor accrue. Required in practice when Link Service Labor to Time Clock is enabled — Sync Timesheets stops with an error if it is not set
Work Order Travel Timesheet Entry TypeYesTimesheet entry type used for work order travel time
Work Order Site Timesheet Entry TypeYesTimesheet entry type used for work order site time
Default BankNoDefault bank for payroll disbursement
Check PrinterNoPrinter configuration for check printing
Payroll EmailNoEmail address for payroll-related notifications

Time Clock Options

SettingDescription
Desktop Time Clock EnabledEnables the browser-based time clock for employees
Mobile Time Clock EnabledEnables the mobile app time clock
Link Service Labor to Time ClockLinks work-order labor to the time clock: clocking in and out on a work order creates a timesheet entry tied to the labor cost line, wages for linked labor accrue to the Accrued Service Wages Ledger, and labor lines lock once their timesheet is synced to payroll
Hide Sensitive Information on Time ClocksHides sensitive information on the time clock display

Processing Options

SettingDescription
Compute FLSA Overtime HoursEnables automatic FLSA overtime calculation
Process Timesheets EnabledEnables the timesheet-to-payroll sync workflow

Define the types of accruals employees can accumulate (e.g., Vacation, Sick, PTO):

FieldRequiredDescription
NameYesDisplay name for the accrual type (must be unique across accrual types)
Earning TypesNoThe earning types whose hours/amounts contribute to this accrual (multi-select)

The Accrual Engine tab controls a newer, rule-based accrual system that can run alongside — and eventually replace — the classic per-employee accrual balances described above. The tab appears for users granted its permission. At the top of the tab, a status control drives the rollout; below it are three reference tables: Buckets, Policies, and Employee Assignments.

Engine status and rollout

The engine is always in one of three states, shown as a status chip with the available transition actions:

StateWhat it meansActions
LegacyThe classic accrual system is authoritative.Start Shadow Trial
Shadow TrialThe new engine posts in parallel, but legacy stays authoritative — paychecks, statements, and balances are unchanged.Re-run Seeding, Cancel Trial, Go Live
LiveThe new engine is authoritative for all accrual balances and statements; legacy data is kept read-only.Roll Back to Legacy
  • Start Shadow Trial begins running the new engine in parallel and seeds each employee’s current legacy balance as the new engine’s opening balance.
  • Re-run Seeding resumes an interrupted seeding pass; employees already seeded are skipped.
  • Cancel Trial rolls back to the legacy engine.
  • Go Live makes the new engine authoritative, applying the per-employee seed decisions chosen in the reconciliation grid.
  • Roll Back to Legacy returns to the legacy engine; any accrual activity recorded while live must be reconciled back into legacy by hand.

During a shadow trial a reconciliation grid compares each employee’s legacy balance against the new engine’s computed balance (with the difference and a flag for employees that have no legacy type or no configured bucket). Each row carries an At Go-Live choice: Grandfather legacy (the default — keep the legacy balance) or Correct to new value (adopt the new engine’s balance). Those choices are applied when you Go Live.

Buckets

A bucket is a category of accrued time (for example, Vacation, Sick, or PTO) that balances accumulate in.

FieldRequiredDescription
NameYesBucket name
DescriptionNoFree-text description

A bucket can be activated or deactivated from its row; only active buckets can be chosen when creating a policy.

Policies

A policy defines how a bucket accrues — the method, rate, balance caps, and carryover — and which activity triggers accrual and spending. Policies are immutable once created: to change the amount terms, create a replacement policy and set it as the current policy’s successor, which takes over at each assignment’s renewal.

FieldRequiredDescription
BucketYesThe bucket this policy accrues into
Accrual MethodYesPer Pay Period, Per Hour Worked, Fixed Annual, or Front Loaded
Accrual PeriodConditionalFor the Fixed Annual method: daily, weekly, pay period, monthly, or annual
Accrual Rate (hours)NoHours accrued per method interval (hidden for Front Loaded, whose amount is the front-loaded value)
Min BalanceNoMinimum balance; 0 blocks overdrawing the balance
Max Balance (hours)NoMaximum balance; shown as Front-Loaded Amount (hours) for the Front Loaded method
Carry Over LimitNoHours that carry to the next period; 0 means none (hidden for Front Loaded)
Carry Over Expiration DaysNoDays after which carried-over hours expire; 0 means never (hidden for Front Loaded)
Earning Types (accrual triggers)ConditionalEarning types that trigger accrual; shown, and requiring at least one, only for the Per Hour Worked method
Timesheet Entry Types (spend triggers)NoTimesheet entry types that draw down (spend) the balance

Editing a policy exposes only the forward-looking, non-amount fields — Successor Policy, the trigger earning types (per-hour policies), and the spend-trigger timesheet entry types; the method, rate, caps, and carryover cannot be changed. A policy can be marked assignable or not from its row, which controls whether it is offered for new employee assignments.

Employee Assignments

Assign a policy to an employee for a defined period.

FieldRequiredDescription
EmployeeYesThe employee the policy applies to
PolicyYesThe accrual policy to assign (only assignable policies are listed)
Period StartYesFirst date of the assignment period
Period EndYesLast date of the assignment period (must be on or after the start)
Auto-RenewNoWhether the assignment renews automatically at period end (on by default)

Assignments can be deactivated or reactivated from their row, and the list can be filtered to show inactive assignments.

Define payroll deduction categories (e.g., Health Insurance, 401k, Garnishment):

FieldRequiredDescription
CodeYesUnique code (must be unique across all deduction types; locked for system and computed deduction types)
NameYesDisplay name
Default LedgerYesGL account for posting this deduction
Is Pre-TaxNoWhether the deduction reduces taxable income
Is FICA ExemptNoWhether the deduction is exempt from FICA
Treat Amounts as PercentagesNoWhether the amount is calculated as a percentage of pay rather than a flat amount (can only be set when the deduction type is created)
Is Non Disposable (for Wage Garnishment)NoWhether the deduction is treated as non-disposable income (used for wage garnishment)

Define earning categories (e.g., Regular, Overtime, Holiday, Commission):

FieldRequiredDescription
CodeYesUnique code (must be unique across all earning types)
NameYesDisplay name
TypeYesAmount or Hours
Default LedgerYesGL account for posting earnings
Rate OverrideNoFixed rate to apply instead of the employee’s pay rate
Rate MultipleNoMultiplier applied to the employee’s pay rate (defaults to 1)
TaxableNoWhether the earning is subject to tax
ReimbursementNoWhether the earning is a non-wage reimbursement; disabled (and unavailable) while Taxable is on
Compute FLSA OvertimeNoWhether to include this earning in the FLSA overtime calculation
Is Overtime ExemptNoWhether this earning is exempt from overtime rules

Configure the entry classifications available in timesheets and on the time clock (for example, Regular, Overtime, Holiday, PTO). Each type maps to an earning type that drives how the time is paid, and can override the earnings GL account and pay rate, link the time to a job or work order, control whether it appears on the time clock, and optionally post its own GL document. Timesheet entry types have no cost center. Codes must be unique across all entry types, and a type can be disabled rather than deleted.

FieldRequiredDescription
CodeYesUnique code (must be unique across all timesheet entry types)
NameYesDisplay name
TypeYesAmount or Hours
Earning TypeYesThe payroll earning type this entry maps to; it determines how the time is paid and taxed
Earnings GL OverrideNoGL account that replaces the earning type’s default earnings account when this entry posts
Rate OverrideNoFixed rate to apply instead of the employee’s pay rate
Rate MultipleNoMultiplier applied to the employee’s pay rate; leave blank for none
Rate DifferentialNoFlat amount added to the rate
Link JobNoPosts the time as a labor cost on a job; requires a Job Expense Type. Mutually exclusive with Link Work Order
Time RequiredNoRequires the user to enter a time (not just an amount) on the entry
Post to GLNoPosts a GL document for this entry; requires a Subledger, and (unless Link Job is on) a Debit GL and Credit GL
Link Work OrderNoLinks the time to a work order’s labor. Mutually exclusive with Link Job
Time Clock EnabledNoMakes this entry type selectable on the time clock
Time Clock Manual Entry EnabledNoAllows manually keyed time (not just clock in/out) for this entry type on the time clock
SubledgerConditionalSubledger the GL document posts against; required when Post to GL is on
Debit GLConditionalDebit account for the GL document; required when Post to GL is on and Link Job is off
Credit GLConditionalCredit account for the GL document; required when Post to GL is on and Link Job is off
Job Expense TypeConditionalThe job cost entry type the labor posts as on the job; required when Link Job is on
Job Regular / Job Overtime / Job DoubletimeConditionalWhich job-labor rate the hours count as; a single choice, available only when Link Job is on
Overtime Premium GL OverrideNoGL account for the overtime premium portion; available only when the chosen earning type computes FLSA overtime

Define organizational divisions for grouping employees and filtering timesheets:

FieldRequiredDescription
NameYesDivision name (must be unique across payroll divisions)
Managed ByNoOther divisions that manage this division
ManagesNoDivisions this division manages
Manages All EmployeesNoWhen checked, this division manages every employee

Maintain the list of organizational departments that can be assigned to employees. A department is used as a filter in payroll and timesheet reports and appears on the employee record (see Manage Employees).

FieldRequiredDescription
NameYesDepartment name

Departments can be edited or deleted from their rows.

Define payroll templates that control which earning types are included, which deductions are excluded, and which employees are assigned:

FieldRequiredDescription
NameYesTemplate name
DescriptionYesDescription
Default Earning TypesNoEarning types automatically included when running this payroll
Excluded Deduction TypesNoDeductions skipped when running this payroll; disabled when Disable All Non-Tax Deductions is on
EmployeesNoEmployees attached to this payroll template; disabled when Include All Active Employees is on
Disable All Non-Tax DeductionsNoSkip all non-tax deductions during this payroll run (clears the Excluded Deduction Types list when turned on)
Include All Active EmployeesNoAutomatically include all active employees instead of attaching them individually (clears and disables the Employees picker when turned on)
Show Payroll Accruals On Pay StubNoDisplay accrual balances on printed pay stubs

Configure the rule templates that drive the incentive engine (spiffs and commissions; see Incentives). The tab appears with the View Incentive Rule permission and lists existing rules; use the + (New Rule) button to create one and the visibility toggle to show or hide inactive rules. Rules on a GPPM Tiered basis expand to show their configured tiers.

ColumnDescription
NameRule name
KindSpiff or Commission
ScopeWork Order Line Item or Work Order
BasisHow the amount is computed
Earning TypeThe payroll earning type the incentive pays out under
PayeeWho is paid
Auto CreateWhether the rule creates incentives automatically at billing
ActiveWhether the rule is currently in effect

Create / Edit Incentive Rule

FieldRequiredDescription
NameYesRule name (must be unique)
KindYesSpiff or Commission
ScopeYesWhat the rule attaches to: Work Order Line Item or Work Order
Effective DateYesFirst date the rule applies
End DateNoLast date the rule applies (must be on or after the effective date)
Payroll Earning TypeYesThe earning type incentives from this rule pay out under (drives the GL account). A warning appears if a reimbursement earning type is chosen, because such incentives bypass tax withholding.
Match OnConditionalFor Work Order Line Item scope only: which lines qualify — Product, Product Category, Flat Rate, Flat Rate Category, Line Item Type, or Dynamic Charge. A second picker then selects the specific product/category/flat rate/dynamic charge, or the line item type.
PayeeYesWho receives the incentive: Appointment Tech or Work Order Salesman
BasisYesHow the amount is computed: Flat Per Unit, Percent Of Total Sale, Percent Of Gross Profit, or GPPM Tiered
Amount Per UnitConditionalThe flat amount, for the Flat Per Unit basis
Rate %ConditionalThe percentage, for the Percent Of Total Sale / Percent Of Gross Profit bases
Tier MetricConditionalFor GPPM Tiered: GPPM or GP Percent
TiersConditionalFor GPPM Tiered: one or more tiers, each with a Minimum Threshold and a Rate %
Auto Create at BillingNoWhen on, matching incentives are created automatically when a qualifying work order is billed. Forced off (and disabled) for GPPM Tiered rules.
ActiveNoWhether the rule is currently in effect

For the complete list of permissions in this module and what each one allows, see the Permissions Reference.

PermissionDescription
View PayrollView payroll periods and statements
Create PayrollCreate new payroll periods
Edit PayrollModify payroll settings and select bank
Delete PayrollDelete payroll records
View EmployeeView employee records
Create EmployeeCreate new employees
Edit EmployeeEdit employee information
Delete EmployeeRemove employee records
Compute PayrollCompute payroll and view, create, and edit statement earnings, deductions, and amounts
Manage TimesheetsCreate, view, edit, and delete timesheets and their time entries, and access the timesheet management screens
View Payroll SettingsView Payroll Settings (read-only)
Edit Payroll SettingsAccess and modify Payroll Settings
Payroll Show AmountsView dollar amounts in timesheets and timesheet reports; users without this permission see hours but not costs
Void Payroll CheckVoid a payroll check and create reversing GL entries
Employee Time ClockAccess the employee time clock for clock-in/clock-out
Edit Time Clock EntryEdit existing time clock entries
View Incentive RuleView incentive rules in Payroll Settings
Create Incentive RuleCreate incentive rules
Edit Incentive RuleEdit incentive rules
View IncentiveView incentives (Incentives screen and the work order Incentives tab)
Create IncentiveAdd a spiff to a work order line item
Approve IncentivesApprove or deny pending spiffs and commissions
Delete All Payroll TimesheetsClear every timesheet in a payroll at once

Scenario: Pat (HR Manager) processes the bi-weekly payroll for 15 employees at Precision Mechanical. The period is 02/03/2026–02/14/2026 with a check date of 02/21/2026.

Step 1 — Sync timesheets:

  1. Navigate to Payroll → Compute Payroll.
  2. Select Payroll = Bi-Weekly 02/03–02/14, Bank = First National.
  3. Click Sync Timesheets. The system imports approved timesheet entries into each employee’s statement.
  4. 15 statements appear. Toggle Only Unapproved to review any issues.

Step 2 — Review a statement (Mike Torres):

  1. Click Mike Torres’s row to open his statement.

  2. Earnings:

    CodeTypeHoursRateAmount
    REGRegular72.00$30.00$2,160.00
    OTOvertime8.00$45.00$360.00
    Gross Pay$2,520.00
  3. Deductions:

    CodeTypeAmount
    FEDFederal Withholding$378.00
    FICAEmployee FICA$192.78
    HLTHHealth Insurance$125.00
    401K401(k) Contribution$126.00
    Total Deductions$821.78
  4. Net Pay: $1,698.22 — Payment Method: Direct Deposit.

  5. Click Approve.

Step 3 — Approve and run:

  1. Back on Compute Payroll, click Approve Entire Payroll for the remaining 14 statements.
  2. Click Run.
  3. The Check Issues dialog appears only when there are validation issues. Dave Chen has no direct deposit configured, but that is not flagged — an employee without direct deposit is simply paid by a printed check — so no issues appear and the run continues. (When issues exist, fatal ones such as a direct-deposit/bank misconfiguration must be fixed first, while non-fatal ones such as a negative accrual balance can be bypassed with Run Anyways.)
  4. Enter payroll message: “Direct deposit will be available 02/21. Office closed 02/17 for Presidents’ Day.”
  5. Click Run Payroll.

Step 4 — Complete payroll:

  1. Payroll Complete screen shows:
    • Check Date, GL Date, and Pay Period
    • Total Direct Deposit Amount: $24,320.80
    • Total Check Amount: $1,845.50
  2. Click Download ACH File → submit to bank.
  3. Click Email Direct Deposit Stubs → each DD employee with an address marked Email Pay Stubs receives their pay stub.
  4. Click Print Checks → Dave Chen’s check prints.

GL posting (summary):

AccountDebitCredit
Wages Expense (configured)$35,400.00
Employer FICA (configured)$2,708.10
Cash (configured)$26,166.30
Federal Tax Payable (configured)$8,850.00
Accrued Liabilities (configured)$3,091.80

Scenario: Mike Torres works 40 hours during the pay period, split between two jobs. His timesheet entries feed both payroll and job costing.

Timesheet entries for the week of 02/03–02/07:

DateEntry TypeTime OnTime OffHoursJobJob Cost Category
02/03Site Work7:00 AM3:30 PM8.0J-1050Ductwork
02/04Site Work7:00 AM3:30 PM8.0J-1050Ductwork
02/05Site Work7:00 AM3:30 PM8.0J-1050Ductwork
02/06Site Work7:00 AM3:30 PM8.0J-1062Piping
02/07Site Work7:00 AM3:30 PM8.0J-1062Piping

Result after sync to payroll:

  • Mike’s payroll statement: 40 regular hours × $30/hr = $1,200.00 for this week
  • Job J-1050 receives: 24 hours × $30/hr = $720.00 labor cost (Ductwork category)
  • Job J-1062 receives: 16 hours × $30/hr = $480.00 labor cost (Piping category)

Both jobs show the labor expense on their Actual vs. Estimate dashboards immediately after payroll posts.


Example 3: Employee Termination and Final Pay

Section titled “Example 3: Employee Termination and Final Pay”

Scenario: Dave Chen is terminated effective 02/14/2026. Pat processes his final paycheck including unused PTO payout.

Step 1 — Terminate the employee:

  1. Navigate to Payroll → Manage Employees and open Dave Chen’s record.
  2. Click Actions → Terminate Employee.
  3. Effective Date = 02/14/2026, Note = “Voluntary resignation — accepted position elsewhere.”
  4. Click Terminate. Dave’s status changes from Active to Terminated.

Step 2 — Review accruals:

  1. On the Accruals tab, Dave has:
    Accrual TypeBalance
    PTO32.0 hours
    Sick16.0 hours (not paid out per policy)

Step 3 — Process final payroll statement:

  1. Navigate to Compute Payroll for the current period.
  2. Dave’s statement includes:
    • Regular: 72 hours × $28/hr = $2,016.00 (hours worked through 02/14)
    • PTO Payout: 32 hours × $28/hr = $896.00
    • Gross Pay: $2,912.00
  3. Standard deductions apply. Net Pay = $1,845.50.
  4. Payment Method: Check (Dave has no direct deposit).
  5. Approve the statement.

Step 4 — Run and print:

  1. After running payroll, Dave’s check is printed.
  2. His PTO accrual balance is now 0.0 hours.
  3. His Employment History tab shows: “Terminated 02/14/2026 — Voluntary resignation.”

Rules are grouped by category.

  • Approved Before Sync — Timesheets must be approved before they can be synced to payroll statements.
  • Approved Before Run — Payroll statements must be approved before the payroll run can execute.
  • Termination Date Floor — Termination effective date must be on or after the employee’s latest hire/rehire date.
  • Overshot Deduction Check — Deductions exceeding the allowed maximum or available net pay are flagged; the Overshot Deductions Dialog offers auto-adjust or manual fix.
  • Delete Payroll Lock — A payroll that has already been processed cannot be deleted. Additionally, all associated timesheets must be unlinked before deletion is allowed.
  • SSN Uniqueness — An employee’s Social Security Number must be unique across all non-archived employees (active and terminated). Creating or updating an employee with a Social Security Number already on file is rejected; the message names the conflicting employee so the existing record can be rehired instead of duplicated. (An empty SSN is exempt.)
  • Timesheet Sync — The Sync Timesheets action pulls approved timesheet entries into payroll statements as earning lines.
  • Rate Multiple — Earning types with rate multiples (e.g., 1.5× for overtime) auto-compute compensation from the base pay rate.
  • FLSA Overtime — When enabled, the system auto-calculates overtime based on FLSA rules and configured earning type thresholds.
  • GL Post on Run — Running payroll posts a balanced GL document per statement: each earning is debited to its configured earning GL account, each deduction is credited to its configured deduction (liability) GL account (with an extra expense-account debit for deduction types that carry an expense account), and net pay is credited to the payroll-accrual (clearing) account. For check (non-direct-deposit) statements, a paired accruals entry then debits the payroll-accrual account and credits the configured bank account.
  • ACH File Generation — After running payroll, the Payroll Complete screen offers a Download ACH File action that generates an ACH file from the direct-deposit statements (with per-employee split instructions) for bank submission. The file is produced on download, not automatically during the run.
  • Auto-Create Incentives at Billing — When a work order is billed, active incentive rules whose effective window covers the invoice date and whose Auto Create at Billing option is on create Pending incentives for the matching lines/work order and the resolved payee. Rules whose amount cannot be computed from the sale, whose payee is unresolved or terminated, or that compute a non-positive amount are skipped.
  • Incentive Eligibility Gate — An Approved incentive becomes Eligible only when its linked customer invoice is paid in full (key-off amounts do not count as payment). If the invoice later stops being paid in full, an Eligible incentive that has not yet been imported reverts to Approved.
  • Payroll Cycle — Create Period → Enter/Sync Timesheets → Compute → Approve Statements → Run → Generate ACH/Checks.
  • Employee Lifecycle — Hire → Active → Terminate → optionally Rehire. Terminating only end-dates the employment and flips status to Terminated; run any final pay (including PTO payout) as a normal payroll.
  • Void Check Flow — Void creates reversing GL entries with negated amounts → Original check preserved with “Void” indicator → Employee’s payroll history shows both original and void entries.
  • Rehire Flow — Rehire creates new employment record → Employee status returns to Active → Employee becomes available for payroll and timesheets → Full employment history preserved.
  • Incentive Lifecycle — Pending → Approved (or Denied) → Eligible (invoice paid in full) → Imported (added to a payroll statement) → Paid (payroll processed). Voiding a check, deleting a statement, or deleting a payroll releases its incentives back to Eligible (or Cancelled if the underlying sale was credited) so a later payroll can pick them up; a Paid incentive is not clawed back on its own.
  • Job-Allocated Labor — Timesheet entries allocated to jobs create labor cost entries in Job Costing at employee rate × hours.
  • Linked Service Labor — When Link Service Labor to Time Clock is enabled, clocking in on a work order creates a timesheet entry linked to the work order’s labor cost line. Syncing that entry to payroll locks the labor line against changes and posts the linked portion of the wages against the Accrued Service Wages Ledger, with any remainder going to unapplied labor.
  • Incentives ↔ Work Orders & Invoices — Incentives originate from work order lines/work orders and gate on the customer invoice’s payment. Billing adopts pre-billing manual spiffs onto the invoice and cancels not-yet-decided incentives on removed lines; cancelling a work order or crediting its invoice cancels its not-yet-imported incentives.

Q: Timesheets won’t sync to payroll — nothing happens when I click Sync. Timesheets must be approved before they can be synced (see Approved Before Sync). Navigate to the timesheet screen and approve all pending timesheets for the current period, then retry the sync. If Link Service Labor to Time Clock is enabled, also confirm an Accrued Service Wages Ledger is set in Payroll Settings — the sync stops with an error when it is missing.

Q: The Run button is disabled — payroll won’t execute. All payroll statements must be approved before the payroll run (see Approved Before Run). Use Approve Entire Payroll to approve all statements at once, or approve each individually. Check for any statements still in draft status.

Q: I can’t set the termination date — “date before hire date.” The termination effective date must be on or after the employee’s most recent hire or rehire date (see Termination Date Floor). Verify the employee’s hire date on their record and use a termination date that doesn’t precede it.

Q: The payroll run flags “overshot deductions” for an employee. A deduction amount exceeds the employee’s available net pay or the configured maximum (see Overshot Deduction Check). The Overshot Deductions Dialog offers two options: auto-adjust (reduce the deduction to fit) or manual fix (edit the statement to resolve the conflict).

Q: FLSA overtime isn’t calculating automatically. Ensure Compute FLSA Overtime Hours is enabled in Payroll Settings (see FLSA Overtime). Also check that the relevant earning types are marked as included in the overtime calculation. The system needs both the global setting and per-earning-type configuration.

Q: An employee’s hours appear in payroll but not on the linked job. Verify the timesheet entries have a Job and Job Cost Category filled in. Only entries with job allocation create labor cost entries in Job Costing (see Job-Allocated Labor). Entries without job allocation still flow to payroll but won’t appear in job costing.

Q: The ACH file is missing an employee’s direct deposit. Check the employee’s Direct Deposit tab for active split records. If no direct deposit is configured, the employee is simply paid by a printed check — this is not flagged during the run.

Q: An accrual balance was unexpectedly zeroed out. If the accrual type has an expiration rule, balances past the expiration date are automatically zeroed. Review the accrual type’s expiration date settings and check the employee’s accrual history.

Q: How do I void a payroll check? Navigate to Payroll → Manage Employees, select the employee, open the Payroll History tab, and click the Void (cancel) icon button on the check’s row. Confirm when prompted. The system creates reversing GL entries dated to the original check date — the original check is not deleted but marked as voided (see Void Check Flow). You need the Void Payroll Check permission.

Q: I can’t delete a payroll — what are the prerequisites? The payroll must not have been processed (run), and there must be no timesheets still associated with it (see Delete Payroll Lock). If timesheets are linked, unlink or delete them first. If the payroll has been run, it cannot be deleted — consider voiding individual checks instead.

Q: How do I rehire a terminated employee? Navigate to Payroll → Manage Employees, open the terminated employee’s record, and click Actions → Rehire Employee. Enter the effective date and an optional note. The employee’s status changes to Active and they become available for payroll processing (see Rehire Flow).

Q: Where is the employee time clock? Open the Time Clock from the account/avatar menu in the top bar (it is not a Payroll menu item). The time clock must be enabled in Payroll → Settings under Time Clock Options (Desktop Time Clock Enabled). For mobile access, enable Mobile Time Clock in the same settings area.

Q: I can’t save an employee — “This SSN is already assigned to …”.

The Social Security Number you entered already belongs to another employee, active or terminated (see SSN Uniqueness). The message names that employee. If it is the same person returning, open their existing record and use Rehire Employee rather than creating a new one.

Q: I approved an incentive but it isn’t on the payroll yet.

Approved incentives become Eligible only after the linked customer invoice is paid in full (see Incentive Eligibility Gate); a key-off does not count. Once eligible, pull them in with Import Incentives in Manage Timesheets. Confirm the invoice is fully paid and the incentive shows Eligible on the Incentives screen.

Q: Import Incentives skipped some rows.

The skip reason is shown. Common causes: the employee has no statement on the selected payroll (the incentive stays Eligible for a later run), the employee’s statement is already approved (un-approve it first), the incentive is no longer eligible, or the rule’s earning type has no GL account configured.


  • Sync Timesheets first: Before running payroll, use Sync Timesheets on the Compute Payroll screen to import approved timesheet entries into each employee’s statement. Entries that have not been approved in the timesheet screen will not sync.

  • Approval workflow: Statements must be approved before payroll runs. Use Approve Entire Payroll to approve all at once, or approve individually. Run triggers a warning if unapproved statements remain.

  • Overshot deductions: If a deduction amount exceeds the employee’s net pay or the configured maximum, the run process will flag it. You can auto-adjust the overage or resolve it manually by editing the statement.

  • FLSA overtime: Enable Compute FLSA Overtime Hours in Settings to let the system automatically calculate overtime based on FLSA rules. Configure per earning type whether it is included in the overtime calculation.

  • Direct deposit ACH: After running payroll, download the ACH file from the Previous Payrolls dialog or the Payroll Complete screen and upload it to your bank. The ACH file requires the correct bank routing configuration in Settings.

  • Pay rate history: Adding a new pay rate on the Pay Rates tab takes effect from the specified effective date. The most recent effective date is the employee’s current rate — do not delete old entries as they are needed for historical payroll accuracy.

  • Termination dates: The termination effective date must be on or after the employee’s most recent hire or rehire date. After termination, the employee no longer appears in active payroll processing.

  • Accrual expirations: If an accrual type has an expiration rule, balances past the expiration date are automatically zeroed. Review accrual balances and expiration dates before year-end.

  • Employee Portal access: The Employee Portal is self-service and does not require an admin login. Employees can view their pay history and YTD charts without staff assistance.

  • Payroll Show Amounts permission: Users without the Payroll Show Amounts permission will see timesheet hours but not dollar amounts. Grant this permission only to roles that need to view labor costs.

  • Payroll Types templates: Using Payroll Types to create templates for different payroll runs (e.g., salaried vs. hourly, regular vs. supplemental) reduces manual setup each period by pre-configuring which earning types and deductions apply.

  1. Navigate to Payroll → Manage Employees and search for the terminated employee.
  2. Open their record and click Actions → Rehire Employee.
  3. Enter the Effective Date (defaults to today) and an optional Note documenting the reason for rehire.
  4. Click Rehire. The employee’s status changes to Active and a new employment record is created.
  5. The employee is now available for timesheet entry and payroll processing. Their full employment history (all hire/terminate/rehire events) is preserved on the Employment History tab.
  1. Open the Time Clock from the account/avatar menu in the top bar (must be enabled in Payroll Settings).
  2. Select a Pay Type from the dropdown (e.g., Regular, Overtime).
  3. Click Clock In to start tracking time. The system records the current timestamp and geolocation.
  4. When finished, click Clock Out. The system calculates hours worked and the dollar amount based on your pay rate and the pay type’s rate multiple.
  5. Your time entries appear in the grid below. Use Privacy Mode to hide rates and amounts on shared screens.
  6. To add historical or manual entries, click the add (+) button (Create Timesheet Entry) and fill in the date, times, and optional job allocation.