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

# Approve a timecard

> Review a submitted timecard period from the shared Approvals inbox, compare worked against scheduled hours day by day, then approve, send back, or reopen it.

Timecards queue on their own tab in **Approvals**. Open **Approvals → Timecards**, review the day-by-day worked and scheduled hours, then approve or send it back.

## Timecard vs timesheet

They look alike and they are not the same record.

|                       | Timecard                                  | Timesheet                        |
| --------------------- | ----------------------------------------- | -------------------------------- |
| Records               | Presence at work – clock in and clock out | Hours against tasks and projects |
| Answers               | Were you at work, and when?               | What did you work on?            |
| Capability to approve | `timecard.approve`                        | `time.approve`                   |
| App                   | Time Clock                                | Timesheets                       |

They have separate queues, separate capabilities and separate approvals. Approving one never approves the other.

## The Timecards tab

Three sub-tabs, each with a live count.

| Sub-tab               | What it lists                                                       |
| --------------------- | ------------------------------------------------------------------- |
| **Awaiting approval** | Submitted timecard periods you may review                           |
| **Not submitted**     | People with clocked time in the current period who have not sent it |
| **History**           | Periods already approved, changed back, or withdrawn                |

A shared filter bar sits below them – a **member picker**, and on **History** a status select with **All statuses**, **Approved**, **Changes requested** and **Withdrawn**. The **Not submitted** tab shows the current period label instead.

### List columns

| Column     | What it shows                                                     |
| ---------- | ----------------------------------------------------------------- |
| **Member** | Name, plus "(by `<name>`)" when someone submitted on their behalf |
| **Period** | The date range                                                    |
| **Worked** | Minutes actually clocked, shown as hours and minutes              |
| **Days**   | How many days have records                                        |
| **Status** | On the History tab only                                           |
| Action     | **Review** on the awaiting tab, **View** on history               |

The **Not submitted** tab has its own shape – **Member**, **Worked**, **Days**, and **Status**, which reads "Not submitted" when no submission exists yet.

Empty states are plain: "No timecards are awaiting approval.", "Everyone with clocked time has submitted this period.", "No reviewed timecards yet."

## Review a timecard period

<Steps>
  <Step title="Open the queue">
    Go to **Approvals → Timecards → Awaiting approval**.
  </Step>

  <Step title="Click Review">
    The drill-down page opens for that person and period.
  </Step>

  <Step title="Read the summary">
    Under the person's name: worked hours, scheduled hours, and the number of days – for example "38h worked · 40h scheduled · 5 days".
  </Step>

  <Step title="Scan the days table">
    One row per day, with worked, scheduled, late minutes, and a status.
  </Step>

  <Step title="Approve or send it back">
    **Approve** settles the period. **Request changes** returns it with a reason.
  </Step>
</Steps>

### The days table

| Column        | What it shows                              |
| ------------- | ------------------------------------------ |
| **Day**       | The date                                   |
| **Worked**    | Minutes actually clocked                   |
| **Scheduled** | Minutes the person's work schedule expects |
| **Late**      | Minutes late, or a dash                    |
| **Status**    | The day's attendance status                |

If nobody clocked anything, the table reads "No clocked days in this period."

Scheduled minutes come from the person's **work schedule**, exactly as they do on a timesheet. See [/schedules/overview](/schedules/overview).

## Approve, request changes, reopen

| Button              | Shown when                                              |
| ------------------- | ------------------------------------------------------- |
| **Approve**         | The period is submitted and you hold `timecard.approve` |
| **Request changes** | The period is submitted and you hold `timecard.approve` |
| **Reopen**          | The period is approved and you hold `timecard.reopen`   |

**Request changes** and **Reopen** both open a dialog with a required reason. The field is labelled "Reason (shared with the member)" – whatever you write goes to them.

If you leave it empty you get "A reason is required."

Approving gives you `Timecard approved` and returns you to the queue. The other two give `Changes requested` and `Timecard reopened`.

## Example

Northwind Studio switches on the Time Clock app for its studio staff.

Jonas Bergman clocks in and out all week and submits his timecard on Friday.

Priya Raman opens **Approvals**. A fourth tab, **Timecards**, is now there with a `1` badge. She clicks **Review** on Jonas's row.

