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

# Billable expenses

> Charge a client for a cost you paid. Learn how markup works, how billable value is calculated, and how an approved expense reaches an invoice in TimeTracker.

A billable expense is one your client pays for. Turn on **Billable to client** when you submit it, add an optional markup, and the approved expense becomes available to put on an invoice.

## Billable vs internal

Every expense is one or the other.

|                              | Billable                      | Internal   |
| ---------------------------- | ----------------------------- | ---------- |
| Chip in the app              | `Billable` or `Billable +15%` | `Internal` |
| Client pays for it           | Yes                           | No         |
| Can go on an invoice         | Yes, once approved            | Never      |
| Can carry a markup           | Yes                           | No         |
| Still needs approval         | Yes                           | Yes        |
| Still counts as project cost | Yes                           | Yes        |

Both kinds are recorded, reviewed and reportable. The flag decides one thing: whether the cost can be recovered from the client.

This mirrors the same idea for hours. See [billable vs non-billable](/concepts/billable-vs-non-billable).

## How billable value is calculated

Billable value is what the client is charged.

```
billable value = amount × (1 + markup% / 100)
```

The form shows this formula under the **Markup %** field.

Worked examples on a \$240 expense:

| Amount   | Markup % | Billable value | Margin   |
| -------- | -------- | -------------- | -------- |
| \$240.00 | blank    | \$240.00       | \$0.00   |
| \$240.00 | `0`      | \$240.00       | \$0.00   |
| \$240.00 | `15`     | \$276.00       | \$36.00  |
| \$240.00 | `25`     | \$300.00       | \$60.00  |
| \$240.00 | `50`     | \$360.00       | \$120.00 |

Check the middle row: 240 × 1.15 = 276. The client pays $276, you paid $240, so you keep \$36.

<Note>
  The maths runs in exact decimals, not floating point. A long chain of expenses will not drift by a cent.
</Note>

## When to add a markup

<CardGroup cols={2}>
  <Card title="Cover handling cost" icon="hand-holding-dollar">
    A 10–15% markup covers the admin of buying, tracking and fronting the cash for a client purchase.
  </Card>

  <Card title="Match your contract" icon="file-signature">
    Many agency contracts specify a fixed pass-through markup. Enter that number.
  </Card>

  <Card title="Bill at cost" icon="equals">
    Leave the markup blank for a straight pass-through. Many clients require this for travel.
  </Card>
</CardGroup>

A markup can only exist on a billable expense. If you turn **Billable to client** off, any markup you typed is cleared. A negative markup is rejected – an expense is never billed below cost through this field.

## Who sees what

An expense carries two money figures, and they are not equally visible.

| Figure             | Meaning                                 | Visible to                          |
| ------------------ | --------------------------------------- | ----------------------------------- |
| **Amount**         | What your business paid – internal cost | The submitter, plus Owner and Admin |
| **Markup %**       | Your uplift – internal                  | The submitter, plus Owner and Admin |
| **Billable value** | What the client is charged              | Everyone who can see the expense    |

A Project Manager or Finance reviewer sees $276 without seeing that you paid $240. That is the cost firewall, and it works the same way for [cost rates](/rates/cost-rates).

You always see the full detail on your own expenses.

## How a billable expense reaches an invoice

<Steps>
  <Step title="Submit it as billable">
    Turn **Billable to client** on and pick the client. An expense with no client cannot be matched to that client's invoice.
  </Step>

  <Step title="Get it approved">
    Only an `approved` expense is invoiceable. A draft, submitted or rejected one is not.
  </Step>

  <Step title="Build the invoice">
    Create an invoice for the client. The builder shows a **Billable expenses** section listing approved billable expenses with their billable value.
  </Step>

  <Step title="Tick the expenses to include">
    Each row shows the category and the billable value, for example `Software – $276.00 billable`.
  </Step>

  <Step title="Save the invoice">
    Each selected expense moves to `invoiced` and becomes an invoice line.
  </Step>
</Steps>

Full detail on the invoice itself is on [create an invoice](/invoicing/create-an-invoice).

### The invoice line

The line uses:

* **Description** – the expense's description, or the category name when there is none
* **Quantity** – always `1`
* **Amount** – the billable value, converted if the invoice currency differs

### Currency conversion

If the expense currency differs from the invoice currency, an exchange rate must exist for that pair on the invoice date.

TimeTracker never falls back to a silent 1:1 rate. A missing pair is refused rather than guessed, because a silent 1:1 would mis-price the invoice. Add the rate first. See [currencies and exchange rates](/rates/currencies-and-exchange-rates).

### Why `invoiced` is a status

Once an expense is on an invoice it must not change. Editing a \$276 line after the client has the invoice would put your records and theirs out of step.

So `invoiced` is a terminal status. An invoiced expense cannot be edited, withdrawn, re-approved or deleted. Corrections happen on the invoice.

<Warning>
  Adding a billable expense to an invoice writes to the Expenses app. If Expenses is switched off, the invoice build is refused rather than quietly dropping the expense – an invoice that silently under-bills is worse than one that fails loudly.
</Warning>

## Example

