> ## 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.

# Submit a timecard

> Send a TimeTracker timecard period for approval, pick an approver, withdraw a submission, and understand every timecard submission status.

Submitting a timecard tells your manager the period is finished. It also freezes
the period, so the days stop changing while it is under review.

## When to submit

Submit at the end of your workspace's period – a week, two weeks, or a month.
Before you do:

* Every day is clocked out. No **Incomplete** rows.
* Any missing clock-out is fixed. No **Fix** badges.
* The **Variance** column matches what actually happened.

## Submit it

<Steps>
  <Step title="Open the Timecards tab">
    Go to **Time**, then the **Timecards** tab.
  </Step>

  <Step title="Move to the period">
    Use the arrows or the period label.
  </Step>

  <Step title="Check the worked total">
    The bar shows **Worked** as `H:MM:SS`, with a status badge beside it.
  </Step>

  <Step title="Click Submit timecard">
    If your workspace has approvers set up, a dialog opens.
  </Step>

  <Step title="Choose an approver">
    The dialog is **Submit timecard for approval** – "Choose who should review
    this period's timecard." Pick a name from **Approver**.
  </Step>

  <Step title="Click Submit">
    You get the toast "Timecard submitted for approval".
  </Step>
</Steps>

<Tip>
  The approver box remembers your last choice, so most weeks are two clicks.
</Tip>

If there are no eligible approvers, the submission goes straight through with no
dialog.

## The statuses

| Badge                 | Meaning                                                |
| --------------------- | ------------------------------------------------------ |
| **Not submitted**     | No submission exists for this period yet.              |
| **Submitted**         | Sent for review. The period is frozen.                 |
| **Approved**          | A reviewer accepted it.                                |
| **Changes requested** | A reviewer sent it back with a reason. Editable again. |
| **Withdrawn**         | You pulled it back yourself. Editable again.           |

## What freezing means

While a period is **Submitted** or **Approved**:

* Its day figures stop recalculating.
* Its shifts cannot be edited, added or deleted.
* The **Edit times** action disappears from the row menus.

That is the point. The approver is looking at a fixed record, not a moving one.

## Withdraw a submission

Changed your mind before anyone reviewed it?

<Steps>
  <Step title="Click Withdraw submission">
    The button replaces **Submit timecard** while the period is submitted.
  </Step>

  <Step title="Confirm">
    The dialog asks **Withdraw 13 – 19 Jul?** with "This pulls the timecard back
    from approval and returns it to draft so the days can be edited again."
  </Step>

  <Step title="Click Withdraw timecard">
    You get "Timecard withdrawn – the period is editable again."
  </Step>
</Steps>

Withdrawing is only offered on **your own** timecard, and only while it is still
**Submitted**.

## After a review

| What the reviewer does | What you see                                                              |
| ---------------------- | ------------------------------------------------------------------------- |
| Approves               | Status **Approved**. The period stays frozen.                             |
| Requests changes       | Status **Changes requested**, with their reason. Days are editable again. |

Fix what they asked for, then click **Submit timecard** again.

If a period was already approved and something is wrong, an owner or admin can
reopen it. That needs `timecard.reopen` and a written reason.

## Example

Sarah Lin finishes the week of 13 July at Northwind Studio.

1. She opens **Time → Timecards** and checks the five rows. Thursday reads
   **Incomplete** – she forgot to clock out.
2. She uses **Edit times** to set Thursday's clock-out to 17:15. The day flips to
   **Present**.
3. **Worked** now reads `38:45:00` against 40 scheduled hours.
4. She clicks **Submit timecard**, picks **Priya Raman** as the approver, and
   clicks **Submit**.
5. Priya approves it on Monday. The badge turns **Approved**.

## Permissions

| Action                     | You need                  | Roles                                                      |
| -------------------------- | ------------------------- | ---------------------------------------------------------- |
| Submit your own            | `timecard.submit`         | Owner, Admin, Project Manager, Finance, Member, Contractor |
| Submit for someone else    | `timecard.submitOnBehalf` | Owner, Admin, Project Manager                              |
| Approve or request changes | `timecard.approve`        | Owner, Admin, Project Manager                              |
| Reopen an approved period  | `timecard.reopen`         | Owner, Admin                                               |

Self-approval is allowed – a manager can approve their own timecard.

## Plan gating

Submitting is a **Free** feature. Approving is **Pro**.

<Note>
  A Free workspace can clock in, build timecards and submit them. The submissions
  sit and wait. The day the workspace upgrades, the whole backlog can be cleared –
  nothing is lost.
</Note>

See [Plans and features](/concepts/plans-and-features).

## What happens next

* Your approver is notified that a timecard is waiting.
* The period appears in the **Approvals** area for people who can review it.
* Once approved, the period stays frozen unless someone reopens it.

## Common questions

<AccordionGroup>
  <Accordion title="How long is a timecard period?">
    The same as your timesheet period – weekly, biweekly or monthly. An owner or
    admin sets it in **Settings → Time policies**.
  </Accordion>

  <Accordion title="Can I submit a timecard and a timesheet separately?">
    Yes. They are two separate submissions with their own buttons, statuses and
    approvers, even though both live on the **Time** page.
  </Accordion>

  <Accordion title="What if a day is still Incomplete?">
    Fix it first. An open session leaves the day unfinished, and the worked total
    will be wrong.
  </Accordion>

  <Accordion title="Who can be my approver?">
    Anyone in the workspace who holds `timecard.approve` and whose scope reaches
    you. The list is filtered to exactly those people.
  </Accordion>

  <Accordion title="Can I withdraw after it is approved?">
    No. **Withdraw submission** only appears while the status is **Submitted**.
    After approval, an owner or admin reopens it instead.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                            | Cause                                                           |
| -------------------------------------------------- | --------------------------------------------------------------- |
| No **Submit timecard** button                      | You lack `timecard.submit`, or the period is already submitted. |
| "This has already been submitted."                 | Someone submitted it first. Refresh.                            |
| "Someone else changed this while you had it open." | The status moved under you. Refresh and try again.              |
| A day will not save                                | The period is submitted or approved. Withdraw or reopen it.     |
| The approver list is empty                         | Nobody in your scope holds `timecard.approve`.                  |

## Related guides

<CardGroup cols={2}>
  <Card title="Timecards" icon="table" href="/time-clock/timecards">
    Getting the period right before you submit.
  </Card>

  <Card title="Approve a timecard" icon="circle-check" href="/approvals/approve-a-timecard">
    The reviewer's side.
  </Card>

  <Card title="Reopen an approval" icon="rotate-left" href="/approvals/reopen-an-approval">
    Undoing a sign-off.
  </Card>

  <Card title="Time Clock permissions" icon="key" href="/time-clock/time-clock-permissions">
    Who can submit and approve.
  </Card>
</CardGroup>
