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

# Profitability and margin

> Revenue minus cost equals margin. Learn how TimeTracker calculates project profitability from billable and cost rates, and who is allowed to see the numbers.

Margin is what you keep.

```
revenue − cost = margin
```

Revenue is what you charge the client. Cost is what the work costs you. The gap between them is the profit on the job.

## The two rates that make margin

Every hour someone tracks carries two numbers.

|                  | Billable rate                           | Cost rate                              |
| ---------------- | --------------------------------------- | -------------------------------------- |
| Means            | What you **charge** the client per hour | What the person **costs** you per hour |
| Appears on       | Invoices                                | Nothing the client sees                |
| Set at           | Person, project or client level         | Person level                           |
| Who can see it   | Anyone with `rate.viewBilling`          | Owner and Admin only                   |
| Needs Pro to set | No                                      | **Yes**                                |

Sarah Lin's billable rate is **$100/hour**. Her cost rate is **$45/hour**.

So every hour Sarah works earns $100 and costs $55 less than that – a margin of **\$55 an hour**.

See [billable rates](/rates/billable-rates) and [cost rates](/rates/cost-rates).

## The canonical example

Sarah tracks **3 hours** on "Homepage wireframes" for Bluebird Coffee – Website Redesign.

| Figure   | Calculation       | Result    |
| -------- | ----------------- | --------- |
| Revenue  | 3 × \$100         | **\$300** |
| Cost     | 3 × \$45          | **\$135** |
| Margin   | $300 − $135       | **\$165** |
| Margin % | $165 ÷ $300 × 100 | **55%**   |

That is the whole idea. Northwind bills Bluebird $300 for three hours of Sarah's time, pays $135 for it, and keeps \$165.

## Margin per person

Each person has their own margin, because each has their own pair of rates.

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

Check the last row: 80 − 55 = 25, and 25 ÷ 80 = 0.3125 = 31.25%.

Two things stand out:

* **The highest rate is not the best margin.** Jonas bills \$120 – the most of the three – but keeps a lower percentage than Sarah.
* **A contractor can be the thinnest margin.** Ana bills $80 and costs $55, so under a third of her rate is profit. Loading a project with contractors can quietly halve its margin.

<Tip>
  Watch margin **percentage**, not margin per hour. A person who bills $200 and costs $180 makes you \$20 an hour – but only 10% – and one slipped estimate wipes it out.
</Tip>

## Margin on a whole project

A project's margin is the sum of every person's contribution, not an average of their percentages.

**Bluebird Coffee – Website Redesign.** 250 hours of approved time.

| Person        | Hours   | Revenue      | Cost         | Margin       |
| ------------- | ------- | ------------ | ------------ | ------------ |
| Sarah Lin     | 150     | \$15,000     | \$6,750      | \$8,250      |
| Jonas Bergman | 50      | \$6,000      | \$3,000      | \$3,000      |
| Ana Ferreira  | 50      | \$4,000      | \$2,750      | \$1,250      |
| **Total**     | **250** | **\$25,000** | **\$12,500** | **\$12,500** |

Project margin: $12,500 ÷ $25,000 × 100 = **50%**.

Worth noticing: the three people's individual margins are 55%, 50% and 31.25%. The project lands at 50% because Sarah did most of the hours. The mix of who works a project matters as much as the rates themselves.

## The figures TimeTracker shows

| Figure                    | Formula                                         | Where it appears                        |
| ------------------------- | ----------------------------------------------- | --------------------------------------- |
| **Billable value**        | billing rate × billable hours                   | The Financials panel, invoices, reports |
| **Actual cost**           | cost rate × hours worked                        | Behind the money budget bar             |
| **Gross profit**          | billable value − actual cost                    | A tile on the Financials panel          |
| **Forecast cost**         | cost so far + remaining hours × cost rate       | The Forecast at completion tile         |
| **Forecast revenue**      | revenue so far + remaining hours × billing rate | The Forecast at completion tile         |
| **Forecast margin**       | forecast revenue − forecast cost                | A tile on the Financials panel          |
| **Effective hourly rate** | billable value ÷ tracked hours                  | A tile on the Financials panel          |

Gross profit is what you have made. Forecast margin is what you are on course to make.

### Effective hourly rate

The blended rate a project is actually earning.

For the Website Redesign: $25,000 ÷ 250 hours = **$100.00 per hour\*\* exactly.

Compare that with your headline rates. If a project sold at Sarah's $100 rate is earning an effective $82, cheaper people are doing more of the work than you assumed – or non-billable hours are diluting it.

## What margin does and does not include

| Included                                             | Not included                                  |
| ---------------------------------------------------- | --------------------------------------------- |
| Approved billable time at each person's billing rate | Time that is tracked but not yet approved     |
| Approved cost at each person's cost rate             | Expenses – they are tracked on their own axis |
| Adjustments recorded against approved time           | Overheads such as rent, tools or software     |
| Non-billable hours, on the cost side only            | Taxes                                         |

Two consequences worth being clear about.

**Non-billable hours are pure cost.** An hour Sarah spends on internal admin against a project costs \$45 and earns nothing. It drags margin down. That is correct, and it is the point.

**Margin is a gross margin, not net profit.** It is revenue minus the direct labour cost of delivering the work. It does not know about your office or your software bill.

## Who can see cost and margin

Revenue is broadly visible. Cost is not.