Sarah Lin buys a stock photo licence for the Bluebird Coffee Website Redesign.

<Steps>
  <Step title="Sarah files it">
    Amount `240`, currency `USD`, category `Software`, client `Bluebird Coffee`, project `Website Redesign`. **Billable to client** on, markup `15`.
  </Step>

  <Step title="The app calculates the billable value">
    240 × 1.15 = **\$276.00**. Sarah's log shows a `Billable +15%` chip.
  </Step>

  <Step title="Daniel approves it">
    In **Approvals → Expenses → Awaiting**, Daniel Okafor sees `Sarah Lin · Software · $276.00 · Billable +15%` and a **View** receipt link. He approves.
  </Step>

  <Step title="Daniel invoices Bluebird">
    He creates an invoice for Bluebird Coffee. Under **Billable expenses** he sees `Software – $276.00 billable` and ticks it.
  </Step>

  <Step title="The expense locks">
    On save, the expense moves to `invoiced`. Bluebird's invoice carries a $276 line. Northwind's records show $240 paid out and \$36 of margin on the pass-through.
  </Step>
</Steps>

## What a billable expense does not do

| It does not…                              | Because                                                                                                                                      |
| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| Reduce a project budget                   | A money budget measures approved **labour** cost. Expenses are tracked on their own axis. See [how budgets work](/budgets/how-budgets-work). |
| Appear on the client portal automatically | Only what you share with a client company is visible to a portal contact.                                                                    |
| Get invoiced without approval             | The invoice builder refuses any expense that is not both `approved` and `billable`.                                                          |
| Bill itself                               | Someone with `invoice.manage` still has to build and send the invoice.                                                                       |

## Permissions

| Action                                                  | Capability        | Roles                                  |
| ------------------------------------------------------- | ----------------- | -------------------------------------- |
| Mark your own expense billable and set a markup         | `expense.submit`  | Every working role                     |
| See the billable value on someone else's expense        | `expense.approve` | Owner, Admin, Project Manager, Finance |
| See the raw amount and markup on someone else's expense | `time.viewCost`   | Owner, Admin                           |
| Put an approved billable expense on an invoice          | `invoice.manage`  | Owner, Admin, Project Manager, Finance |

Invoicing is a Pro feature. See [plans and features](/concepts/plans-and-features).

## Common questions

<AccordionGroup>
  <Accordion title="Can I change the markup after approval?">
    No. An approved expense is locked. Ask a reviewer to withdraw their approval, which returns it to the queue, then have them reject it so you can rework it. An invoiced expense cannot be changed at all.
  </Accordion>

  <Accordion title="Can I bill an expense without a markup?">
    Yes. Leave **Markup %** blank or enter `0`. The client is charged exactly what you paid.
  </Accordion>

  <Accordion title="Can I mark an expense billable after submitting it?">
    Withdraw it to draft first, turn the switch on, then submit again. A submitted expense cannot be edited.
  </Accordion>

  <Accordion title="Why does my approved billable expense not appear on the invoice?">
    Check three things: it is `approved` and not still `submitted`, **Billable to client** is on, and it is filed against the client you are invoicing.
  </Accordion>

  <Accordion title="What happens to the expense if the invoice is never sent?">
    It stays `invoiced` and attached to that draft invoice. It is not available to a second invoice, which is what stops double billing.
  </Accordion>

  <Accordion title="Does a non-billable expense still show a value?">
    It shows an `Internal` chip rather than a billable one, and it never appears in the invoice builder.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                                          | Cause and fix                                                                                                       |
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| The **Markup %** field is not visible                            | It only appears while **Billable to client** is on.                                                                 |
| **Markup must be zero or a positive percentage.**                | The markup is negative or not a number.                                                                             |
| The expense is missing from **Billable expenses** on the invoice | It is not approved, not billable, or not filed against that client.                                                 |
| The invoice refuses to save with an expense on it                | Its status changed, or the Expenses app was switched off. Check both.                                               |
| An exchange rate error on save                                   | The expense currency differs from the invoice currency and no rate exists for that pair on that date. Add the rate. |
| The billable value looks a cent off                              | It will not be. Amounts are held in exact decimals. Check the markup you actually entered.                          |

## Related guides

<CardGroup cols={2}>
  <Card title="Create an invoice" icon="file-invoice" href="/invoicing/create-an-invoice">
    Build the invoice your billable expenses land on.
  </Card>

  <Card title="Expense statuses" icon="list-check" href="/expenses/expense-statuses">
    Why `invoiced` is terminal.
  </Card>

  <Card title="Billable vs non-billable" icon="scale-balanced" href="/concepts/billable-vs-non-billable">
    The same distinction applied to hours.
  </Card>

  <Card title="Submit an expense" icon="plus" href="/expenses/submit-an-expense">
    Setting the billable flag and markup.
  </Card>

  <Card title="Currencies and exchange rates" icon="money-bill-transfer" href="/rates/currencies-and-exchange-rates">
    Converting an expense onto an invoice.
  </Card>

  <Card title="Profitability and margin" icon="chart-pie" href="/budgets/profitability-and-margin">
    How markup contributes to what you keep.
  </Card>
</CardGroup>
