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

> Why you see some projects and not others in TimeTracker. Project reach follows supervision scope, and clients and tasks follow project reach.

Project visibility is not a per-project setting. It is derived from your role's **supervision scope**.

## The rule

> A role scoped to **Everything in the workspace** sees every project.
> Every narrower scope sees only the projects it **manages** or is **staffed on**.

That is the whole rule. There is no "private project" toggle and no per-project share list for internal staff.

## What counts as staffed on

You can see a project when **any** of these is true:

| Condition                                            | Explanation                   |
| ---------------------------------------------------- | ----------------------------- |
| Your role's scope is **Everything in the workspace** | No filter applies at all      |
| You are the project's **manager**                    | Set in **Settings → General** |
| You are in the project's **member list**             | Set in **Settings → Group**   |

Nothing else grants reach. Being in a group does not. Being assigned a task in the project does not, unless you are also on the roster.

## The five supervision scopes

Set on the role, at **Settings → Roles**.

| Scope                                                | People it reaches        | Projects it reaches            |
| ---------------------------------------------------- | ------------------------ | ------------------------------ |
| Their projects, and only their own data              | Only themselves          | Projects they manage or are on |
| Their projects, and people on them                   | People sharing a project | Projects they manage or are on |
| Their projects, and people in their group            | People in the same group | Projects they manage or are on |
| Their projects, and people on them or in their group | Both of the above        | Projects they manage or are on |
| **Everything in the workspace**                      | Everyone                 | **Every project**              |

<Note>
  Only the widest scope changes project reach. The three middle scopes differ in **people** reach – a group is not a project – but all of them limit projects to "yours".
</Note>

Full detail at [/concepts/supervision-scope](/concepts/supervision-scope).

## Default scope per role

| Role                | Seeded scope                                     | Projects seen                  |
| ------------------- | ------------------------------------------------ | ------------------------------ |
| **Owner**           | Everything in the workspace                      | All                            |
| **Admin**           | Everything in the workspace                      | All                            |
| **Finance**         | Everything in the workspace                      | All                            |
| **Project Manager** | Their projects, and people on them               | Their own                      |
| **Member**          | Their projects, and only their own data          | Their own                      |
| **Contractor**      | Their projects, and only their own data          | Their own                      |
| **Client**          | Their projects, and only their own data (pinned) | Only what is explicitly shared |

Owner is pinned to workspace scope and cannot be narrowed – an owner who could be scoped down could lock themselves out. Client is pinned to the narrowest scope, because the portal firewall depends on it.

## Capability is not scope

Two different questions, both of which must be answered yes.

| Question                              | Answered by                                                 |
| ------------------------------------- | ----------------------------------------------------------- |
| **May** you do this?                  | A capability, such as `project.manage` or `time.viewOthers` |
| **To whom** or **to which projects**? | Your supervision scope                                      |

A project manager holding `time.viewOthers` still only sees the timesheets of people in their scope. Widening a role's scope to see all projects does **not** by itself grant any new power – the capability still has to be there.

## What follows project reach

Project reach is the spine. Three other things derive from it.

| Thing               | Rule                                                                             |
| ------------------- | -------------------------------------------------------------------------------- |
| **Clients**         | You see a client when you can see at least one of their projects                 |
| **Tasks**           | You see tasks in projects you can reach                                          |
| **Project pickers** | Every picker – time entry, planner, reports – offers only projects you can reach |

<Tip>
  This is why there is no separate client visibility setting. One rule, applied once, means the two can never disagree and leave someone able to see every client but none of their projects.
</Tip>

## What happens when reach changes

| Change                                      | Effect                                              |
| ------------------------------------------- | --------------------------------------------------- |
| You are added to a project                  | The project appears in your list on the next update |
| You are removed from a project              | It disappears. Nothing crashes – it reads as gone.  |
| Your role's scope is widened                | More projects appear                                |
| Your role's scope is narrowed               | Projects drop out                                   |
| A direct link to a project you cannot reach | Behaves exactly like a project that does not exist  |

<Note>
  A project outside your reach is deliberately indistinguishable from a deleted one. That is what stops a stray link being used to probe what exists.
</Note>

## Example

Northwind Studio, four projects.

