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

# Project reporting

> Report across every project in TimeTracker using the Projects source: budgets, costs, profit, margins and health, grouped by client, status or manager.

Two different questions, two different answers:

| Question                             | Where to look                                                 |
| ------------------------------------ | ------------------------------------------------------------- |
| "How is **this** project doing?"     | The project's [Overview tab](/projects/project-overview-page) |
| "How are **all** my projects doing?" | A report on the **Projects** source                           |

This page covers the second.

## The Projects report source

Go to **Reports → new report** and pick the **Projects** source.

> Project performance summaries, including budgets, costs, profit margins, and health status.

One row per project, not one row per time entry. That is why it can answer budget and margin questions that a time-entry report cannot.

<Warning>
  Budget, forecast and margin figures live on the **Projects** source. A report built on **Time entries** cannot compute them – it has no budget to compare against.
</Warning>

## Metrics

| Metric              | Meaning                          |
| ------------------- | -------------------------------- |
| **Budget**          | The project's budget amount      |
| **Actual cost**     | What the tracked time has cost   |
| **Billable value**  | What the tracked time is worth   |
| **Forecast margin** | Projected margin percentage      |
| **Project profit**  | Billable value minus actual cost |
| **Invoiced**        | What has been invoiced           |
| **Project count**   | How many projects match          |

## Dimensions

Group and pivot by:

| Dimension   | Use it for                                  |
| ----------- | ------------------------------------------- |
| **Project** | One row per project                         |
| **Client**  | Roll every project up under its client      |
| **Status**  | Compare Active against On hold or Completed |
| **Health**  | Split On track, At risk and Over budget     |

## Date basis

Projects can be dated three ways. Pick the one that matches your question.

| Basis          | Use it for                              |
| -------------- | --------------------------------------- |
| **Created**    | Projects started in a period            |
| **Start date** | Projects scheduled to begin in a period |
| **Due date**   | Projects due in a period                |

## Numeric filters

Filter on **Actual cost**, **Billable value**, **Budget**, **Forecast margin** or **Invoiced** – for example "forecast margin under 30%" to surface every project worth a conversation.

## How to build a project report

<Steps>
  <Step title="Open Reports">
    Click **Reports** in the sidebar.
  </Step>

  <Step title="Start a new report and choose the Projects source">
    The metric and dimension lists change to match.
  </Step>

  <Step title="Pick your metrics">
    For a margin review: Budget, Actual cost, Billable value, Project profit, Forecast margin.
  </Step>

  <Step title="Group by a dimension">
    Client for an account view, Health for a triage view.
  </Step>

  <Step title="Set the date basis and range">
    Created, Start date or Due date.
  </Step>

  <Step title="Add filters">
    Narrow to a status, a client, or a numeric threshold.
  </Step>

  <Step title="Save it">
    Saved reports are reusable and shareable.
  </Step>
</Steps>

Full guides at [/reports/build-a-report](/reports/build-a-report) and [/reports/report-sources](/reports/report-sources).

## Reporting on time inside projects

For "who worked how many hours on what", use the **Time entries** source instead, filtered by project or client. It carries member, project, client, billable, date and approval status.

| You want                               | Source       |
| -------------------------------------- | ------------ |
| Hours by person, by project            | Time entries |
| Billable vs non-billable hours         | Time entries |
| Budget burn and margin across projects | **Projects** |
| Task progress and remaining hours      | Tasks        |
| What has been invoiced                 | Invoices     |

## Rows you see

A report never shows you more than your role can reach. Rows are filtered by your **supervision scope**, so a project manager's project report covers their projects, and an owner's covers all of them.

Cost, forecast cost, forecast margin and project profit are additionally stripped for anyone without `time.viewCost` or `rate.viewCost` – server side, before the numbers are sent.

## Example

Maya wants the Monday margin review for Northwind Studio.

* **Source:** Projects
* **Metrics:** Budget, Actual cost, Billable value, Project profit, Forecast margin
* **Group by:** Client
* **Date basis:** Created, this year
* **Filter:** Status is Active

