> ## Documentation Index
> Fetch the complete documentation index at: https://docs.timetracker.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Statuses reference

> Every status in TimeTracker in one place – timesheets, time entries, invoices, expenses, leave, tasks, projects and more, with the legal moves between them.

Every status set the product uses, and which moves between them are allowed.

## Timesheet submission

A submitted week carries one of four statuses. Before anyone submits, the week has no
status at all and shows as **Not submitted**.

| Status              | Meaning                                               |
| ------------------- | ----------------------------------------------------- |
| Not submitted       | Nobody has sent this week for review yet.             |
| `submitted`         | Sent for review and waiting on an approver.           |
| `approved`          | An approver accepted it.                              |
| `changes_requested` | Sent back. Editable again, waiting to be resubmitted. |
| `withdrawn`         | Pulled back by the submitter. Editable again.         |

<Note>
  There is no `rejected` status on a timesheet. Sending one back is
  **changes requested**, and it lands the week straight back with its author.
  Reopening an approved week is an *event*, not a status – it puts the week back into
  `changes_requested`.
</Note>

### Legal moves

| From                | To                                           |
| ------------------- | -------------------------------------------- |
| Not submitted       | `submitted`                                  |
| `submitted`         | `approved`, `changes_requested`, `withdrawn` |
| `changes_requested` | `submitted` (resubmit)                       |
| `withdrawn`         | `submitted` (resubmit)                       |
| `approved`          | `changes_requested` (reopen)                 |

See [timesheet statuses](/timesheets/timesheet-statuses) and
[reopen an approval](/approvals/reopen-an-approval).

## Time entry

Each individual entry carries its own approval status. This is what decides whether
an hour can still be edited, and whether it can be invoiced.

| Status      | Meaning                                       |
| ----------- | --------------------------------------------- |
| `draft`     | Still editable by its author.                 |
| `submitted` | On a timesheet that has been sent for review. |
| `approved`  | Accepted by an approver.                      |
| `locked`    | The period was closed. No further edits.      |
| `invoiced`  | Attached to an invoice line.                  |

A **Rejected** badge is what you see on a draft entry that was sent back with a
reason. It is a display state, not a sixth status.

### Legal moves

| From        | To          | When                                                 |
| ----------- | ----------- | ---------------------------------------------------- |
| `draft`     | `submitted` | The week is submitted                                |
| `submitted` | `approved`  | An approver accepts it                               |
| `submitted` | `draft`     | Changes are requested                                |
| `approved`  | `locked`    | The period is closed                                 |
| `approved`  | `draft`     | An approval is reopened                              |
| `locked`    | `invoiced`  | It goes on an invoice                                |
| `invoiced`  | `locked`    | That invoice is voided, releasing it to be re-billed |

<Warning>
  An approval can only be reopened while **no** entry in the period has moved past
  `approved`. Once time is `locked` or `invoiced`, reopening is refused. Use an
  [adjustment](/approvals/adjustments) instead.
</Warning>

## Invoice

| Status           | Meaning                                     |
| ---------------- | ------------------------------------------- |
| `draft`          | Being built. Not sent, not counted as owed. |
| `sent`           | Issued to the client.                       |
| `viewed`         | The client opened it.                       |
| `partially_paid` | Some money is in, a balance remains.        |
| `paid`           | Settled in full. **Terminal.**              |
| `overdue`        | Past its due date and still owing.          |
| `void`           | Cancelled. **Terminal.**                    |

### Legal moves

| From             | To                                                    |
| ---------------- | ----------------------------------------------------- |
| `draft`          | `sent`, `void`                                        |
| `sent`           | `viewed`, `partially_paid`, `paid`, `overdue`, `void` |
| `viewed`         | `partially_paid`, `paid`, `overdue`, `void`           |
| `partially_paid` | `paid`, `overdue`, `void`                             |
| `overdue`        | `partially_paid`, `paid`, `void`                      |
| `paid`           | *(nothing – terminal)*                                |
| `void`           | *(nothing – terminal)*                                |

A status is never its own successor, so `sent` → `sent` is refused too.

<Note>
  **A draft invoice cannot take a payment.** Send it first. And an invoice that is
  already `paid` or `void` can never move again – to change a paid invoice, void it and
  raise a new one.
</Note>

See [invoice statuses](/invoicing/invoice-statuses) and
[void an invoice](/invoicing/void-an-invoice).

## Expense

| Status      | Meaning                                            |
| ----------- | -------------------------------------------------- |
| `draft`     | Being written. Not in anyone's queue.              |
| `submitted` | Waiting on an approver.                            |
| `approved`  | Accepted, and eligible to be invoiced if billable. |
| `rejected`  | Sent back.                                         |
| `invoiced`  | On an invoice line. **Terminal.**                  |

### Legal moves

