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

# Delete permanently

> Permanently delete an item from Trash in TimeTracker. Type the ready-to-copy name to confirm, and see why some records refuse to be destroyed.

Permanent deletion destroys a record. It is the only action in TimeTracker that cannot be undone, so it lives in one place – **Settings → Trash** – and it asks you to type the item's name before it will run.

<Warning>
  There is no recovery after a permanent delete. If you are not certain, restore the item and archive it instead.
</Warning>

## When it applies

**Delete permanently** appears only for items that are already in the Trash. You cannot skip the Trash.

The normal path is:

```
Active → Delete → Trash → Delete permanently → gone
```

You would use it when you need something gone now rather than at the end of the retention window – a duplicate client created by mistake, a test project, an old saved view.

## How to delete permanently

<Steps>
  <Step title="Open Settings → Trash">
    Under the **Data** group in the settings menu.
  </Step>

  <Step title="Find the item">
    Items are grouped by type. Use **Search by name** to narrow it down.
  </Step>

  <Step title="Click the bin icon on the row">
    It is labelled "Permanently delete", followed by the item's name.
  </Step>

  <Step title="Read what will be destroyed">
    The modal states exactly what goes, for this kind of item, and that it cannot be undone. If anything still points at the item, the modal lists it – "It is referenced by 412 time entries, 3 invoices."
  </Step>

  <Step title="Type the name to confirm">
    The item's name is shown in a small copy-ready chip with a copy button. Copy it, paste it into the field, and the **Delete permanently** button enables.
  </Step>

  <Step title="Confirm">
    Click **Delete permanently**. A toast confirms: "Permanently deleted."
  </Step>
</Steps>

## The typed confirmation

For irreversible actions, TimeTracker will not let a single click destroy anything.

* The name is displayed as a **ready-to-copy** string, with a copy-to-clipboard button.
* The confirm button stays disabled until what you type matches exactly.
* Extra spaces around a pasted value are ignored, so a paste that picks up a trailing space still works.

The same gate protects [deleting a workspace](/data/delete-a-workspace).

## What is destroyed

The modal tells you the truth for the item in front of you. Here it is in one table.

| Item                 | What permanent deletion destroys                                 |
| -------------------- | ---------------------------------------------------------------- |
| **Client**           | The client record. Its projects are kept but become unassigned.  |
| **Project**          | The project and every task, section and comment in it.           |
| **Section**          | The stage. Its tasks must be reassigned first.                   |
| **Task**             | The task, its subtasks, comments, attachments and dependencies.  |
| **Tag**              | The tag, removed from every task that carries it.                |
| **Group**            | The group. Its members are kept but no longer belong to a group. |
| **Role**             | The role. Members holding it must be reassigned first.           |
| **Expense category** | The category.                                                    |
| **Holiday**          | The holiday.                                                     |
| **Leave policy**     | The policy.                                                      |
| **Report**           | The saved report.                                                |
| **Scheduled report** | The schedule.                                                    |
| **Saved view**       | The saved view.                                                  |
| **Work schedule**    | The schedule. Members assigned to it must be reassigned first.   |
| **Time entry**       | The time entry.                                                  |
| **Expense**          | The expense and its receipt.                                     |

## Why a delete can be refused

Some records are protected. A system of record for time and money does not orphan an invoice line to make a delete succeed.

If something in the financial or historical record still points at the item, the delete is refused with the real numbers:

> This project still has 412 time entries, 3 invoices and cannot be permanently deleted. Archive it instead.

### What blocks a permanent delete

| Item             | Blocked by                       |
| ---------------- | -------------------------------- |
| Client           | Invoices                         |
| Project          | Time entries, invoices, expenses |
| Task             | Time entries                     |
| Expense category | Expenses                         |
| Leave policy     | Leave requests                   |

### What is reported but does **not** block

These are counted and shown in the modal so you know the stakes, then handled by the delete itself.

| Item    | Reported                                         |
| ------- | ------------------------------------------------ |
| Client  | Its projects (they become unassigned)            |
| Project | Its tasks (they go with it)                      |
| Section | Its tasks                                        |
| Group   | Its members (they keep working, without a group) |
| Role    | Its members (reassign them first)                |

<Tip>
  If a delete is refused, the right move is almost always to **archive** the item. Archiving hides it from every list and picker, keeps the financial record whole, and lasts forever.
</Tip>

## Automatic permanent deletion