| Figure                                         | Who sees it                                                                |
| ---------------------------------------------- | -------------------------------------------------------------------------- |
| Billable value, revenue, effective hourly rate | Any workspace member                                                       |
| Actual cost, gross profit, forecast margin     | Only someone with `time.viewCost` or `rate.viewCost` – **Owner and Admin** |
| A person's cost rate                           | Only someone with `rate.viewCost` – **Owner and Admin**                    |

A Project Manager can run a project, approve its time, set its budget and see its revenue, and still never see what the team costs. That is the cost firewall.

<Note>
  Cost fields are **omitted**, not blanked. The tile grid reflows and no placeholder hints at a hidden number. Nothing is sent to a screen that is not allowed to display it.
</Note>

## Plans: the profitability half-gate

This is subtle and worth getting exactly right.

`profitability` is a Pro feature. It gates **exactly one thing: setting a cost rate.**

| On Free                                        | Status                          |
| ---------------------------------------------- | ------------------------------- |
| Set a new **cost** rate                        | **Blocked** – needs Pro         |
| Set a **billing** rate                         | Free                            |
| Read cost, revenue and margin already recorded | **Readable**                    |
| See existing cost rates                        | Readable, subject to capability |
| Build a report containing margin               | Readable, subject to capability |

So Free does **not** hide margin. It stops margin being **maintained** – you cannot set a cost rate for a new hire, so their hours cost nothing and the margin drifts upward and becomes a lie.

Setting a **project budget** is a separate Pro feature, `budgets`. The two gates are independent.

And to be completely clear: **who may see cost and margin is a capability question**, decided by `time.viewCost` and `rate.viewCost`. It is never a plan question. A Free workspace's Owner sees margin. A Pro workspace's Project Manager does not.

See [plans and features](/concepts/plans-and-features).

## Where to find your margin

| Screen                              | Shows                                                                     |
| ----------------------------------- | ------------------------------------------------------------------------- |
| **Project → Overview → Financials** | Gross profit, forecast margin and effective hourly rate for one project   |
| **Client detail**                   | The rolled-up figures across that client's projects                       |
| **Reports → Profitability source**  | Actual cost, gross profit and margin percentage, grouped any way you like |
| **Reports → Expenses source**       | Expense cost and billable value, for the cash side                        |

The reports firewall matches the app. The revenue measures are open; the cost and profit measures require `time.viewCost`.

## Common questions

<AccordionGroup>
  <Accordion title="Is margin the same as profit?">
    It is gross margin – revenue minus the direct labour cost of the work. Net profit also subtracts overheads, which TimeTracker does not track.
  </Accordion>

  <Accordion title="Why is my margin higher than I expected?">
    The most common cause is missing cost rates. Someone with no cost rate contributes zero cost, so their hours look like pure profit. Check every person on the project has one.
  </Accordion>

  <Accordion title="Why did margin drop when I approved timesheets?">
    Approving adds cost. Before approval that cost was excluded, so the margin was flattering. The post-approval figure is the true one.
  </Accordion>

  <Accordion title="Do expenses affect margin?">
    Not the project margin figure, which is labour-based. A billable expense has its own margin – the gap between what you paid and the marked-up value you charge. See [billable expenses](/expenses/billable-expenses).
  </Accordion>

  <Accordion title="Do non-billable hours hurt my margin?">
    Yes. They cost money and earn none. That is exactly what you want the number to tell you.
  </Accordion>

  <Accordion title="What margin should I aim for?">
    That depends on your business. Many service firms target 50% or better on gross project margin. Set your target as the **Alert if margin falls below** floor and let TimeTracker warn you.
  </Accordion>

  <Accordion title="Does downgrading to Free hide margin I already have?">
    No. Cost, revenue and margin already recorded stay readable. What you lose is the ability to set a new cost rate.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                                         | Cause and fix                                                                            |
| --------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| Gross profit and forecast margin tiles are missing              | You lack `time.viewCost` and `rate.viewCost`. Owner and Admin only.                      |
| Margin looks impossibly good                                    | Someone on the project has no cost rate. Set one for every person who works client jobs. |
| Cost is zero on a busy project                                  | Either no cost rates, or no approved time. Check both.                                   |
| You cannot set a cost rate                                      | It needs the Pro `profitability` feature.                                                |
| The effective hourly rate is much lower than your billing rates | Non-billable hours are diluting it, or cheaper people are doing most of the work.        |
| Margin differs from your accountant's figure                    | TimeTracker reports gross project margin. Your accounts include overheads and taxes.     |

## Related guides

<CardGroup cols={2}>
  <Card title="Calculate project profitability" icon="calculator" href="/budgets/calculate-project-profitability">
    A full walkthrough on one project.
  </Card>

  <Card title="Cost rates" icon="dollar-sign" href="/rates/cost-rates">
    The number that makes margin possible.
  </Card>

  <Card title="Billable rates" icon="receipt" href="/rates/billable-rates">
    The revenue side of the equation.
  </Card>

  <Card title="How budgets work" icon="gears" href="/budgets/how-budgets-work">
    Where forecast margin comes from.
  </Card>

  <Card title="Budget alerts" icon="bell" href="/budgets/budget-alerts">
    The margin floor alert.
  </Card>

  <Card title="Plans and features" icon="credit-card" href="/concepts/plans-and-features">
    The profitability half-gate in context.
  </Card>
</CardGroup>
