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

# Saved reports

> Manage the report library – open, rename, duplicate, archive and restore saved reports, and understand personal versus shared visibility.

A saved report is a question you keep. It lives in the report library, runs live every time it is opened, and can be renamed, copied, shared, scheduled, exported or retired.

## What is a saved report?

A saved report stores the shape of a question – source, period, columns, filters, layout, grouping, sorting and totals. It never stores numbers.

Every saved report has:

| Property            | What it is                                            |
| ------------------- | ----------------------------------------------------- |
| **Name**            | What people see in the library                        |
| **Owner**           | Whoever created it                                    |
| **Visibility**      | **Personal** (only you) or **Shared** (the workspace) |
| **Data source**     | Which kind of record it reads                         |
| **Lifecycle state** | Active, Archived or in the Trash                      |

## The report library

Go to **Reports**. The library lists every report you may see: all shared reports, plus your own personal ones. Another person's personal report is never listed.

| Column          | Shows                                                                                                |
| --------------- | ---------------------------------------------------------------------------------------------------- |
| **Name**        | The report name, plus a **Template** chip on starter reports and a lifecycle chip when it is retired |
| **Visibility**  | **Shared** or **Personal**                                                                           |
| **Data source** | Time entries, Expenses, Invoices, Projects, Tasks, Timesheets, Time off or Timecard                  |
| **Owner**       | The creator's name. Your own reports read **You**.                                                   |
| **Updated**     | When it was last saved                                                                               |

Click a row to open the report. Sorting defaults to most recently updated first.

### Controls

<Steps>
  <Step title="Search">
    The search box matches what you can read on screen – name, visibility, source, owner and the shown date.
  </Step>

  <Step title="Visibility filter">
    A dropdown with **All reports**, **Personal** and **Shared**.
  </Step>

  <Step title="Lifecycle filter">
    A second dropdown switching between Active, Archived, Trash and All. It defaults to Active, so retired reports stay out of the way.
  </Step>

  <Step title="New report">
    Opens the blank builder. Only shown if you can create reports.
  </Step>

  <Step title="Rows per page">
    The footer pages through the list and shows the row count.
  </Step>
</Steps>

### Row actions

Three controls sit at the end of a row, and only on reports you may curate:

| Control        | What it does                                         |
| -------------- | ---------------------------------------------------- |
| Pencil         | Opens the **Rename report** dialog                   |
| Copy icon      | Duplicates the report as `<name> (copy)`             |
| Three-dot menu | The lifecycle menu – archive, restore, trash, delete |

Clicking one of these never opens the report. Clicking anywhere else in the row does.

### Empty states

* No reports at all: **"No reports yet."** with **"Build your first report to see time, budget, and profitability across your work."** and a **New report** button if you can create one.
* Nothing matches the current search or filter: **"No reports match your search or filter."**

## Opening a report

What you see when you open a report depends on whether you can edit it.

| You can edit it | You see                                                                                                            |
| --------------- | ------------------------------------------------------------------------------------------------------------------ |
| Yes             | The **builder** – the config panel plus a live preview, with **Save changes** and **Save as new report**           |
| No              | The **viewer** – a read-only table with the export menu, a context strip, and temporary period and filter controls |

### The viewer

The viewer shows the report's name as the page title and an **Actions** menu for export and print. Under it sits a context strip so you always know what you are reading:

| Field                            | Shows                                       |
| -------------------------------- | ------------------------------------------- |
| The source label and description | What the table counts                       |
| **Date range**                   | The resolved window                         |
| **Grouped by**                   | The grouping order, or **None**             |
| **Sorted by**                    | The sort order, or **None**                 |
| **Filters**                      | How many conditions are active, or **None** |

Below that are a **Period** control and a **Filters** control. Both are temporary. Change either and a banner appears:

> **Temporary preview**
> You're previewing with temporary filters. They won't change this saved report.

**Reset** clears them. **Save as new report** turns them into a new report, if you can create reports.

## Renaming a report

<Steps>
  <Step title="Click the pencil">
    On the report's row in the library, click the rename pencil.
  </Step>

  <Step title="Type a new name">
    The **Rename report** dialog opens with a single **Name** field.
  </Step>

  <Step title="Save">
    Click **Rename report**, or press Enter. The button is disabled until the name changes and is not blank.
  </Step>
</Steps>

You can also rename inside the builder. Click the pencil beside the name in the toolbar, type, and press Enter. That change is part of the draft, so it takes effect when you save.

## Duplicating a report

Click the copy icon on a row. The copy is created straight away as `<name> (copy)` and a toast confirms: **"Report duplicated."**

Use a duplicate when you want a variant – the same question for a different client, or a monthly version of a weekly report – without touching the original.

<Tip>
  You can also duplicate from inside a report. Open it, change what you want, then click **Save as new report**. TimeTracker asks for a name and leaves the original alone.
</Tip>

## Archiving and restoring

Reports use the same Archive and Trash system as the rest of TimeTracker.

| State        | What it means                                                     |
| ------------ | ----------------------------------------------------------------- |
| **Active**   | Live and listed by default                                        |
| **Archived** | Hidden from the default list, still openable and still reportable |
| **Trash**    | Staged for deletion, restorable                                   |

Use the three-dot menu on a row to move a report between states, then the lifecycle dropdown above the table to see retired ones.

