# Exporting payroll (CSV and Gusto)

Download a pay period's hours as a Standard CSV or a Gusto timesheet, and add your Gusto employee IDs so the Gusto file imports cleanly.

For: Admins, Managers · On: Web · [Help Center](https://www.mays.app/help) › [Time clock](https://www.mays.app/help/time-clock) · Last updated October 17, 2026 · Mays Team

When a pay period is ready, download its hours from the Time Clock page — as a **Standard CSV** for any payroll provider, or as a **Gusto timesheet** you can import into Gusto.

**Where:** **Scheduling → Time Clock** → a pay period → **Review** (Scheduling, Pro plan). Managers and admins can export — exporting needs **Build & manage native schedule**, so a custom role that can only view the schedule doesn't see the export button. See [Timesheets and pay periods](https://www.mays.app/help/time-clock/timesheets-and-pay-periods) for reviewing and closing the period first.

## Download the file

1. Open the pay period and review it: fix missing punch-outs, check the warnings and approve the punches.
2. Click **Close pay period** so nobody changes the hours after you export (recommended, not required).
3. Click the download button — **Export** on a closed period, a download icon on one that's still open — and choose:
   - **Standard CSV** — *Hours, wages, tips and surcharge*.
   - **Gusto timesheet** — *Ready to import into Gusto*.

![The export menu open on a pay period, with Standard CSV — Hours, wages, tips and surcharge — and Gusto timesheet — Ready to import into Gusto — under the download button next to Close pay period](https://mays-uploads.s3.us-east-2.amazonaws.com/site/help__payroll-export-and-gusto__01-export-menu.ce9395220e.png)

Both files have one row per employee and include **every finished punch** whose clock-in falls in the period, approved or not. Punches still open are left out, and so is anyone with no hours. The file is named after the sheet and the period's first day — for example *pay-period-2026-09-21.csv* or *gusto-timesheet-2026-09-21.csv*.

**Check for a missing-sales note before you export.** When your tips come from your POS sales, the pay period shows a yellow note if some days had staff clocked in but no sales came in from your POS: *No sales came in from your POS for … while staff were clocked in, so tips for those days aren't in these totals or the Gusto file.* Those days' tips are missing from both files until the sales arrive. Open a ticket in **Help & Support** and we'll load them, then download the file again. See [Timesheets and pay periods](https://www.mays.app/help/time-clock/timesheets-and-pay-periods).

## What's in the Standard CSV

| Column | What it holds |
| --- | --- |
| **Employee**, **Period Start**, **Period End** | The person and the period's first and last day. |
| **Regular Hours**, **Overtime Hours**, **Double-time Hours** | Hours split by your overtime settings (**Scheduling → Settings → Workweek & overtime**) and, with Labor law compliance's **Overtime law** on at the location, the overtime law at its address where it's more protective (see [Labor & compliance](https://www.mays.app/help/time-clock/labor-compliance)). 7th-day hours are in the overtime and double-time columns. With twice-a-month or monthly periods, weekly overtime is counted over the whole 7-day workweek and lands in the period the hours past 40 were worked in (see [Timesheets and pay periods](https://www.mays.app/help/time-clock/timesheets-and-pay-periods)). |
| **Regular Wages**, **Overtime Wages**, **Double-time Wages** | Pay for those hours. |
| **Tips**, **Card Surcharge** | From the location's tip pool, when it's on — see [Tip pooling](https://www.mays.app/help/time-clock/tip-pooling). |
| **Gross Pay** | Wages plus tips and surcharge (plus compliance fees when they're costed). |
| **Break Premium Hours**, **Split Shift Premium Hours**, **Reporting Pay Hours**, **Compliance Fees**, **Spread of Hours Premium Hours** | From [Labor & compliance](https://www.mays.app/help/time-clock/labor-compliance): break premiums and the rules-pack premiums when the location tracks them, and, with Labor law compliance's **Premiums** on, the spread-of-hours, split-shift and reporting pay the law at the location's address sets. **Spread of Hours Premium Hours** comes after **Compliance Fees**. |
| **Card Fee Deducted** | Only when Labor law compliance's **Tips** is on at the location and it deducts the card processing fee from card tips. **Tips** is after the fee. |
| **Tips Declared**, **Tip Declaration** | Only when the period has tip declarations (Wisconsin, with Labor law compliance on): the figure each person declared and whether they confirmed, corrected or haven't yet — see [Tip declarations](https://www.mays.app/help/time-clock/tip-declarations). |

**About the wage columns:** they use the wage saved on each punch. Punches made in Mays — in the app, on a kiosk, with an NFC tag or added by a manager — save it at clock-in: the person's own hourly wage, or else their position's wage — their main position's when the punch has no position (see [Positions and wages](https://www.mays.app/help/scheduling/positions-and-wages)); 7shifts punches bring their own. In an **open** period, a punch made in Mays with no wage saved (for example an older one from before late September 2026) is paid at the wage on file today, and closing the period saves that wage on it; a period that was already closed exports exactly as it did. Punches for salaried staff or anyone with no wage set at all come out as 0.00; for those, use the hours columns and let your payroll provider apply each person's rate. The **Gusto timesheet** carries hours, not wages, so none of this changes it.

## What's in the Gusto timesheet

The file uses Gusto's own column names, in Gusto's order: `last_name`, `first_name`, `title`, `gusto_employee_id`, `regular_hours`, `overtime_hours`, `double_overtime_hours`, `missed_break_hours`, `bonus`, `commission`, `paycheck_tips`, `cash_tips`, `correction_payment`, `custom_earning_distributed_service_charges`, `reimbursement`, `personal_note`.

- It carries **hours only**. Gusto already knows everyone's pay rate.
- `missed_break_hours` is the break premium hours from Labor & compliance (0.00 when there are none). Gusto's sheet has no column for spread-of-hours, split-shift or reporting pay, so add those in Gusto yourself.
- Tips go in `paycheck_tips` and the card surcharge in `custom_earning_distributed_service_charges`, as wages. If your Gusto account doesn't have that custom earning, choose **Bonus (wages)** under **Gusto export: the surcharge goes in** on the location's **Tip pool** card (the location's **Scheduling** tab), and it goes in `bonus` instead. **Tips column** is there for money customers choose freely; a mandatory charge such as a card surcharge is wages, not tips. When the location deducts the card processing fee from card tips (with Labor law compliance's **Tips** on), `paycheck_tips` is after the fee and `personal_note` says how much was deducted.
- Columns Mays doesn't fill stay blank.

In Gusto, import it as a timesheet for the matching pay period. Each location exports on its own pay period — a location with its own pay period (for example every 2 weeks while the others are weekly) has its own dates. A **Transition period** after a pay schedule change exports with its own, shorter dates; run it as its own payroll in Gusto.

## Add your Gusto employee IDs

Gusto matches rows by `gusto_employee_id`. Without one, Gusto falls back to matching on the name, which breaks on nicknames and typos.

**Where:** **Scheduling → Settings → Gusto employee IDs** (admins only).

1. In Gusto, download a timesheet for your company — it already contains everyone's ID.
2. Click **Import Gusto CSV** and choose that file.
3. Mays matches people by name and saves their IDs. It tells you how many were **matched and saved**, and lists anyone it couldn't place with a **Who is this?** picker so you can match them yourself.

**Still without an ID** lists your current staff who don't have one yet; click a name to open their page on the **Locations & pay** tab. The counter at the top shows how many do.

![The Gusto employee IDs card: 0 of 4 current staff, the explanation that the Gusto timesheet export uses these as its join key, the Import Gusto CSV button, and Still without an ID (4) listing Ava Admin, Eli North, Emma North and Nora North](https://mays-uploads.s3.us-east-2.amazonaws.com/site/help__payroll-export-and-gusto__02-gusto-employee-ids.f0ad5f2d0d.png)

You can also type one in on a person's page under **Locations & Users → Users**, on the **Locations & pay** tab: **Gusto employee ID** and **Gusto job title** (Gusto's own title, separate from their role in Mays).

## Sending hours straight to Gusto

The **Gusto Payroll** card on the Time Clock page says *Direct Gusto sync isn't available yet — download the Gusto timesheet from a pay period and import it into Gusto.* Use the **Gusto timesheet** download above.

Where direct sync is turned on and the location is connected, a closed pay period has a **Run Payroll** button for anyone who can export. It sends each person's hours to Gusto under their **Gusto employee ID**; only someone with no ID is matched by email. A Gusto ID that isn't in the connected Gusto company is skipped, not guessed by email. When it finishes you see how many were sent, how many went by Gusto ID and how many by email, and who was skipped and why; if it fails, the reason is shown.

Only a closed pay period can be sent to Gusto, because an open one's hours and tips can still change. If the period was reopened after you opened the page, Run Payroll sends nothing and shows *Close the pay period before running payroll.*; the page then refreshes to show the period open. Close it again, then run payroll.

## Good to know

- **Export any time.** You can export an open period to check the numbers; export again after you close it for the final file.
- **Labor Summary vs Standard CSV:** the Labor Summary's **Total Pay** is the same figure as the CSV's **Gross Pay** — wages, tips, card surcharge and compliance fees where costed. The Labor Summary shows tips and the surcharge together as **Tips & Surcharge**.
- **You're told how it went.** A download says *Pay period CSV downloaded.* or *Gusto timesheet downloaded.*; if it fails, the reason is shown, for example a session that expired.
- **Other providers** (ADP, Paychex and so on): use the **Standard CSV** and map its columns in your provider's import.
- **Scheduling → Reports → Employee Timesheet** gives you a per-punch list if your provider wants every punch rather than totals.

## Related articles

- Time clock: [Timesheets and pay periods](https://www.mays.app/help/time-clock/timesheets-and-pay-periods) — Review every punch in a pay period on the Time Clock page — fix, add or delete punches, approve them, check warnings and hours, then close the period for payroll.
- Time clock: [Labor & compliance (per location)](https://www.mays.app/help/time-clock/labor-compliance) — Where: Locations & Users → Locations → a location → Scheduling tab → Labor & compliance card.
- Scheduling: [Positions and wages](https://www.mays.app/help/scheduling/positions-and-wages) — Create the jobs people work — Barista, Cashier, Line Cook — with a colour and a default hourly wage, give people their positions and pay, and see where Mays uses them.
- Team & roles: [Add and invite team members](https://www.mays.app/help/team-roles/add-team-members) — Add people on the web or from the app. Employees get a text with a link to the app; managers and admins get an email to set a password. Plus resending invites and checking delivery.
- Time clock: [Tip pooling](https://www.mays.app/help/time-clock/tip-pooling) — Pool a location's tips and share them out by hours worked, equally or by FTAR score — choose who takes part, keep managers out, and pay the shares through the payroll export.
- Time clock: [Tip declarations](https://www.mays.app/help/time-clock/tip-declarations) — In Wisconsin, each tipped employee confirms the tips Mays recorded for them at the end of every pay period, in the Mays app. Managers see who hasn't confirmed, send a reminder, or enter a declaration for someone with a note.

## Still need help?

Send us a support request and a real person on the Mays team will get back to you.

[Contact support](https://www.mays.app/contact?topic=support) · [Call +1 (561) 286-3939](tel:+15612863939)

Canonical: https://www.mays.app/help/time-clock/payroll-export-and-gusto
