> For the complete documentation index, see [llms.txt](https://docs.shortcutco.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.shortcutco.com/readme/configuration/time-clock-and-timesheets.md).

# Time Clock & Timesheets

Time Clock gives every employee a clock-in button on their phone. Timesheets gives you the office side: what everyone worked, what needs a second look, and a permanent record of every correction. [Open Workforce →](https://shortcutco.com/workforce)

{% hint style="info" %}
**Time Clock is off until you turn it on.** Nothing changes for your crew until an admin enables it.
{% endhint %}

## Turn it on

{% stepper %}
{% step %}

### Open Workforce → Timesheets

Click **Workforce** in the left navigation, then the **Timesheets** tab. Only company admins can see this page.
{% endstep %}

{% step %}

### Click Turn on Time Clock

The **Time Clock** card sits at the top of the tab. Turning it on takes effect immediately — your crew sees the controls in [Today](https://shortcutco.com/today) next time they open it.
{% endstep %}

{% step %}

### Set the day your workweek starts

Right beside the Time Clock toggle is **Workweek starts on**. Set it to whatever your payroll runs on — Monday by default, but plenty of companies run Sunday or Thursday.

This is what workweek subtotals are grouped by in the [Payroll Punch Report](/readme/reports.md#payroll-punch-report). Set it once and forget it.
{% endstep %}
{% endstepper %}

Time tracking starts from the day you turn it on. Earlier dates stay blank rather than being filled in with zeroes, so an empty week before you started never reads as "nobody worked."

To turn it back off, use the same button. Historical timesheets stay available after you do. Shortcut won't let you turn it off while someone is still clocked in — close that shift first.

## What your crew sees

In [Today](https://shortcutco.com/today), each worker gets a card showing where they stand:

* **Clocked out** — with **Clock in** to start the day
* **On the clock** — with a running timer, plus **Start unpaid break** and **Clock out**
* **On unpaid break** — with a break timer and **Resume work**

Finished the day and later picked up more work? **Start another shift** opens a second shift on the same day.

### Three things worth telling your crew

* **Location is captured when they tap, not all day.** Shortcut asks for a location at the moment a punch happens and never tracks anyone continuously.
* **Unpaid breaks are unpaid.** A completed unpaid break is excluded from paid hours. The break reason is just a description — it never changes the deduction.
* **Their time has a history.** The office can review the full record and append corrections, and a worker's own same-day changes are recorded too.

### Working without signal

Punches taken out of range are saved on the phone and sync when the connection comes back. The card says so at the time — *"Clock-in is queued and pending sync"* — so nobody taps twice wondering whether it took.

### Clocking in the whole crew

A worker can punch in or out several teammates at once from the crew sheet. Everyone selected gets the same capture time, so a four-person crew arriving together doesn't produce four slightly different start times.

The same sheet has **Flag for office** with an optional note — for "Dave left at lunch, ask the office to sort it out." A flag sends a note only. **It never changes anyone's paid time.**

### Fixing a mistake in the field

A worker can correct **today's** own punches from **Time details** — a mistyped clock-in, a break they forgot to end. The correction is saved with a record of what it replaced.

Earlier days are read-only for workers. Those go to the office.

## Reviewing time in the office

**Workforce → Timesheets** lists every worker-day in the range.

* **Quick range** — Last 7, 14, or 30 days, or set your own From and To dates.
* **Filters** — everything, **Unmeasured**, **Flags**, or **No shift recorded**; plus a crew filter.
* The **Timesheets tab carries a badge** with the number of unmeasured shifts waiting on you. It's the same idea as the Dispatch attention badge: it goes down when you deal with something, not when time passes.

Click any row to open **Daily detail** — the full event timeline for that person and day, plus the office actions below.

### Correcting someone's time

In the daily detail drawer, **Append correction** replaces or removes an event. Every office correction requires an audit reason before it saves.

{% hint style="info" %}
**Corrections add, they never overwrite.** The original punch stays in the timeline with the correction recorded against it. You can always see what the clock said before someone changed it, who changed it, and why.
{% endhint %}

The same drawer is where you **Resolve** an exception — a shift Shortcut couldn't measure, usually a missing clock-out — and where you mark informational flags as reviewed. Resolving an exception is what clears it from the badge.

A shift left open past midnight is closed automatically and shows as **System close**, so an open shift never runs away with a hundred hours. Those land in your unmeasured list to resolve.

Shortcut also raises a flag when someone works **more than six hours straight with no break recorded**. It's informational — it doesn't change anyone's paid time and it doesn't block anything. It's there so you can spot a break somebody forgot to punch before payroll goes out, rather than after.

## Exporting, and the record it leaves

**Export CSV** downloads the timesheet rows for the range and filters you're currently looking at.

Every export is recorded — who ran it, when, and which dates it covered. You don't have to do anything to make that happen, and there's nothing to switch on. It's simply how Shortcut keeps track.

That record is what makes late changes visible. If someone corrects a punch that was already included in an export, the row is marked **Edited after export**, in amber, wherever it appears. The document you already sent to payroll doesn't change — it can't — but you can see at a glance that the underlying hours moved after the fact, and go find out why.

{% hint style="info" %}
**There's no longer a lock to set.** Older versions of Shortcut asked you to lock a period before running payroll. You don't need to, and there's nothing to remember to unlock. Corrections are always allowed; the ones that come after an export are simply flagged. If you locked periods in the past, those old flags still show under the same amber marker, and you can still switch to an earlier locked version to see what it said at the time.
{% endhint %}

### When an export is refused

Shortcut won't export a range that still contains an unresolved shift it couldn't measure — usually a missing clock-out that got closed automatically at midnight.

You'll see a red line next to the **Export CSV** button telling you so, with a count of the days involved. Resolve the shifts it names in **Daily detail**, then export. It's the same rule the [Payroll Punch Report](/readme/reports.md#payroll-punch-report) uses: better no document than a wrong one.

## What the numbers mean

| Figure                                 | What it is                                                                                                                                       |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Paid hours**                         | Time on the clock, with completed unpaid breaks removed                                                                                          |
| **Job hours**                          | Paid time that lines up with visits                                                                                                              |
| **Non-job time**                       | Paid time that doesn't — drive time, shop time, loading                                                                                          |
| **Paid utilization**                   | The share of paid time that went to jobs                                                                                                         |
| **Paid labor cost · at current rates** | Paid hours priced at each person's current wage. It's what those hours cost at today's rates — not a forecast, and not what you paid at the time |
| **Measurement coverage**               | How many worker-days in the range were complete enough to count                                                                                  |

Coverage is the one to read first. These figures are built only from complete, punch-active worker-days, so a range with unresolved shifts is describing part of the picture. Resolve the exceptions, and coverage — and the numbers — fill in.

{% hint style="info" %}
**Your clock hours now feed your job costs.** When every person on a crew has a complete shift for the day, Shortcut prices that day's work using the hours they actually worked instead of estimating from how long the visits took. Days that aren't fully punched keep the old estimate. See [Costs & Profitability](/readme/costs-and-profitability.md#where-your-labor-numbers-come-from) for what changes and what to watch for.

Timesheet hours still don't touch **billing**. What you charge a customer is what you quoted them — per-man-hour services are billed exactly the way they always were.
{% endhint %}

## Related pages

* [Workforce (users + roles + teams)](/readme/configuration/workforce-users-+-roles-+-teams.md)
* [Worker app overview](/readme/worker-app/worker-app-overview.md)
* [Costs & Profitability](/readme/costs-and-profitability.md)

<details>

<summary>Still stuck?</summary>

Email **<hello@shortcutco.com>** with the worker's name, the date, and a screenshot of the Timesheets row that won't clear.

</details>
