The Timesheets page lets you review, approve, and manage employee time records. Track scheduled vs. actual hours, identify overtime, edit individual punches, and export payroll data — everything you need for accurate time tracking.

![Timesheets Overview](/images/support/articles/schedule_timesheets_overview.png)

*The Timesheets dashboard showing the weekly summary with employee cards and approval controls.*

---

## Getting There

Navigate to **Scheduling** > **Timesheets** from the admin sidebar, or click the `Timesheets` link at the top of the Schedule Calendar page.

---

## Interface Layout

| Area | Purpose |
|------|---------|
| **Week Navigation** | Browse between weeks, jump to today |
| **Pay Period Toggle** | Switch between `1 Week` and `2 Weeks` (pay-period) views |
| **Summary Cards** | At-a-glance stats: employees, total hours, regular, overtime, double time, total pay |
| **Filter Tabs** | All, Pending, Approved, Overtime |
| **Employee Table** | Each row shows one employee's timesheet for the selected period |
| **Export Buttons** | `Export CSV` (current view) and `Custom Export…` (any range) |

---

## Weekly Summary

The top of the page displays key metrics for the selected period:

| Metric | Description |
|--------|-------------|
| **Employees** | Number of employees with time entries |
| **Total Hours** | Combined hours across all employees (shown as `2-Week Total Hours` in 2-week view) |
| **Regular** | Standard (non-overtime) hours |
| **Overtime** | Hours exceeding overtime thresholds |
| **Double Time** | Hours qualifying for double-time pay (state-specific) |
| **Total Pay** | Estimated payroll cost for the period |

> **Tip:** In 2-week view, totals display with two decimals so the KPI numbers line up exactly with the per-row `Wk 1` / `Wk 2` / `Total` columns. The 1-week view uses one decimal for a cleaner read.

---

## Pay Period View (1 Week vs. 2 Weeks)

Use the `1 Week` / `2 Weeks` toggle to the right of the date navigation to switch between a single-week view and a two-week pay-period view. Both views read the same underlying time data — only the aggregation and column layout change.

![Pay Period Toggle](/images/support/articles/timesheets_period_toggle.png)

*The header in 2-week mode shows "Pay Period of {date}" with the full 14-day range and the `2 Weeks` button active.*

### When to use each view

| View | Best for |
|------|----------|
| **1 Week** | Day-to-day review, approving timesheets, editing punches, comparing scheduled vs. actual |
| **2 Weeks** | Running a biweekly pay period, exporting payroll, seeing Week 1 and Week 2 side by side |

### What changes in 2-week view