| From        | To                                              |
| ----------- | ----------------------------------------------- |
| `draft`     | `submitted`                                     |
| `submitted` | `approved`, `rejected`, `draft` (withdraw)      |
| `approved`  | `invoiced`, `submitted` (withdraw the approval) |
| `rejected`  | `draft` (rework)                                |
| `invoiced`  | *(nothing – terminal)*                          |

See [expense statuses](/expenses/expense-statuses).

## Leave request

| Status      | Meaning                                |
| ----------- | -------------------------------------- |
| `pending`   | Waiting on an approver.                |
| `approved`  | Booked. It counts against the balance. |
| `rejected`  | Declined.                              |
| `withdrawn` | Pulled back by the person who asked.   |

Only a `pending` request can be withdrawn, and only an `approved` one can be revoked.
See [request time off](/time-off/request-time-off).

## Task

Tasks move through per-project **[sections](/projects/project-sections)** – the
columns your project defines. Sections are the user-facing concept, and every project
sets its own.

Alongside that, a task carries a workflow status you can filter and report on:

| Status        | Label       |
| ------------- | ----------- |
| `todo`        | To do       |
| `in_progress` | In progress |
| `in_review`   | In review   |
| `waiting`     | Waiting     |
| `completed`   | Completed   |

## Project

| Status              | Label             |
| ------------------- | ----------------- |
| `draft`             | Draft             |
| `planned`           | Planned           |
| `active`            | Active            |
| `on_hold`           | On hold           |
| `waiting_on_client` | Waiting on client |
| `completed`         | Completed         |
| `cancelled`         | Cancelled         |
| `archived`          | Archived          |

A project also carries a budget **health** signal:

| Health  | Label       |
| ------- | ----------- |
| `green` | On track    |
| `amber` | At risk     |
| `red`   | Over budget |

See [project settings](/projects/project-settings) and
[budget alerts](/budgets/budget-alerts).

## Client

| Status     | Label    |
| ---------- | -------- |
| `active`   | Active   |
| `archived` | Archived |

## Timecard day

The Time Clock resolves each day to one primary status, and can add more alongside it.

| Status              | Label             | Meaning                                                        |
| ------------------- | ----------------- | -------------------------------------------------------------- |
| `present`           | Present           | Worked the scheduled day.                                      |
| `late`              | Late              | Clocked in after the scheduled start, beyond the grace window. |
| `left-early`        | Left early        | Clocked out before the scheduled end, beyond grace.            |
| `absent`            | Absent            | Scheduled, but no work recorded.                               |
| `worked-on-day-off` | Worked on day off | Worked when not scheduled.                                     |
| `unscheduled`       | Unscheduled       | Worked with no schedule assigned.                              |
| `over-scheduled`    | Over scheduled    | Worked beyond the scheduled expectation, beyond grace.         |
| `incomplete`        | Incomplete        | A session was never clocked out.                               |

A **timecard period** you submit uses the same four statuses as a timesheet:
`submitted`, `approved`, `changes_requested`, `withdrawn`.

See [timecards](/time-clock/timecards) and
[missing clock out](/time-clock/missing-clock-out).

## Invitation

| Status     | Label    |
| ---------- | -------- |
| `pending`  | Pending  |
| `accepted` | Accepted |
| `revoked`  | Revoked  |
| `expired`  | Expired  |

A `pending` invitation holds a seat. See
[pending invitations](/team/pending-invitations).

## Subscription

| Status      | Label     |
| ----------- | --------- |
| `trialing`  | Trial     |
| `active`    | Active    |
| `past_due`  | Past due  |
| `paused`    | Paused    |
| `cancelled` | Cancelled |
| `expired`   | Expired   |

See [manage your subscription](/billing/manage-your-subscription).

## Budget shape

Not a status, but the two fields people look for alongside one.

| Field       | Values                  |
| ----------- | ----------------------- |
| Kind        | `hours` or `money`      |
| Periodicity | `one_time` or `monthly` |

A monthly budget is a recurring retainer. See
[recurring retainers](/budgets/recurring-retainers).

## Related guides

<CardGroup cols={2}>
  <Card title="Timesheet statuses" icon="list-check" href="/timesheets/timesheet-statuses">
    What each timesheet state means day to day.
  </Card>

  <Card title="Invoice statuses" icon="file-invoice" href="/invoicing/invoice-statuses">
    The invoice lifecycle in context.
  </Card>

  <Card title="Approvals" icon="circle-check" href="/approvals/overview">
    Who moves what, and when.
  </Card>

  <Card title="Adjustments" icon="pen-to-square" href="/approvals/adjustments">
    Correcting time that is already locked.
  </Card>

  <Card title="Expense statuses" icon="receipt" href="/expenses/expense-statuses">
    The expense lifecycle.
  </Card>

  <Card title="Glossary" icon="book" href="/concepts/glossary">
    Every term, defined once.
  </Card>
</CardGroup>
