Skip to main content
Expenses use four capabilities: expense.submit, expense.approve, expenseCategory.manage and time.viewCost. Each one answers a different question.

The role matrix

The capabilities in detail

expense.submit

Held by every working role: Owner, Admin, Project Manager, Finance, Member and Contractor. Not held by Client. It covers your own expenses only:
  • create a draft
  • edit a draft or rejected expense
  • submit for approval
  • withdraw a submitted expense back to draft
  • delete a draft or rejected expense
  • upload a receipt, and open a receipt
The breadth mirrors time.submit. Anyone who does client work can spend money on it, so anyone who does client work can file an expense.
Holding expense.submit does not let you touch anyone else’s expense. Every edit, withdraw and delete re-checks that you are the submitter.

expense.approve

Held by Owner, Admin, Project Manager and Finance. This is the review tier. It covers:
  • seeing the Approvals → Expenses queue and history
  • approving a submitted expense
  • rejecting a submitted expense with a reason
  • withdrawing an approval you gave
  • building a workspace-wide Expenses report
That last one matters. expense.approve is the workspace-wide “see expenses that are not mine” capability. expense.submit is deliberately not enough to build an Expenses report – if it were, any Member could aggregate the whole company’s spend. Approve and Reject additionally need the Pro plan. Withdrawing an approval does not.

expenseCategory.manage

Held by Owner, Admin and Finance. Project Manager is deliberately excluded. Categories are a finance taxonomy, not a delivery one. A PM approves expenses and manages budgets but does not shape the chart of accounts. It covers:
  • opening Settings → Expense categories
  • adding a category
  • renaming a category
  • archiving and restoring a category
There is no inline-create path. The expense form only offers the managed active list, so every category change – including the very first one – needs this capability.

time.viewCost

Held by Owner and Admin only. It is not an expense capability as such. It is the cost firewall that decides whether you see the raw amount and markup % on someone else’s expense. This is the same firewall that hides cost rates from a Project Manager. See cost rates. The firewall also applies in reports. The Expense cost measure requires time.viewCost; the Billable value and Expenses count measures do not.

Example

Northwind Studio, with all seven roles in play.

App and plan gates

Capabilities are only one of three gates. All three must pass.
1

Is the app on?

Expenses must be switched on in Settings → Apps. Off means hidden entirely – the sidebar item is gone and the URL is blocked. Expenses requires the Projects & tasks app.
2

Do you hold the capability?

Your role, plus any custom role or per-person override your workspace has set.
3

Does your plan include it?

Recording an expense is free. Approving one needs Pro.
Never confuse “turned off” with “not on your plan”. See apps and modules and plans and features.

Custom roles and per-person overrides

Your workspace can define custom roles with a different capability set, and can deny specific capabilities to individual people. Two rules to keep in mind:
  1. A capability is not a scope. expense.approve says you may review expenses. Supervision scope decides whose expenses route to you. Both have to pass. See supervision scope.
  2. Not every capability is freely movable. Some are owner-exclusive and some are deny-only. Check the role editor before assuming a capability can be granted to any role.

Common questions

No. The Expenses page is pinned to the person viewing it. Workspace-wide visibility needs expense.approve.
Categories are how spend is classified for the books. That is a finance concern. A PM’s expense authority is reviewing amounts on their projects, not shaping the taxonomy.
Only on their own expenses. Seeing another person’s raw amount needs time.viewCost, which is Owner and Admin only.
Yes. Contractor is the narrowest staff role, but it holds expense.submit in full.
No. A Client role holds an empty internal capability set. A portal contact only sees what is explicitly shared with their client company.
No. Recording is free on every plan, forever. Only approving is Pro.

Troubleshooting

Roles and capabilities

The full permission model.

Approve an expense

The reviewer surface these capabilities unlock.

Expense categories

Managed by the money tier only.

Cost rates

The same cost firewall on people.

Apps and modules

The app gate that sits above every capability.

Plans and features

Why approving is Pro and recording is free.