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

# Setup for an agency

> How a 10 to 50 person agency sets up TimeTracker: delivery and finance roles, groups, client budgets, weekly approvals and a client portal.

An agency has many clients, several people on each, and someone who has to know whether the work is still profitable.

This is the setup Northwind Studio uses. It is built around one idea: **delivery and money are two jobs, and they belong to two different people.**

<Info>
  **The example:** Northwind Studio, 12 people, roughly 8 active clients. Maya Ellis (Owner) sets it up.
</Info>

## Before you start

<Warning>
  **Plan requirement.** An agency setup needs **Pro**. Approvals, budgets, invoicing, the client portal and exports are all Pro, and an agency uses every one of them. Free stops at 3 people. See [Free vs Pro](/billing/free-vs-pro).
</Warning>

## The role split

The single most useful decision an agency makes in TimeTracker is separating Project Manager from Finance.

| Role                | Owns                                         | Does not own                         |
| ------------------- | -------------------------------------------- | ------------------------------------ |
| **Project Manager** | Clients, projects, tasks, approvals, budgets | Sending invoices, recording payments |
| **Finance**         | Invoices, payments, expenses, exports        | Delivery, tasks, project setup       |

They are siblings, not ranked. Priya approves the hours. Daniel bills them. Neither one can quietly do the other's job, which is exactly the control you want when hours turn into money.

| Person                   | Role            |
| ------------------------ | --------------- |
| Maya Ellis               | Owner           |
| Tom Whitfield            | Admin           |
| Priya Raman              | Project Manager |
| Daniel Okafor            | Finance         |
| Sarah Lin, Jonas Bergman | Member          |
| Ana Ferreira             | Contractor      |
| Ruth Castillo            | Client          |

→ [Roles and capabilities](/concepts/roles-and-capabilities) · [Roles and permissions matrix](/reference/roles-and-permissions-matrix)

## Set it up