- **Header** reads `Pay Period of {Mon Date, Year}` with the full 14-day range underneath.
- **Navigation arrows** still step one week at a time, so you can slide the period start forward or back without skipping a pay cycle.
- **Employee table columns** become: `Employee`, `Wk 1 Hours`, `Wk 2 Hours`, `Total Hours`, `OT`, `Total Pay`, `Status`. The `Scheduled`, `Actual`, `Variance`, `Break`, and `Actions` columns are hidden — those are only meaningful for a single week.
- **Status badge** reflects both weeks: `Approved` only shows when both weeks are approved; otherwise you'll see `{N} Pending` (where N is 1 or 2), or `Exported` once both weeks have been marked exported.
- **Approve All** is hidden — approval still happens one week at a time from the 1-week view (or from the employee detail page).
- **Export CSV** is enabled whenever there is any data in the period (you don't need to approve first to pull payroll totals).

> **Tip:** Use 2-week view to quickly spot employees whose hours look uneven across the pay period — for example, 38 hours in Week 1 and 6 hours in Week 2 is often a missed-punch warning.

---

## Filtering Timesheets

Use the tab filters to quickly find what you need:

| Tab | Shows |
|-----|-------|
| **All** | Every employee with time entries |
| **Pending** | Timesheets awaiting approval |
| **Approved** | Already-approved timesheets |
| **Overtime** | Employees with overtime hours |

---

## Employee Timesheet Table

The columns vary depending on the pay-period view:

### 1-Week view

| Column | Description |
|--------|-------------|
| **Employee** | Name and position |
| **Scheduled** | Hours they were scheduled to work |
| **Actual** | Hours they actually worked (from clock punches) |
| **Variance** | Difference between scheduled and actual (positive = worked more) |
| **Break** | Unpaid break hours deducted from the total |
| **OT** | Overtime hours for the week |
| **Pay** | Estimated pay for the week |
| **Status** | Pending, Approved, or Locked |
| **Actions** | Approve, view detail, or unlock |

### 2-Week view

| Column | Description |
|--------|-------------|
| **Employee** | Name and position |
| **Wk 1 Hours** | Net payroll hours for the first week of the period |
| **Wk 2 Hours** | Net payroll hours for the second week |
| **Total Hours** | Wk 1 + Wk 2 (net payroll hours, not gross) |
| **OT** | Overtime hours across the full period |
| **Total Pay** | Estimated pay for both weeks combined |
| **Status** | `{N} Pending`, `Approved`, or `Exported` (reflects both weeks) |

---

## Approving Timesheets

### Approve Individual

Click the approve button on a specific employee's row to approve their timesheet for the week.

### Approve All

Click `Approve All` in the toolbar to approve all pending timesheets at once. This button is only active when there are pending timesheets.

### Unlock an Approved Timesheet

If you need to make changes after approval, click the unlock button to revert the timesheet to pending status. This allows further edits before re-approving.

> **Warning:** Unlocking a timesheet after payroll export may cause discrepancies. Always coordinate with your payroll team.

---

## Viewing Timesheet Detail

Click an employee's name or the detail button to open their full timesheet. The detail view shows:

- **Daily breakdown** — Each day with clock-in, clock-out, and break times
- **Individual punches** — Every clock event with timestamps
- **Scheduled vs. actual** comparison for each day
- **Notes and overrides** — Any manager notes or manual adjustments

---

## Editing Time Punches

From the timesheet detail view, you can:

### Edit a Punch

1. Click the edit icon next to a punch entry
2. Adjust the time
3. Add a note explaining the change (required for audit trail)
4. Click `Save`

### Add a Manual Punch

1. Click `Add Punch`
2. Select the punch type (Clock In, Clock Out, Break Start, Break End)
3. Enter the time
4. Add a note explaining why the manual punch is needed
5. Click `Save`

### Delete a Punch

1. Click the delete icon next to a punch entry
2. Confirm the deletion
3. Add a note explaining why

> **Tip:** All punch edits are recorded in the Audit History for accountability.

---

## Exporting Timesheets

Timesheets has two export buttons in the toolbar:

| Button | Use it when… |
|--------|--------------|
| **Export CSV** | You want a one-click export of whatever is currently on screen (the visible 1-week or 2-week period). |
| **Custom Export…** | You need to pick a specific date range, override the default approval/export rules, or roll several weeks into a single payroll file. |

### Quick Export (current view)

Click `Export CSV` to download the visible period as a CSV file. Behavior depends on the current view:

| View | What it exports | When it's enabled | Side effect |
|------|-----------------|-------------------|-------------|
| **1 Week** | The current week, **approved timesheets only** | Once at least one timesheet is approved | Approved timesheets are flagged as **Exported** |
| **2 Weeks** | The full 14-day pay period, **all employees** (approved + pending) | Whenever there is any data in the period | None — does **not** mark anything as exported |

The CSV includes:

- Employee name and position
- Daily hours breakdown (per week in 2-week mode)
- Regular, overtime, and double-time hours
- Total pay calculations

### Custom Export…

Click `Custom Export…` (sliders icon) to open the export-range modal. This gives you precise control over the range, which timesheets are included, and whether they get marked as exported afterwards.

![Custom Export Modal](/images/support/articles/timesheets_custom_export_modal.png)

*The Custom Export modal with quick-range buttons, free-form date pickers, a live range preview, and the include/mark-as-exported checkboxes.*

#### Quick range buttons

| Preset | Effect |
|--------|--------|
| **Current view** | Matches the currently visible period (1 or 2 weeks, starting on the current week) |
| **1 week** | Sets the range to 1 week, starting on the same week as the current `Start week` input |
| **2 weeks** | Sets the range to 2 weeks (standard biweekly pay period) |
| **4 weeks** | Sets the range to 4 weeks (monthly pay cycle) |

#### Start / End week pickers

Pick **any date** inside the desired start week and any date inside the desired end week — you don't have to land exactly on the period start.

- The text below each picker resolves your choice to a real week:
  - `Week of {Mon Date}` for the start
  - `Week ending {Sun Date}` for the end
- The blue info box updates live as you type:
  - `{N} weeks selected: {Start Mon} – {End Sun}`

#### Validation rules

- **End must be on or after start** — otherwise the preview turns red with `End week must be on or after the start week.`
- **Maximum 26 weeks** per export — if you pick a wider range, you'll see `{N} weeks selected — exceeds the 26-week maximum.` and the download is blocked.

#### Options

| Option | Default | What it does |
|--------|---------|--------------|
| **Include unapproved timesheets** | On | When checked, the export contains every employee with hours in the range (approved + pending). Uncheck to export only approved timesheets — useful when you want a clean payroll file and pending rows should be excluded. |
| **Mark approved timesheets as exported after download** | Off | When checked, every approved timesheet in the range is flagged `Exported` after a successful download. The next custom export of the same range will still pull the same data, but the badge on the dashboard reflects that the row has been pushed to payroll. Leave it off for ad-hoc reports you don't want to affect the export bookkeeping. |

#### Confirming the export

Click `Download CSV` to run the export. On success:

1. The CSV downloads to your browser.
2. If `Mark approved timesheets as exported after download` was checked, matching rows update to the **Exported** status.
3. The modal closes automatically.

> **Tip:** A common payroll workflow is: switch to **2 Weeks** view, navigate to the pay period that just closed, approve any pending rows, open **Custom Export…**, click the **Current view** preset, leave both checkboxes at their defaults (or check `Mark approved as exported` if you're done), and click **Download CSV**.

> **Tip:** Use the CSV export for importing into your payroll system (QuickBooks, ADP, etc.).

---

## Troubleshooting

### Missing Time Entries

- Check if the employee clocked in using the correct store
- Verify their clock PIN is set up in Team Members
- Check the Audit History for any deleted punches

### Incorrect Hours

- Review individual punches for missed clock-outs (the system may have auto-clocked them out)
- Check for overlapping punches from breaks
- Use the edit function to correct any errors

---

## Related Articles

- [Schedule Calendar](/support/articles/schedule-calendar)
- [Approval Queue](/support/articles/approval-queue)
- [Scheduling Settings](/support/articles/scheduling-settings)
- [Audit History](/support/articles/audit-history)
