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

> The three project settings sections in TimeTracker – General, Group and Finance – and every field, control and save button inside each one.

Project settings is the **Settings** tab inside a project. It has three sections, each with its own data and its own save button.

| Section     | Owns                                                             | Capability                               |
| ----------- | ---------------------------------------------------------------- | ---------------------------------------- |
| **General** | Identity – icon, name, key, client, status, manager, dates, tags | `project.manage`                         |
| **Group**   | The member roster, with rates and row actions                    | `project.manage`, plus rate capabilities |
| **Finance** | Billing method and budget                                        | `project.manage` and `budget.manage`     |

The section you are on lives in the URL, so a link to one section keeps working after a refresh or a back navigation.

<Note>
  Each section saves independently on purpose. A shared save button would make someone who can edit the project but not its budget issue a budget write on every save.
</Note>

## General

Open **Settings → General**.

### Project icon

Icon changes apply **immediately** – they do not wait for **Save changes**.

| Control                 | What it does                                        |
| ----------------------- | --------------------------------------------------- |
| **Upload** / **Change** | Pick an image. PNG, JPG, GIF or WebP, under 5 MB.   |
| **Regenerate**          | Replace it with a fresh generated pattern.          |
| **Remove**              | Drop the uploaded icon. Only shown when one exists. |

Each action toasts **"Project icon updated."** or **"Project icon removed."**

### The fields

| Field                         | Notes                                                                                                                                              |
| ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Project name**              | 1 to 200 characters.                                                                                                                               |
| **Project key**               | 2 to 5 letters, A to Z. Unique across the workspace. Changing it prefixes **new** task numbers only – existing task ids keep their current prefix. |
| **Client (optional)**         | Pick a client or **No client**. Changing this re-derives portal access straight away.                                                              |
| **Status**                    | Draft, Planned, Active, On hold, Waiting on client, Completed, Cancelled or Archived.                                                              |
| **Project manager**           | One member, or **No manager**.                                                                                                                     |
| **Start date** / **Due date** | Two independent date pickers. Either can be set alone.                                                                                             |
| **Tags**                      | Comma separated, for example `web, retainer`.                                                                                                      |

Click **Save changes**. You see **"Project updated."**

### Status is more than a label

Selecting **Archived** here does the same thing as **Actions → Archive** – it retires the project through the lifecycle, hides it from lists, and notifies the project's members.

Selecting any real status on an archived project brings it back to active. The picker is a genuine round trip.

<Warning>
  Changing a project's **Client** immediately grants portal access to the new client's contacts and revokes it from the old client's. See [/clients/client-projects](/clients/client-projects).
</Warning>

### What the General form does not touch

Billing method and the member list are deliberately absent – they belong to Finance and Group. Saving General never overwrites what another section changed.

## Group

Open **Settings → Group**. This is the project's roster as a table.

Removing someone here affects **this project only**. Their workspace account is untouched.

### Columns

| Column           | Shown when                                                      |
| ---------------- | --------------------------------------------------------------- |
| **Member**       | Always – avatar, name and email                                 |
| **Job title**    | Always. A dash when unknown.                                    |
| **Role**         | Always – their workspace role                                   |
| **Default rate** | You hold `rate.viewBilling` – their workspace billing rate      |
| **Cost**         | You hold `rate.viewCost` – their workspace cost rate, read only |
| **Project rate** | You hold `rate.viewBilling` – this project's billing override   |

<Note>
  The **Cost** column is omitted entirely – header and cells – for anyone without cost visibility. It is not blanked out. The figures were never sent.
</Note>

### Row actions

* **X** at the end of a row removes that person from the project. A confirmation modal explains: *"They lose access to this project's tasks and can no longer log time against it. Time they already tracked is kept, and you can add them back at any time."*
* The **Project rate** cell is an inline editor. Click it, type a rate, press Enter or click **Save**. Press Escape to cancel.

### Add member

**Add member** opens a search popover listing workspace members who are not yet on the project. Click someone to add them.

| Message                                | Meaning                    |
| -------------------------------------- | -------------------------- |
| "Everyone is already on this project." | No candidates left         |
| "No matching members."                 | Your search matched nobody |
| "No one is on this project yet."       | The roster is empty        |

Full detail at [/projects/project-members](/projects/project-members).

## Finance

Open **Settings → Finance**. Two cards, two save buttons.

### Billing method

| Method           | Meaning                                                             |
| ---------------- | ------------------------------------------------------------------- |
| **Hourly**       | Billed by the hour                                                  |
| **Fixed fee**    | One agreed price                                                    |
| **Retainer**     | Recurring. The only method that unlocks a monthly resetting budget. |
| **Milestone**    | Billed at agreed milestones                                         |
| **Non-billable** | Not charged                                                         |