| Person        | Role            | Scope          | Projects they see                                                 |
| ------------- | --------------- | -------------- | ----------------------------------------------------------------- |
| Maya Ellis    | Owner           | Workspace      | All four                                                          |
| Tom Whitfield | Admin           | Workspace      | All four                                                          |
| Daniel Okafor | Finance         | Workspace      | All four                                                          |
| Priya Raman   | Project Manager | Their projects | Website Redesign, Monthly Retainer, Mobile App – she manages them |
| Sarah Lin     | Member          | Their projects | Website Redesign only                                             |
| Jonas Bergman | Member          | Their projects | Mobile App only                                                   |
| Ana Ferreira  | Contractor      | Their projects | Website Redesign only                                             |
| Ruth Castillo | Client          | Pinned narrow  | Only the Bluebird projects ticked for her in the portal           |

Nobody is staffed on **Brand Refresh** except Tom, so Priya cannot see it – or Fenwick Legal, its client.

When Priya adds Jonas to Website Redesign, Jonas's list grows to two projects on his next screen update.

## Client portal contacts are different

A portal contact is not scoped like staff. They see a project only when it is **explicitly ticked** for them on their client's page, and only projects belonging to their own client company.

See [/portal/what-clients-can-see](/portal/what-clients-can-see).

## Where money adds a second gate

Even inside a project you can see, some figures are held back.

| Figure                                             | Requires                           |
| -------------------------------------------------- | ---------------------------------- |
| Cost, forecast cost, forecast margin, gross profit | `time.viewCost` or `rate.viewCost` |
| Billing rates on the roster                        | `rate.viewBilling`                 |
| A **money** budget's figures                       | `time.viewCost` or `rate.viewCost` |
| An **hours** budget's figures                      | Nothing extra                      |

These figures are omitted before they leave the server, not hidden in your browser.

## Permissions

| Action                 | Governed by                          |
| ---------------------- | ------------------------------------ |
| Reach a project at all | Supervision scope                    |
| Edit it                | `project.manage`                     |
| See its budget figures | `budget.manage` plus cost visibility |
| Widen a role's scope   | `role.manage`                        |

## Common questions

<AccordionGroup>
  <Accordion title="Can I make one project private?">
    Effectively yes – keep the roster small. Anyone at workspace scope still sees it, because that scope means the whole workspace by definition.
  </Accordion>

  <Accordion title="Can I give someone all projects without giving them all people?">
    Not with one role. Scope governs both halves on purpose. A second setting would drift the first time somebody edited one and not the other. Build a second role if you genuinely need a different split.
  </Accordion>

  <Accordion title="Why can a project manager see projects they do not manage?">
    Because they are on the member list, or because the role's scope was widened to the whole workspace.
  </Accordion>

  <Accordion title="Does assigning a task grant access to the project?">
    No. Add the person to the project roster.
  </Accordion>

  <Accordion title="Why did a client disappear from my list?">
    You lost reach to their last visible project – it was archived, deleted, or you were removed from it.
  </Accordion>

  <Accordion title="Does an archived project still count for reach?">
    An archived project is hidden from the active list for everyone. Switch the list to **Archived** or **All** to see it, as long as it is within your reach.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                        | Cause                                          | Fix                                                                                     |
| ---------------------------------------------- | ---------------------------------------------- | --------------------------------------------------------------------------------------- |
| The projects list is empty                     | Your scope reaches no project                  | Get added to a project, or ask an admin to widen your role                              |
| A link says the project is gone                | It is out of reach, or was permanently deleted | Ask to be added to it                                                                   |
| A teammate cannot see a project you can        | They are not on its roster                     | Add them in **Settings → Group**                                                        |
| Someone sees more than expected                | Their role is at workspace scope               | Narrow the role at **Settings → Roles**                                                 |
| A new project vanished right after creating it | It had no manager and no members               | Whoever creates a project becomes its manager by default – check **Settings → General** |

## Related guides

<CardGroup cols={2}>
  <Card title="Supervision scope" icon="eye" href="/concepts/supervision-scope">
    The canonical explanation.
  </Card>

  <Card title="Roles and capabilities" icon="shield" href="/concepts/roles-and-capabilities">
    The "may you" half.
  </Card>

  <Card title="Project members" icon="users" href="/projects/project-members">
    How to grant reach.
  </Card>

  <Card title="Custom roles" icon="user-cog" href="/team/custom-roles">
    Build a role with the right scope.
  </Card>

  <Card title="What clients can see" icon="lock" href="/portal/what-clients-can-see">
    The portal's separate rule.
  </Card>

  <Card title="Project permissions" icon="folder-lock" href="/projects/project-permissions">
    What you can do once you can see it.
  </Card>
</CardGroup>
