---
title: "Approve timesheets"
description: "Review submitted weeks, approve them or return them with a note, chase the technicians who have not submitted, and reopen an approved week."
url: "https://support.outpostplatform.com/msp/timesheet-approvals/"
product: "depot"
type: "how-to"
status: "draft"
ai_summary: "MSP plan, timesheet:approve. Timesheets > Approvals lists weeks Waiting for approval and Not submitted last week. Approve or Return (with a note) the selected weeks; each stands alone. Approving locks the technician's time in that week on every client. Refused if the week changed since it was read or a client did not answer. Reopen needs a reason."
availability:
  plans: ["msp"]
  permission: "timesheet:approve"
  preview: false
source: "https://gitlab.com/outpostplatform/docs/-/edit/main/src/content/docs/msp/timesheet-approvals.md"
license: "CC BY 4.0"
---

# Approve timesheets

When technicians submit their weeks, an approver checks each one and either
approves it or sends it back with a note. Approving a week locks that
technician's time in it on every client, so the hours you sign off are the
hours payroll and reporting see. This page shows how to work the approvals
queue, review one week in detail, and reopen a week that needs correcting
after it was approved.

## Before you begin

- You are on the MSP plan and hold `timesheet:approve`. See
  [Timesheet reference](/msp/timesheet-reference/#permissions) for the roles
  that have it.
- Approving locks the technician's time for that week on every client until
  you or another approver reopen it. See
  [What approving a week locks](/msp/timesheets/#what-approving-a-week-locks).

## Work the approvals queue

Select **Timesheets** > **Approvals**. When weeks are waiting, **Timesheets**
in the navigation shows how many.

The page opens on **Waiting for approval**: every submitted week, oldest
first. The other built-in view, **Not submitted last week**, lists every
technician whose week for last week is still **Draft** or **Returned**, so you
know who to chase.

- **Find a technician** narrows the list by name.
- In the filters, **Sheets** switches between **Waiting for approval** and
  **Not submitted**, and **Week** picks one week from the last 12.

Each row shows the **Technician**, the **Week**, **Total / target**, the
**Billable** share of non-leave time, **Leave**, when it was **Submitted**,
and the **State**. Select the technician's name to open their week.

### Approve weeks

1. Select the checkbox on each week to approve. The checkbox in the header
   selects every week in the list.
2. Select **Approve**.

Only submitted weeks can be approved or returned. If your selection holds a
week in another state, **Approve** and **Return** say **Only submitted
timesheets can be approved or returned.**

Each week succeeds or fails on its own. When every week went through, the
page says how many were updated. When some did not, it lists each technician
whose week was not changed, with the reason, and approves the rest.

### Return weeks with a note

1. Select the weeks to send back.
2. Select **Return**.
3. In **What needs fixing**, say what the technicians need to change. Every
   selected technician sees this note on their week.
4. Select **Return**.

The weeks become **Returned**, and each technician fixes their week and
submits it again.

## Review one week

Open a week from the queue, or select **Timesheets** > **My timesheet** and
choose the person in **Technician**. You see the week as they do: the day
strip, the totals, and every row.

- On a submitted week, select **Approve**, or **Return** and enter **What
  needs fixing**.
- You can correct the week before you decide it. Select a cell to edit or
  delete an entry, or use **Add time** to add other time, such as a day of
  PTO, for them. Ticket and task time can only be added by the technician who
  did the work, and the dialog says **Ticket and task time is added by the
  technician who did the work.**

You can approve your own week. The approval is recorded as a self-approval in
the audit trail.

## When an approval is refused

An approval is checked against the week as it stands at that moment, not as
it was when you opened it.

| What you see | Why | What to do |
| --- | --- | --- |
| **The time on this sheet changed after it was opened. Check the new totals and approve again.** | The total you approved is not the week's total any more. The technician, or someone else, added or changed time after you loaded the page. | Open the week again, check what changed, and approve it again. |
| **Some client data couldn't be reached. Try again shortly.** | A client's data did not answer, so the week's real total is not known. Approving would lock a short total. | Wait until every client answers, then approve. |
| **This sheet has moved on since it was opened. Refresh to see where it stands.** | The week is no longer **Submitted**. It was recalled, approved, or returned by someone else. | Refresh the page. |

When a client has not answered while you are looking at the queue, the page
warns that time for that client is missing and that **Approving now would
approve a short total.**

## Reopen an approved week

Reopen a week when time in it has to change after it was approved, for
example an entry logged on the wrong day.

1. Open the approved week.
2. Select **Reopen**.
3. In **Reason**, say why. Reopening unlocks every entry in the week, and the
   reason is kept with the week.
4. Select **Reopen**.

The week becomes **Returned**, with your reason as its note, and its time can
be changed again. The technician fixes it and submits it again.

## Verify

- An approved week shows **Approved** and is gone from **Waiting for
  approval**.
- On the technician's week, a message says who approved it and when.
- Changing that technician's time in the week, on any ticket, is refused with
  **This week's timesheet is approved. Ask a manager to reopen it.**

## Next steps

- [Timesheet reference](/msp/timesheet-reference/)
- [Set up time categories and daily targets](/msp/timesheet-settings/)
