Skip to main content
Rates live at SettingsRates (/{slug}/settings/rates), under the Billing & rates group in the settings sidebar. This is where you set what each person’s hour is worth.
Billable rate vs cost rate. A billable rate is what you charge the client. A cost rate is what the person costs you. Margin is the gap between them. Sarah Lin at 100billableand100 billable and 45 cost earns Northwind $55 of margin an hour.

Before you start

You need the Manage rates capability (rate.manage). Without it the Rates item does not appear in the sidebar, and opening the URL shows “You don’t have access to Rates”. Seeing rates is a capability question, not a plan question: Cost rates are private pay information. A Project Manager can set rates and read billable rates, but never sees a cost figure – the Cost rate column and the Cost tab are not built for them at all, so no cost number reaches their screen.
On the Free plan, setting a cost rate is blocked. It belongs to the Pro profitability feature. Billable rates stay free to set, and cost, revenue and margin already recorded stay readable on Free. See /billing/free-vs-pro.

The page

The page is titled Rates, with the description “What each person’s time is billed at, and what it costs you.” It holds one card, Person rates, described as “Each person’s billing rate and cost, effective from a date. Changing a rate never rewrites time already recorded.”

The rates roster

The card holds a table with one row per member, showing the rate in force today. Above the table is a search box, “Search people…”, which filters by name. Below it are the usual page controls: rows per page, the page number, and Previous and Next. While the rates load the table shows a loading state. If the workspace has no members yet, the table says so and points you at inviting a teammate.
The roster is the fastest way to find gaps. Scan the Billing rate column for Not set – those people track time that is worth nothing on an invoice.

Set a person’s rate

1

Open the person

Click the row action at the end of their row, then Manage rates. A dialog opens with their name as the title, and a subtitle giving their role and reminding you that each change appends a new dated rate.
2

Choose the kind

Billing is the default tab. Cost (internal) is a second tab, shown only if you hold rate.viewCost.
3

Read what is in force

The tab leads with the current figure, for example 100.00 USD, and the line “per hour, since 1 Jan 2026”. A future change appears below it with a Scheduled badge.
4

Fill in the new rate

Rate / hour takes a non-negative decimal such as 120 or 85.50. Currency defaults to the workspace base currency. Effective from defaults to today.
5

Click Add rate

You see “Billing rate saved.” or “Cost rate saved.” The new row appears in Rate history, and the roster shows it the moment its date arrives.
Anyone with rate.manage may do this. In Northwind Studio that is Maya Ellis (Owner), Tom Whitfield (Admin) and Priya Raman (Project Manager) – though Priya only ever sees the Billing tab.

The manage dialog in full

Every save appends. Nothing is overwritten, so the old rate stays readable and keeps applying to the dates it covered.

Schedule a rate change in advance

Set Effective from to a future date. The row saves straight away and carries a Scheduled badge, but it prices nothing until its date arrives. This is the safe way to handle an annual increase. Enter it in December, effective 1 January, and nothing changes until the new year.

Currencies

The Currency picker offers ISO 4217 codes and always includes the workspace base currency, which is set at SettingsGeneral. Each rate row carries its own currency, so a contractor billed in EUR can sit beside staff billed in USD. Northwind Studio’s base currency is USD.

Rate history

Below the editor sits the Rate history card: “Every rate, newest first.” Past rates are never rewritten, so historic time keeps the rate it was billed at. When you may see cost, the card shows two labelled tables, Billing and Cost (internal). Otherwise only the billing table is built. Empty tables read “No billing rate set yet.” or “No cost rate set yet.”

Remove a rate

Removing a rate is for a mistyped amount or a scheduled change you no longer want. Click the remove button on the row. A confirmation modal names the exact rate and date, and states what changes:
  • Time already tracked keeps the rate it was recorded at.
  • New work dated in that window uses the next earliest rate instead, and the modal names it.
  • If there is no earlier rate, the person has no rate for that period until you add one.
Confirm with Remove rate. You see “Rate removed.”
A removed rate cannot be restored. Removing a cost row also needs rate.viewCost and the Pro profitability feature – you may not delete a figure you are not allowed to see.

The same rates from a person’s record

The same block appears on a person’s own record under SettingsTeam Members, in their Rates section, followed by their rate history. It reads and writes exactly the same data as this page, so the two cannot drift. Reading it needs rate.viewBilling. Without it the section says you do not have permission to see pay rates.

How a rate is chosen

This page sets the person rate, which is one input of several. A task rate, a project rate and a client default rate can all outrank it, and time entries keep a snapshot of the rate they were priced at. The full precedence order is on /rates/how-rates-are-chosen. Cost is simpler: a person’s cost rate is always the workspace-level one, because there is no project or task cost override.

Example

Northwind Studio, base currency USD: Sarah tracks 3 hours on “Homepage wireframes” for Bluebird Coffee – Website Redesign. At 100anhourtheentryisworth100 an hour the entry is worth **300** to the project. At 45anhouritcostsNorthwind45 an hour it costs Northwind **135**. The margin on those 3 hours is $165. Maya Ellis and Tom Whitfield see all three columns. Priya Raman sees the billable column only. Daniel Okafor (Finance) does not hold rate.viewBilling by default, so rates are not part of his settings sidebar at all.

What happens next

Common questions

No. A time entry keeps the rate it was recorded at. A new rate applies to work dated from its effective date onward. See /rates/rate-snapshots.
You do not hold rate.viewCost. By default only Owner and Admin do. The column is not built for anyone else, so there is nothing hidden to reveal.
Setting a cost rate needs the Pro profitability feature. On Free the save fails with a message saying Profitability requires the Pro plan. Billable rates still save.
Yes, but not here. A project can override a person’s billable rate on the project’s own settings. See /rates/project-and-client-rates.
Yes. Every rate row carries its own currency.
Standard ISO currency codes, plus the workspace base currency so it is always selectable.

Troubleshooting

Set a person rate

The same task, step by step.

How rates are chosen

Task, project, person and client precedence.

Cost rates

What a person costs, and who may see it.

Rate permissions

The cost firewall in full.

Profitability and margin

Where cost rates are actually used.

Free vs Pro

What the profitability feature gates.