Change it and click **Save billing method**. You see **"Billing method updated."** The button stays disabled until the value actually changes.

### Budget

The **Budget** card only appears when **both** are true:

1. The **Budgets & profitability** app is switched on.
2. You hold `budget.manage`.

Without the capability the card is hidden, not disabled – a project manager may legitimately run a project without seeing its money.

| Field                                    | Notes                                                                                    |
| ---------------------------------------- | ---------------------------------------------------------------------------------------- |
| **Budget type**                          | **Total hours** or **Total money**.                                                      |
| **Total hours** / **Total amount (CUR)** | The figure. Money uses the workspace base currency.                                      |
| **Resets**                               | **One-time** or **Monthly**. Only shown when the saved billing method is **Retainer**.   |
| **Alert if margin falls below**          | A percentage from 0 to 100. Blank skips margin-floor alerts.                             |
| **Task & section caps**                  | A read-only list, when any exist. Caps are informational and are set on the task itself. |

Click **Set budget** or **Save budget**. You see **"Budget saved."**

Full detail at [/projects/project-budget](/projects/project-budget) and [/budgets/set-a-project-budget](/budgets/set-a-project-budget).

## Example

Priya opens **Website Redesign → Settings**.

1. **General** – she moves **Status** from `Draft` to `Active` and sets the **Due date**, then clicks **Save changes**.
2. **Group** – she adds Ana Ferreira, then sets Ana's **Project rate** to `70` because this client negotiated a discount on copywriting.
3. **Finance** – billing method is already `Fixed fee`. She sets **Budget type** to `Total money`, **Total amount** to `40000`, and **Alert if margin falls below** to `35`, then clicks **Set budget**.

Overview now shows a budget bar, a forecast and a health chip.

## Permissions

| Section                                   | You need           |
| ----------------------------------------- | ------------------ |
| Open Settings at all                      | `project.manage`   |
| General – any field                       | `project.manage`   |
| Group – add or remove a member            | `project.manage`   |
| Group – see Default rate and Project rate | `rate.viewBilling` |
| Group – see Cost                          | `rate.viewCost`    |
| Group – edit Project rate                 | `rate.manage`      |
| Finance – billing method                  | `project.manage`   |
| Finance – budget                          | `budget.manage`    |

## Common questions

<AccordionGroup>
  <Accordion title="Why are there three save buttons?">
    Because the three sections need different permissions. Splitting the saves means someone who can edit the project but not its budget cannot accidentally issue a budget write.
  </Accordion>

  <Accordion title="Does renaming the project key renumber existing tasks?">
    No. Existing task ids keep their prefix. Only tasks created after the change get the new one.
  </Accordion>

  <Accordion title="Why is there no Budget card?">
    Either the Budgets & profitability app is off, or you lack `budget.manage`, or your plan does not include budgets.
  </Accordion>

  <Accordion title="Why is Resets missing?">
    The **Resets** control only appears for a **Retainer** billing method, and it reads the saved value. Change the method, save it, then reopen the budget card.
  </Accordion>

  <Accordion title="Can I edit settings on an archived project?">
    Yes. An archived project still opens, marked with a banner. Restore it when you are ready to work on it again.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                                                                          | Cause                                                        | Fix                                           |
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------ | --------------------------------------------- |
| "We couldn't save these changes. You may lack permission, or the project key is already in use." | A duplicate key or a missing capability                      | Change the key, or check your role            |
| The **Settings** tab shows a "gone" message                                                      | The project was permanently deleted, or is out of your reach | Go back to **Projects**                       |
| No **Cost** column                                                                               | You lack `rate.viewCost`                                     | Ask an admin                                  |
| The billing method **Save** button is greyed out                                                 | The value has not changed                                    | Pick a different method                       |
| Budget will not save                                                                             | Blank amount, or the Budgets app is off                      | Enter a figure, and check **Settings → Apps** |
| "A margin floor is a percentage from 0 to 100."                                                  | Out of range                                                 | Enter 0 to 100, or leave it blank             |

## Related guides

<CardGroup cols={2}>
  <Card title="Project members" icon="users" href="/projects/project-members">
    The Group section in full.
  </Card>

  <Card title="Project budget" icon="target" href="/projects/project-budget">
    The Finance section in full.
  </Card>

  <Card title="Project rates" icon="dollar-sign" href="/projects/project-rates">
    Rate overrides per person.
  </Card>

  <Card title="Project sections" icon="columns" href="/projects/project-sections">
    Configure the workflow stages.
  </Card>

  <Card title="Archive a project" icon="archive" href="/projects/archive-a-project">
    What the Archived status does.
  </Card>

  <Card title="Project permissions" icon="lock" href="/projects/project-permissions">
    Who can change what.
  </Card>
</CardGroup>