An archived report still opens from a direct link, read-only. Restoring it makes it active again.

<Note>
  Archiving is not deleting. See [/data/archive-something](/data/archive-something) and [/data/trash-and-restore](/data/trash-and-restore).
</Note>

## Personal versus shared

|                         | Personal                | Shared                      |
| ----------------------- | ----------------------- | --------------------------- |
| Who can see it          | Only you                | Everyone with report access |
| Who can edit it         | You, with `report.edit` | Anyone with `report.manage` |
| Shown in the library to | You                     | Everyone                    |
| Can be scheduled        | Yes                     | Yes                         |

A shared report is workspace property. Its author does not keep exclusive rights over it – editing one needs `report.manage`, regardless of who made it. See [/reports/share-a-report](/reports/share-a-report).

## When a saved report needs repair

Fields change over time. If a saved report names something that no longer exists, TimeTracker repairs it when the report is opened and tells the editor:

> **This report was updated to match the current fields.**

Underneath is a list of exactly what changed, and: **"Save the report to keep these changes."**

Nothing is written until you save. Read-only viewers never see this notice, because there is nothing they could do about it.

## Example

Northwind Studio's library after a few weeks:

| Name                    | Visibility | Source       | Owner       |
| ----------------------- | ---------- | ------------ | ----------- |
| Time detail             | Shared     | Time entries | Maya Ellis  |
| Hours by project        | Shared     | Time entries | Maya Ellis  |
| Unbilled work           | Shared     | Time entries | Maya Ellis  |
| Budget vs actual        | Shared     | Projects     | Maya Ellis  |
| Unpaid invoices         | Shared     | Invoices     | Maya Ellis  |
| Bluebird hours – weekly | Shared     | Time entries | Priya Raman |
| My hours this month     | Personal   | Time entries | You         |

Priya duplicated **Hours by project**, filtered it to Bluebird Coffee, renamed it, and shared it. Sarah Lin built a personal report for her own hours – nobody else sees it in their library.

## Permissions

| Action                                      | Capability                        |
| ------------------------------------------- | --------------------------------- |
| See the library and open a report           | `report.view`                     |
| Create or duplicate a report                | `report.create`                   |
| Rename or edit a **personal** report        | `report.edit` plus ownership      |
| Rename, edit or archive a **shared** report | `report.manage`                   |
| Archive or restore a personal report        | `report.edit` plus ownership      |
| Make a report shared                        | `report.share` or `report.manage` |

Ownership alone is never enough. A personal report needs both ownership and `report.edit`. Archiving uses the same rule as editing, because archiving is the destructive end of the same right.

Saving any report – new or edited – also needs a Pro plan. See [/concepts/plans-and-features](/concepts/plans-and-features).

## What happens next

From a saved report you can:

* Share it with the workspace – [/reports/share-a-report](/reports/share-a-report)
* Have it emailed on a cadence – [/reports/schedule-a-report](/reports/schedule-a-report)
* Download it – [/reports/export-a-report](/reports/export-a-report)

## Common questions

<AccordionGroup>
  <Accordion title="Why do I see a builder and my colleague sees a read-only table?">
    You can edit that report and they cannot. A shared report needs `report.manage` to edit; a personal one needs ownership plus `report.edit`.
  </Accordion>

  <Accordion title="Can I edit someone else's personal report?">
    You cannot even see it. Personal reports are listed only for their owner.
  </Accordion>

  <Accordion title="What happens to a shared report if its author leaves?">
    Nothing. A shared report belongs to the workspace, and anyone with `report.manage` can keep editing it.
  </Accordion>

  <Accordion title="Does archiving a report break a schedule that uses it?">
    The schedule stays, but a schedule whose report can no longer be found sends nothing. Point the schedule at a live report.
  </Accordion>

  <Accordion title="Can I recover a deleted report?">
    A trashed report can be restored from the Trash view. Permanent deletion cannot be undone. See [/data/delete-permanently](/data/delete-permanently).
  </Accordion>

  <Accordion title="Why does the library not show any numbers?">
    On purpose. The library is a list of questions, not answers, so no financial value is ever rendered there.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                     | Fix                                                                                       |
| ------------------------------------------- | ----------------------------------------------------------------------------------------- |
| **"Couldn't load this report."**            | The report was removed, or you do not have access. Go back to the library.                |
| Rename or duplicate icons are missing       | You cannot curate that report. You need ownership plus `report.edit`, or `report.manage`. |
| **New report** is not shown                 | Your role lacks `report.create`                                                           |
| Duplicating fails with a permission message | The server re-checks every write. You need `report.create`.                               |
| An archived report is missing from the list | Switch the lifecycle dropdown to **Archived** or **All**                                  |

## Related guides

<CardGroup cols={2}>
  <Card title="Build a report" icon="wrench" href="/reports/build-a-report">
    Create the report you are saving.
  </Card>

  <Card title="Share a report" icon="share" href="/reports/share-a-report">
    Personal versus shared, and share links.
  </Card>

  <Card title="Report templates" icon="sparkles" href="/reports/report-templates">
    The five starter reports.
  </Card>

  <Card title="Report permissions" icon="lock" href="/reports/report-permissions">
    Who can edit and archive what.
  </Card>

  <Card title="Archive something" icon="box-archive" href="/data/archive-something">
    How archiving works across TimeTracker.
  </Card>
</CardGroup>