<Steps>
  <Step title="Maya sets the workspace basics">
    Name, URL slug, base currency (USD for Northwind) and timezone.

    → [Create a workspace](/getting-started/create-a-workspace) · [General settings](/settings/general)
  </Step>

  <Step title="Maya turns off what an agency does not need">
    Leave on: Projects & tasks, Time tracking, Timesheets, Reports, Work schedules, Time off, Resource planner, Invoices, Expenses, Budgets, Client portal, Calendar.

    Turn off: **Time Clock** and **Location rules**. An agency measures project hours, not presence at a desk. Both are off by default anyway.

    → [Apps settings](/settings/apps) · [Apps and modules](/concepts/apps-and-modules)
  </Step>

  <Step title="Maya invites the team with the right role first time">
    Give people the role they need, not the role that is easiest. A Member who is given Admin because "it was quicker" can change everyone's rates.

    → [Invite a member](/team/invite-a-member) · [Change someone's role](/team/change-someones-role)
  </Step>

  <Step title="Tom builds groups that match your disciplines">
    Northwind has three: **Design**, **Engineering**, **Delivery**.

    Groups do two jobs. They make assigning people quick, and they feed supervision scope, which decides whose timesheets a manager can see. Priya supervises Delivery, and that is what puts Sarah's and Jonas's weeks in her approval queue.

    → [Groups](/team/groups) · [Supervision scope](/concepts/supervision-scope)

    <Note>
      A capability says you **may** approve time. Supervision scope says **whose** time. Priya needs both.
    </Note>
  </Step>

  <Step title="Maya sets a billable and a cost rate for every person">
    An agency without cost rates can see revenue and cannot see profit.

    | Person        | Billable | Cost | Margin |
    | ------------- | -------- | ---- | ------ |
    | Sarah Lin     | \$100    | \$45 | 55%    |
    | Jonas Bergman | \$120    | \$60 | 50%    |
    | Ana Ferreira  | \$80     | \$55 | 31.3%  |

    → [Set a person rate](/rates/set-a-person-rate) · [Cost rates](/rates/cost-rates)

    <Tip>
      If one client has negotiated a different price list, set the rate at the client level instead of overriding it per project. The most specific rate wins: task, then project member, then person, then client, then workspace. See [How rates are chosen](/rates/how-rates-are-chosen).
    </Tip>
  </Step>

  <Step title="Priya creates the clients, then the projects under them">
    One client, many projects. Keep every distinct engagement as its own project so you can tell them apart.

    | Client           | Project          | Budget            |
    | ---------------- | ---------------- | ----------------- |
    | Bluebird Coffee  | Website Redesign | \$40,000 money    |
    | Bluebird Coffee  | Monthly Retainer | 40 hours, monthly |
    | Harbor Logistics | Mobile App       | 600 hours         |
    | Fenwick Legal    | Brand Refresh    | None              |

    → [Create a client](/clients/create-a-client) · [Create a project](/projects/create-a-project)
  </Step>

  <Step title="Priya puts a budget on every project that has one">
    Fenwick's Brand Refresh has no budget, and that is a decision, not an oversight. But it also means nobody is watching it. Only leave a project unbudgeted deliberately.

    → [Set a project budget](/budgets/set-a-project-budget) · [Budget alerts](/budgets/budget-alerts)
  </Step>

  <Step title="Tom agrees the time policies once">
    How far back can people edit time? Is time billable by default? Decide it once, for everyone.

    → [Time policies](/settings/time-policies)
  </Step>

  <Step title="Priya invites the client contacts to the portal">
    The portal is what stops the weekly "how is it going" email. Ruth at Bluebird gets a login tied to Bluebird Coffee, and sees only what is shared with Bluebird.

    A Client role holds **zero** internal capabilities. Ruth cannot see your costs, your margin, your other clients or your team's rates.

    → [Invite a client contact](/portal/invite-a-client-contact) · [What clients can see](/portal/what-clients-can-see)

    <Warning>
      A portal contact is a login, so they count toward your seats like anyone else. See [Seats](/billing/seats).
    </Warning>
  </Step>

  <Step title="Daniel sets up invoicing">
    Fill in the sender block once, check the numbering, and set the tax and currency defaults.

    → [Invoice sender details](/invoicing/invoice-sender-details) · [Invoice numbering](/invoicing/invoice-numbering) · [Taxes and currency](/invoicing/taxes-and-currency)
  </Step>
</Steps>

## The agency rhythm

| When      | Who      | What                                                  |
| --------- | -------- | ----------------------------------------------------- |
| Daily     | Everyone | Track time as you work                                |
| Friday    | Everyone | Review and submit the week                            |
| Monday    | Priya    | Clear the approval queue                              |
| Monday    | Priya    | Fifteen minute profitability check on active projects |
| Weekly    | Priya    | Plan next week's capacity in the planner              |
| Month end | Priya    | Chase, approve, then hand over to Daniel              |
| Month end | Maya     | Close the period                                      |
| Month end | Daniel   | Invoice, send, reconcile                              |

→ [Weekly timesheet routine](/guides/weekly-timesheet-routine) · [Month-end close](/guides/month-end-close) · [Monitor project profitability](/guides/monitor-project-profitability)

## What agencies get wrong

| Mistake                        | What it costs                                | Fix                                                 |
| ------------------------------ | -------------------------------------------- | --------------------------------------------------- |
| One project per client         | You never learn which engagement makes money | One project per engagement                          |
| No cost rates                  | You see revenue and call it profit           | [Cost rates](/rates/cost-rates)                     |
| Approving monthly              | Errors reach the client before you find them | Approve every Monday                                |
| Everyone is an Admin           | Anyone can change rates and budgets          | [Change someone's role](/team/change-someones-role) |
| No budget on small jobs        | Small jobs are where margin quietly dies     | Budget everything                                   |
| Rates set after work starts    | Early hours carry no value                   | Set rates before the first hour                     |
| Contractors on the Member role | They can see clients and build reports       | Use [Contractor](/guides/manage-contractors)        |

## Capacity planning

An agency's second question, after "is it profitable", is "can we take this on".

The **Resource Planner** plans blocks of work per person per week, so you can see who is full before you promise a start date. Planned blocks are not tracked time – they are the plan, and the tracked hours are what happened.

→ [Plan work blocks](/planner/plan-work-blocks) · [Capacity and workload](/planner/capacity-and-workload) · [Planner vs tracked time](/planner/planner-vs-tracked-time)

## Common questions

<AccordionGroup>
  <Accordion title="Should the Owner also be the Project Manager?">
    In a small agency, often yes. Owner already holds every permission, so Maya can approve timesheets without a second role. As you pass about eight people, split it out – approvals are a real job and they need doing every week.
  </Accordion>

  <Accordion title="Can two people approve timesheets?">
    Yes. Give the Project Manager role to both, and make sure supervision scope covers the people each of them should review. See [Supervision scope](/concepts/supervision-scope).
  </Accordion>

  <Accordion title="How do we stop Members seeing what people cost?">
    They already cannot. Seeing cost needs `time.viewCost` and `rate.viewCost`, and the Member role has neither. See [Rate permissions](/rates/rate-permissions).
  </Accordion>

  <Accordion title="Do we need a custom role?">
    Usually not. If one person needs one extra permission, change it on that person rather than building a role. See [Per-person permissions](/team/per-person-permissions) and [Custom roles](/team/custom-roles).
  </Accordion>

  <Accordion title="How many seats do we pay for?">
    Everyone with access – staff, contractors and client portal contacts – plus every outstanding invitation. See [Seats and billing](/team/seats-and-billing).
  </Accordion>
</AccordionGroup>

## Related guides

<CardGroup cols={2}>
  <Card title="Set up a new workspace" icon="rocket" href="/guides/set-up-a-new-workspace">
    The generic setup order.
  </Card>

  <Card title="Track work for a client" icon="route" href="/guides/track-work-for-a-client">
    Run the first real job.
  </Card>

  <Card title="Month-end close" icon="calendar-days" href="/guides/month-end-close">
    The agency's monthly routine.
  </Card>

  <Card title="Setup for a remote team" icon="globe" href="/guides/setup-for-a-remote-team">
    If your agency is distributed.
  </Card>

  <Card title="Manage contractors" icon="handshake" href="/guides/manage-contractors">
    Freelancers alongside staff.
  </Card>
</CardGroup>
