Set up once
- Give each person their payroll ID.
Under People and safety › Directory › Employees, open each employee and fill in Payroll ID if it isn't their employee number. Without one, the employee number goes in the file; with neither, their hours can't go.
- Say where each job's work is.
On the job's Details, select Edit details and fill in Where the work is, for payroll: the state, county, city and ZIP. Payroll taxes hours by where they were worked, so a job without a state can't go in a pay run. When the job's location is an address, the city, state and ZIP are filled in from it for you to check.
- Union members: their local and its scale.
Fill in Union local on each union member. Then, under Labor rate tables on the same tab, add the local's scale as a table (or use Mark as a union scale on one you have) with the same local, and give each trade its base, overtime and double-time multipliers and Union fringe / h.
- Certified jobs: the wage decision.
On a prevailing-wage job, open Certified payroll in the job's Time section, select Add wage decision, and enter its classifications, rates and fringes. A job with a wage decision in force is a certified job for payroll.
- Your earn codes.
On Send to payroll, choose where it goes under Send to and open Earn codes and settings (or QuickBooks pay items). Say which of your payroll system's codes is Regular, Overtime, Double time, Per diem and Reimbursement, fill in any settings the format needs, and select Save.
Where it goes
QuickBooks Online Payroll goes through your QuickBooks Online connection (Settings › QuickBooks and accounting). Each line becomes a time activity for the employee, on the job's customer, class or location, with the pay item it's paid on, and QuickBooks Payroll turns the hours into the paycheck. Match your people and jobs to QuickBooks on that page first. Under QuickBooks pay items, select Read pay items from QuickBooks to choose from the pay items your QuickBooks timesheets already use, or enter a pay item's ID. You can give union members and prevailing-wage hours pay items of their own.
What a QuickBooks time activity can't carry, Aggrado keeps and the pay run says so:
- A rate. QuickBooks pays the pay item's rate, so map a union-scale or prevailing-wage pay item that pays the right rate.
- A fringe. Pay or remit it with a QuickBooks Payroll contribution or deduction item.
- Where the work was. QuickBooks Payroll taxes by the work location set up for each employee there.
- Reimbursements. Money isn't time, so they stay out of a QuickBooks pay run: pay them back on the paycheck in QuickBooks, or as a bill.
- Hours taken back. A correction that takes hours off isn't sent: correct the earlier paycheck in QuickBooks Payroll.
The import files, and how sure we are of each:
- Generic CSV: Aggrado's own layout with every field, for any system or for mapping the columns yourself.
- Vista: the fields and order of Trimble's published PR Timecard Entry import. Vista reads it through an import template you set up, and the PR company, GL company and department are yours to fill in. Check the template with your payroll provider.
- Spectrum: Trimble's published pre-time card import layout, with Spectrum's own pay types R, O and D. Per diem and reimbursements go as pay type M; check that, the batch code (Spectrum's own word) and the department with your payroll provider.
- FOUNDATION: the fields Foundation's time card import needs. Foundation reads files through an import sequence you build to match the columns, so check it with your payroll provider before the first import.
- Sage 300 CRE: Sage imports time in the column order of your Time Entry view, so there's no one fixed layout. Set the view to match this file and check it with your payroll provider.
- Payroll4Construction: no published import layout. Check with your payroll provider which columns they take before sending one.
Whatever it goes to, every pay run also has A copy to check (doesn’t send it) under More: its lines as a plain CSV, for a payroll service with no format listed here or to check in a spreadsheet.
Check the period
The Send hours tab opens on the last full pay week. Change the dates under Pay period from and to if you pay differently. Aggrado works the period out without saving anything:
- Each person's regular, overtime and double-time hours, and anything paid back to them.
- Every line: a person, a day, a job and cost code, a pay type, with the rate and fringe where a certified job or a union scale sets them, and where the work was.
- To fix before it can go: a job with no work state, somebody with no payroll ID, an earn code or pay item not said yet, a person or job not matched to QuickBooks, a certified or union line with no rate.
- Worth knowing: cards from the period not approved yet (their hours go in a later pay run), late lines, and what the payroll system can't carry.
Send and confirm
- Send it, or download the file.
For QuickBooks, select Send to payroll. For a file, select Download for payroll and import it into your payroll system. One press keeps the pay run, locks the period's approved cards so they can't be edited or sent back, and sends it. A line QuickBooks turns down is named, with why; fix it and send again, and nothing goes twice. The file is kept with the pay run, and downloading it again gives you the same file. Under More, Save draft saves it without holding the cards.
- Confirm when payroll has run.
Open it under Past pay runs, enter the payroll run or check date if you like, and select Payroll ran it. Purchases paid back on the pay run are marked paid back.
Certified and union rates
- Certified job: the wage decision's rate for the line's classification. Overtime is one and a half times the base and double time twice; the fringe is per hour worked and never multiplied.
- Union member: their local's scale in force that day: the base times the table's overtime and double-time multipliers, and the table's union fringe per hour.
- Both: the more protective of each: the higher rate and the higher fringe, so the person is paid at least the wage decision and at least their scale.
- Neither: no rate is sent, and payroll pays the person's own.
Corrections and voids
A card that has gone to payroll isn't edited. A late card for a week already sent, or one that changes that week's overtime, goes in the next pay run as adjustment lines, marked Late and Adjustment, so nothing is paid twice.
Void a pay run before payroll has run it, under More: its cards are let go to go in another pay run, and a QuickBooks pay run's time activities are taken back out of QuickBooks. If a file was already imported, reverse it in your payroll system too. Once confirmed, a pay run can't be voided: correct the paycheck in your payroll system.
What payroll really cost
Crew time costs the jobs at their wages and your standard labor burden as soon as a card is approved (see Labor burden). Once payroll has run, bring back what it really cost: open the pay run, then Bring back what payroll paid (the register, for the burden variance). Paste or choose your payroll service's register as CSV, one line a person, select Read columns, and say which column is the person and which are gross pay, the employer's taxes, fringe and workers' comp. Select Preview, then Save to burden variance.
Each person's cost is spread over the jobs and cost codes the pay run sent their hours to, in proportion to the hours, and set against the standard cost those hours carried. The difference is the company's: it goes on the company's burden variance (See the variance opens it on Labor burden), and the jobs don't move. Bringing the same period back again replaces it rather than counting it twice.
A payroll report that comes by job and cost code instead goes on the What payroll really cost tab: set the period and the Source, paste Job, cost code, amount one line each, select Preview to see what it would do, then Save to burden variance. Each run is listed under Runs, and Reverse takes one back.
From the makers of Aggrado Site, sitework estimating and job management software: takeoff and crew-based bids, the won bid as the job's budget, and the crew's phone app on one record.