> For the complete documentation index, see [llms.txt](https://docs.zipwire.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zipwire.io/zipwire-approve/unboxing-key-concepts/timesheet-flags.md).

# Timesheet Flags

When a timesheet is submitted, Zipwire automatically scans it for conditions worth an approver's attention. Anything notable is surfaced as a **flag** — a short banner shown at the top of the timesheet view.

Flags don't block approval. They're information, not a verdict.

## How Flags Are Computed

Flags are calculated twice: at submission, and again if a processor later adjusts which billing units are billed. This keeps them in sync with the current billed state rather than just a snapshot from when the timesheet was first sent.

<figure><img src="/files/r3BLW7FwBFHECjHKohgm" alt="Timesheet view showing a &#x27;Something to flag — Overworked&#x27; banner, with Monday showing 9 billed hours against a standard 8-hour day"><figcaption><p>The flag banner appears at the top of the timesheet. Here, Monday was billed at 9 hours — one hour over the standard day.</p></figcaption></figure>

## The Flags

### Holiday Worked

Time was logged on a public holiday. Zipwire checks the timesheet's locale (e.g. `en-GB`, `en-US`) against a public holiday calendar. The flag fires on any day where minutes were logged — regardless of whether those hours ended up being billed.

### Weekend Worked

Time was logged on a Saturday or Sunday.

### Overworked

The sender billed **more** units than the standard day length defined in their billing plan. For example, if the standard is 8 hours and the sender billed 9 hours on a Monday, this flag appears. Standard hours are taken from the active billing plan; the fallback is 8 hours if no plan is found.

### Underworked

The sender billed **fewer** units than standard — a partial day where a full day might have been expected. Same calculation as Overworked, but in the other direction.

### Foreign Activities

One or more activities on the timesheet belong to a **different assignment** than the one the workflow was created for. This can happen when a sender works across multiple assignments and logs time against the wrong one. Only applies to assigned workflows.

### Multiple Workplaces

Activities reference more than one workplace. Most timesheets are scoped to a single workplace, so this may indicate cross-billing or a data entry error.

### Billing Plan Change Mid-Period

The sender's rate plan changed partway through the timesheet period. This is legitimate but worth noting — different rates may apply to different days within the same sheet.

### No Rate Plan

The timesheet is on a workplace-assigned workflow but all financial totals are zero. This typically means no rate plan was in effect at billing time; the sender may have submitted before their contract was fully configured.