| Client           | Budget   | Actual cost | Billable value | Project profit | Forecast margin |
| ---------------- | -------- | ----------- | -------------- | -------------- | --------------- |
| Bluebird Coffee  | \$40,000 | \$11,070    | \$24,600       | \$13,530       | 55%             |
| Harbor Logistics | 600h     | \$18,540    | \$41,200       | \$22,660       | 48%             |

She adds a second view grouped by **Health** and filtered to `forecast margin < 40%`, so anything sliding shows up on one screen. She saves it as "Monday margin review" and schedules it to arrive by email every Monday at 08:00.

## Permissions

| Action                              | Capability                         |
| ----------------------------------- | ---------------------------------- |
| View a report                       | `report.view`                      |
| Build one                           | `report.create`                    |
| Edit a saved report                 | `report.edit`                      |
| Share one                           | `report.share`                     |
| Schedule one                        | `report.schedule`                  |
| Export one                          | `report.export`                    |
| See cost, profit and margin columns | `time.viewCost` or `rate.viewCost` |

Contractors cannot build reports by default. See [/reports/report-permissions](/reports/report-permissions).

## App and plan gating

The **Reports** app is on every plan – it has no plan feature of its own. What the plan tiers is the **depth**.

| Capability             | Plan    |
| ---------------------- | ------- |
| Viewing reports        | Free    |
| Custom report building | **Pro** |
| Scheduled reports      | **Pro** |
| Exporting to a file    | **Pro** |

Free is "record your work". Pro is "resolve it" – which includes taking it out of the product as a file. See [/concepts/plans-and-features](/concepts/plans-and-features).

## Common questions

<AccordionGroup>
  <Accordion title="Why can I not add a budget column to my time report?">
    Because a time entry has no budget. Budget, forecast and margin belong to the **Projects** source. Build a second report there.
  </Accordion>

  <Accordion title="Why is my project missing from the report?">
    Your supervision scope does not reach it, or it falls outside the date basis and range you chose. Try **Created** with a wider range.
  </Accordion>

  <Accordion title="Do archived projects appear?">
    Archiving keeps a project reportable. Trashed projects are hidden everywhere.
  </Accordion>

  <Accordion title="Why is the cost column missing?">
    You lack cost visibility. The figures are removed before the report is sent.
  </Accordion>

  <Accordion title="Can I report on tasks inside a project?">
    Yes – use the **Tasks** source for estimate, tracked and remaining hours.
  </Accordion>

  <Accordion title="Can I email this to a client?">
    Share and schedule are internal features. Clients see their own view through the portal – see [/portal/what-clients-can-see](/portal/what-clients-can-see).
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                        | Cause                                             | Fix                                                      |
| ------------------------------ | ------------------------------------------------- | -------------------------------------------------------- |
| A metric is greyed out         | It is not available on the chosen source          | Switch to the **Projects** source                        |
| Empty report                   | Filters too narrow, or your scope reaches nothing | Widen the date range, then check your role               |
| Numbers disagree with Overview | Different date basis, or pending time excluded    | Match the basis and check approvals                      |
| Export does nothing            | Exporting is a Pro feature                        | See [/reports/export-a-report](/reports/export-a-report) |
| Cannot save the report         | You lack `report.create`                          | Ask an admin                                             |

## Related guides

<CardGroup cols={2}>
  <Card title="Report sources" icon="database" href="/reports/report-sources">
    Every source and what it can answer.
  </Card>

  <Card title="Build a report" icon="table" href="/reports/build-a-report">
    The step-by-step builder guide.
  </Card>

  <Card title="Metrics reference" icon="list" href="/reports/metrics-reference">
    What each metric means.
  </Card>

  <Card title="Project profitability" icon="chart-line" href="/projects/project-profitability">
    The same figures, one project at a time.
  </Card>

  <Card title="Schedule a report" icon="clock" href="/reports/schedule-a-report">
    Get it in your inbox.
  </Card>

  <Card title="Project visibility" icon="eye" href="/projects/project-visibility">
    Why rows are filtered.
  </Card>
</CardGroup>
