System → Work & rates defines the work roles and rates that several modules rely on. Setting these up gives time tracking, resource planning, and billing a shared, consistent foundation.
The page has four tabs: Roles & rates (each role's bill rate and cost rate), Work types (standard, after hours, emergency — and their multipliers), How rates are calculated (multiplier or matrix, and the default role and type), and People (where each person's rates come from today, and personal rates). Every term with a dotted underline — Bill rate, Cost rate, Default role, Multiplier — explains itself on hover, here and on Finance → Profitability, so nobody has to know the vocabulary before reading the page.

Work roles#
A work role describes the kind of work someone is doing when they log time — "Consultant," "Developer," "Project manager," "Support engineer." Work roles matter because the same person may do different kinds of work at different rates, and reporting is far more useful when time is attributed to a role rather than just a name.
Work types: how each kind of work bills#
A work type is the kind of work an hour was — standard or after hours for pricing, and, if you use them that way, Account management, Strategy, Sales or Delivery. Each work type has two settings that decide billing:
- Billing — how time of this kind bills. Only people who manage Finance can change it.
- Billable — counts toward the agreement. Uses the client's included hours, or is invoiced hourly when there's no agreement.
- Billed separately — on top of any agreement. Always invoiced hourly; never uses included hours.
- Client time, no charge. Shows as client time in reports, but the client isn't charged — the usual choice for account management and check-ins.
- Internal — not client work. Overhead, even when it's logged on a client.
- Not set (the default) — the work type doesn't decide; the ticket board's or project's billable setting does, exactly as before.
- Offered when logging time — whether people can pick it as the Kind of work when they log time. Rate types like After hours or Emergency usually stay off this list, so nobody prices up their own hour.
A client's agreement can set its own rule for any work type (Finance → the agreement → Kinds of work), which wins over the setting here. The person logging the time can still flip Billable on any single entry.
Apply to unbilled time#
How time bills is decided when it's saved, like its rates. So changing a work type's Billing, or an agreement's rule for it, only affects time logged from then on. To bring time already logged into line, use Apply to unbilled time (the circular-arrows button on the work type's row; for people who manage Finance). It shows what would change first, for example "8 entries (6.5h): Billable — counts toward the agreement → Client time, no charge", and changes nothing until you confirm.
It re-reads the rules for every entry logged as that work type, using today's settings and each client's agreement rules. It leaves alone:
- invoiced time;
- approved time, and time submitted while timesheet approvals are on;
- running timers;
- entries where someone set Billable by hand.
Every run is in the audit log.
Kind of work from Prox and AI assistants#
Prox and connected AI assistants can log time as a kind of work too. Name it ("log 30 minutes on the Northwind project as Account management"), and the same rules apply. Only kinds offered when logging are accepted; naming another one gets a reply listing the ones that are. The time ledger they read shows each entry's kind of time (billable, client time at no charge, or internal) and can be filtered by it.
Rates#
Every work role carries two rates, and they answer different questions.
- Bill rate — what an hour of that work sells for. It prices billable time onto invoices and drives estimated and logged fees in resource planning.
- Cost rate — what an hour of that work costs you. It is the fully-loaded hourly cost of the person doing it, and it is the only thing that turns delivered hours into a labour cost.
Rates flow into:
- Timesheets — time is captured against work roles, and both rates are resolved and stored on the entry as it is saved.
- Agreements and invoices (Finance) — billable time is priced using the applicable bill rate.
- Resource planning — estimating the cost and value of allocated work.
- Profitability — cost rates are what make a client margin a margin.
Agreements can also carry their own work-role rates, letting you honor client-specific pricing where it differs from your standard rates. The agreement's rate applies whenever the time is on that agreement and billable, whether or not the person picked a role when logging it: the role is worked out first, then the agreement's rate for that role wins.
Project rates, and what a project inherits#
A project's Rates & pay tab can set its own bill rate for a person or a role, from a date. A project rate wins over every other rate (except one set by hand on an entry) for billable time on the project and its tasks; a person's own row beats their role's. Saving one doesn't re-price time already logged; Apply to unbilled time does, after showing what would change.
Whatever the project doesn't set comes from the agreement its time links to: the agreement the project names, or else the client's default agreement. It stays live: when the agreement's rates change, the project follows, except where it has its own. The tab shows that agreement under From agreement: …:
- Role rates and, for a prepaid block, Prepaid hours rates. A row the project replaces shows the project's rate next to it.
- Whether the agreement's role rates or people's own rates win (the agreement's Rates on this agreement setting).
- What new time here bills: for each person on the project, or who logged time here in the last 90 days, the rate their next billable hour here would get and where it comes from. It's worked out exactly as logging time works it out.
- With View payouts, the agreement's pay rules: hourly pay that prices people's time here, and the shares the agreement pays, each saying how it relates to this project's work (for example, a share of a monthly fee doesn't change with this project's hours).
Edit on the agreement opens the agreement, where those rates and pay rules are changed. A project with no agreement shows the roles' standard rates instead: time there bills at each person's own rate, else their role's.
To charge one rate differently on this project only, open the row's ⋯ menu and choose Override for this project: it adds a project rate for just that role or person, from a date. The row then reads Overridden here, and the project's own row says what the agreement would charge. Revert to agreement removes the project's rates for that role or person, so they take the agreement's rate again. Time already logged keeps its rate until you use Apply to unbilled time.
A project role rate takes the place of the agreement's rate for that role. So when the agreement lets people's own rates win, someone with their own rate keeps it on the project too. A project rate set for a person always wins.
Lock to agreement rates stops a project from having rates or hourly pay of its own: everything comes from the agreement. You can only lock a project once it has none, so revert any it has first. Unlocking allows them again.
Where each hour's rate came from#
Every entry remembers where its bill rate came from: a personal rate, the agreement rate, the rate grid (role × work type), the role rate (scaled by the work type in multiplier mode), or set by hand. Hover a rate in a client's unbilled time, the invoice editor's pull list or Quick invoice to read it in words — for example "$150/h · Standard role rate on Sep 25". Time logged before this was recorded reads "rate saved when logged".
A person with no work role of their own (and none through their primary team) is priced at the organization's default role, so moving the default changes the price of their new time. The Profitability setup card names those people so you can give each a role.
A role's Default badge and the Default work role setting are one thing: the role a person's time is priced at when neither they nor their primary team has one. Switching Default on a role sets it; picking it under How rates are calculated moves the badge. A cost rate that is not set reads Not set in amber on both the role and the person, because hours in that role add nothing to Team cost until it is.
On the People tab, saving a personal rate creates a new dated rate for that person. A rate you leave blank keeps its current value — a raise on the bill side never blanks the cost side, and vice versa.
Cost rates, and why they matter more than they look#
A cost rate resolves in this order: an hourly pay rule for the person on that agreement or project (Pay rules), then a person's own effective-dated rate override here, then their pay in HR turned into a loaded hourly cost, then the work role's cost rate. HR pay sits above the role on purpose: a role's cost rate is an average across everyone in the role, while HR pay is that person. There is no team default and no organization default for cost — if none of these is set, the hour is saved with no cost rate at all.
The People tab says where each person's cost comes from today — personal rate, from HR pay or from role. A cost from HR pay is shown as a figure only to people who may also see compensation (for a contractor, the cost is the pay); everyone else sees Set (hidden), and every calculation uses it either way. Entering a cost rate for a person here overrides their HR pay.
The consequences are worth stating plainly, because they are the most common reason Profitability looks wrong:
- Hours with no cost rate are counted as uncosted hours. They are real delivered work that adds nothing to any client's labour cost, so every margin they touch reads optimistic.
- When no hour in a window carries a cost rate and no client expense is tagged, Profitability withholds the margin percentage entirely, showing Cost not measured rather than a flattering 100%.
- Rates are stored on each time entry when it is saved, not looked up later. Setting a cost rate today prices tomorrow's hours; it does not restate hours already logged. That is deliberate — a closed month can never move under a decision made after it — but it does mean the sooner these are set, the less history is uncosted.
Cost rates sit behind their own permission, since an hourly cost is compensation-adjacent. The Uncosted hours card on Finance → Profitability → Data Quality counts exactly how many hours are currently missing one.
Applying rates to time already logged#
A time entry copies its bill and cost rate the moment it is logged, so a rate you set today never reaches the hours logged before it existed — and most organizations log time first and set rates second. When time logged this month or last carries no rate, an amber banner at the top of this page says how many entries and offers Apply current rates. That fills the empty snapshots only: nothing already set is changed, invoiced time keeps the bill rate it was billed at, and the two months are rebuilt on Finance → Profitability straight away. It needs the same permission that may see cost rates, and it is audited as one summary entry.
Re-pricing time not yet invoiced#
Applying current rates only fills gaps. When you have changed a rate and want time already logged to use it — typically right after setting your rates for the first time — use Re-price time not yet invoiced on this page. Pick a date range, optionally one client, and bill rates, cost rates or both, then Preview: it lists what would change and the before and after totals, and writes nothing. Re-price then applies it.
- Only time that is not on an invoice is touched — once time is billed, the invoice is the record. Approved time that is not invoiced yet is re-priced too.
- Rejected time and a rate set by hand on an entry are never changed.
- Each entry is priced exactly as if it were logged today: the agreement's rate for its role, else the person, grid or role chain, on the entry's own day, role and work type.
- Every changed entry gets its own audit entry, and Finance → Profitability is rebuilt from the earliest month touched.
- Re-pricing bill rates needs Finance management as well as access to this page, because it changes what clients will be charged; cost rates need the permission that may see them.
Resource capacity#
Closely related is System → Resource capacity, where you set how much capacity your team has for resource planning. Together, work roles, rates, and capacity give the Resource Management and Finance modules what they need to plan, price, and bill work accurately.
Set work roles and both rates before your team starts logging billable time — it's much easier than re-attributing historical time later, and a cost rate added afterwards never reaches the hours already logged. You can still override rates per agreement for specific clients.
These settings feed the Finance and Resource Management modules; see their documentation for how timesheets, agreements, invoices, and allocations use them.