You do not have to do this by hand. A nightly sweep permanently deletes items whose retention window has ended – 30 days by default, configurable from 7 to 90 at **Settings → Trash**.

The sweep follows the same rules. An item it cannot destroy is **kept** in the Trash, not force-deleted.

## Example

Tom created a duplicate client, **Bluebird Coffee (old)**, with nothing attached to it.

1. He deletes it. It moves to Trash.
2. He opens **Settings → Trash**, finds it under **Clients**, and clicks the bin icon.
3. The modal says: "The client record is destroyed. Its projects are kept but become unassigned. This cannot be undone."
4. He copies **Bluebird Coffee (old)** from the chip, pastes it, and confirms.

Now compare the real Bluebird Coffee, which has 3 invoices:

1. Tom tries the same thing.
2. The modal warns "It is referenced by **3 invoices**."
3. He confirms anyway, and the delete is refused: "this client still has 3 invoices and cannot be permanently deleted. Archive it instead."
4. He restores it and archives it instead. Bluebird leaves every picker, and the invoices stay whole.

## Permissions

Permanent deletion uses the same capability as deleting the item in the first place. See the table on [Trash and restore](/data/trash-and-restore#permissions).

Two extra rules apply to permanent deletion specifically:

* The app that owns the item must be **on**. If Expenses is switched off, you cannot permanently delete an expense. (Restoring is still allowed – recovery is never blocked by an app switch.)
* Deleting the whole workspace is a separate, owner-only action. See [Delete a workspace](/data/delete-a-workspace).

## What happens next

* The record is gone. It does not appear in the Trash, in reports, or anywhere else.
* Dependants handled by the delete go with it – a project's tasks, a tag's assignments.
* Records that were only *reported* stay: a deleted client's projects survive as unassigned.
* The action is written to the workspace audit trail.

## Common questions

<AccordionGroup>
  <Accordion title="Can I undo a permanent delete?">
    No. That is the definition of it. Restore and archive instead if you are unsure.
  </Accordion>

  <Accordion title="Why does it ask me to type the name?">
    Because the action cannot be undone. Typing a matching name is what stops a mis-click destroying a record.
  </Accordion>

  <Accordion title="Can I skip the Trash and destroy something immediately?">
    No. Everything goes through the Trash.
  </Accordion>

  <Accordion title="Why can I not delete a project with time on it?">
    Because those hours are part of your financial history. Archive the project instead.
  </Accordion>

  <Accordion title="What if I really need a project with hours gone?">
    Deal with the records that point at it first – for example void or remove the invoices and time entries – then the delete is allowed. Consider whether archiving does what you need.
  </Accordion>

  <Accordion title="Does permanent deletion clear my seat count?">
    No. Seats count people, not records. See [Seats](/billing/seats).
  </Accordion>

  <Accordion title="Is a permanent delete logged?">
    Yes. It is written to the audit trail, with who did it and when.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                                        | Cause                                                | Fix                                                     |
| -------------------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------------- |
| "still has 412 time entries and cannot be permanently deleted" | The financial record points at it                    | Archive it instead                                      |
| The confirm button will not enable                             | The typed name does not match                        | Use the copy button on the chip and paste it            |
| No bin icon on a Trash row                                     | You lack the capability for that item type           | Ask someone who holds it                                |
| "Couldn't permanently delete this item"                        | The owning app is switched off, or the action failed | Turn the app back on at **Settings → Apps**, then retry |
| An item sits in the Trash past its date                        | It is blocked from purging                           | Clear the references, or leave it – it is safe there    |

## Related guides

<CardGroup cols={2}>
  <Card title="Trash and restore" icon="trash-can-arrow-up" href="/data/trash-and-restore">
    Getting something back before this step.
  </Card>

  <Card title="Archive something" icon="box-archive" href="/data/archive-something">
    The safe alternative for finished work.
  </Card>

  <Card title="Delete a workspace" icon="triangle-exclamation" href="/data/delete-a-workspace">
    The one bigger irreversible action.
  </Card>

  <Card title="Your data" icon="database" href="/data/overview">
    All four states in one place.
  </Card>

  <Card title="Archive, trash and delete" icon="layer-group" href="/concepts/archive-trash-and-delete">
    The concept behind the system.
  </Card>

  <Card title="Export your data" icon="download" href="/data/export-your-data">
    Take a copy before you destroy anything.
  </Card>
</CardGroup>
