Making a WH-347 from a Gusto payroll export

Gusto users usually have the numbers a WH-347 needs, spread across Gusto's reports. This guide covers which report to pull, a timing caution that matters for certified payroll, what you will likely add yourself, and how to map the file into the WH-347 Layout Tool once and reuse the mapping. It is practical guidance, not payroll or legal advice; check the details against Gusto's own reports article.

What Gusto's reports offer

According to Gusto's help article, admins can run standard reports or build custom reports, and download them as PDF, CSV or Excel (.xlsx). For this tool you want CSV or Excel; a PDF cannot be imported.

The article describes the payroll journal as customizable, with filters that include job, multiple pay rates and job codes. It also describes a payroll data export workbook with separate tabs for employee information, work locations, payroll information, earnings, taxes and deductions.

Gusto does not publish a fixed list of column headers for these reports, and which columns appear depends on what you choose. That is why the tool has no preset Gusto column names and this guide names none.

Which export to pull

Pull a payroll journal or a custom report as CSV or Excel, filtered to the job (project) and the workweek you are reporting. Aim for one sheet with one row per worker (or one row per worker per day) that carries, as far as Gusto can provide them:

The multi-tab payroll data export can work too, but the tool maps one sheet at a time, so a single report with everything on one sheet is easier to map.

Caution: Gusto totals are by check date

Gusto's article says report totals are by check date, not by pay period. The WH-347 covers one workweek, identified by its week ending date. If a pay period does not line up with the workweek, or one check covers more than one week, the totals in a check-date report may not be the hours and pay for the week on your WH-347. Confirm the week's hours from your time records before you rely on them.

What you will likely enter yourself

Anything your report does not contain has to come from somewhere else. Common gaps:

Map it once, reuse it every week

The tool works with any CSV or Excel export: map your columns once, save the mapping, reuse it every week.

  1. Open the tool, fill in the project setup, and enter the week ending date.
  2. Import the CSV or .xlsx from Gusto. It is read inside your browser tab and never uploaded. If the workbook has several sheets, pick the one with the worker rows.
  3. With "Manual mapping" selected, match each WH-347 field to one of your columns. Nothing is pre-selected from a guess; fields your report lacks stay "(not mapped)".
  4. Apply the mapping and review the checks: daily hours against the weekly total, gross against hours and rates, net against gross minus deductions, and required fields.
  5. Save the mapping under a name. Next week, run the same Gusto report, import it, pick the saved mapping and press "Apply template". Keep the report's columns the same from week to week so the saved mapping keeps fitting.

The tool prints only the last four digits of an SSN, because the DOL instructions say full Social Security numbers must not be included.

Sources

Frequently asked questions

Does the WH-347 Layout Tool know Gusto column names in advance?

No. Gusto reports are customizable and Gusto does not publish a fixed list of column headers, so the tool does not guess them. You map your columns once in the manual mapper, save the mapping, and reuse it every week.

Why do my Gusto totals not match the workweek?

Gusto's help article says report totals are by check date, not by pay period. The WH-347 covers one workweek, so check which hours were actually worked in the week you are reporting.

About the WH-347 Layout Tool

Open the WH-347 Layout Tool