The summary reads "38h worked · 40h scheduled · 5 days". The days table shows Wednesday at 6 hours worked against 8 scheduled, and 15 minutes late on Tuesday.

Priya knows Jonas left early on Wednesday for a client call that ran off-site, so she approves. Jonas is notified.

The following week his card shows a day with no clock-out at all. Priya clicks **Request changes** and writes "Thursday has no clock-out – please fix the times and resubmit."

## Permissions

| Action                            | Capability                | Default roles                                              |
| --------------------------------- | ------------------------- | ---------------------------------------------------------- |
| See the Timecards tab and approve | `timecard.approve`        | Owner, Admin, Project Manager                              |
| Reopen an approved timecard       | `timecard.reopen`         | Owner, Admin                                               |
| Correct clock times               | `timecard.manage`         | Owner, Admin, Project Manager                              |
| Submit your own timecard          | `timecard.submit`         | Owner, Admin, Project Manager, Finance, Member, Contractor |
| Submit for a teammate             | `timecard.submitOnBehalf` | Owner, Admin, Project Manager                              |

`timecard.reopen` sits above the Project Manager tier, matching `time.reopenApproval` on timesheets. Reversing a recorded decision is an owner and admin action.

Supervision scope applies to all of it.

## Plan and app gating

Two gates, both must pass.

* **The Time Clock app must be switched on** in **Settings → Apps**. It is **off by default**, and it depends on the **Work schedules** app – you cannot switch it on without schedules, because expected minutes and absence come from the schedule.
* **Approvals is Pro.** Clocking in and out is free; approving a timecard is not.

If the app is off, the **Timecards** tab does not appear at all. That is different from a plan lock, which keeps the surface visible behind a paywall. See [/concepts/apps-and-modules](/concepts/apps-and-modules).

## What happens next

* Approving settles the period and notifies the person.
* Requesting changes returns it to them with your reason, so they can correct their clock times and resubmit.
* The row moves from **Awaiting approval** to **History**.

## Common questions

<AccordionGroup>
  <Accordion title="Why is there no Timecards tab?">
    The Time Clock app is off in **Settings → Apps**, or you do not hold `timecard.approve`.
  </Accordion>

  <Accordion title="Does approving a timecard approve the timesheet too?">
    No. They are separate records with separate approvals. Approve each one on its own tab.
  </Accordion>

  <Accordion title="Where do the scheduled minutes come from?">
    From the person's work schedule – the same source the timesheet grid uses for expected hours.
  </Accordion>

  <Accordion title="Can I fix someone's clock times myself?">
    With `timecard.manage` you can adjust clock-in and clock-out times. The day recomputes on every change.
  </Accordion>

  <Accordion title="Someone forgot to clock out. What now?">
    Request changes so they fix it, or correct the times yourself if you hold `timecard.manage`. See <a href="/time-clock/missing-clock-out">Missing clock out</a>.
  </Accordion>
</AccordionGroup>

## Troubleshooting

* **"You can't approve timecards."** You do not hold `timecard.approve`.
* **"You can't reopen a submitted timecard."** `timecard.reopen` is Owner and Admin only by default.
* **"A reason is required."** Fill in the reason before confirming a request-changes or reopen.
* **Scheduled hours read zero.** The person has no work schedule assigned.
* **The tab shows a paywall.** The workspace is on the Free plan.

## Related guides

<CardGroup cols={2}>
  <Card title="Timecards" icon="clock" href="/time-clock/timecards">
    What a timecard records and how it is built.
  </Card>

  <Card title="Submit a timecard" icon="send" href="/time-clock/submit-a-timecard">
    The person's side of this workflow.
  </Card>

  <Card title="Approvals overview" icon="check-check" href="/approvals/overview">
    The shared inbox all four domains share.
  </Card>

  <Card title="Absence and expected hours" icon="user-x" href="/time-clock/absence-and-expected-hours">
    Where scheduled minutes come from.
  </Card>

  <Card title="Time clock permissions" icon="shield" href="/time-clock/time-clock-permissions">
    Every timecard capability, by role.
  </Card>

  <Card title="Apps and modules" icon="toggle-right" href="/concepts/apps-and-modules">
    Why the tab disappears when the app is off.
  </Card>
</CardGroup>
