Setting rate hierarchies for projects and team members

Time tracking · 4 min read

How to structure billing rates across projects and people so the right rate applies automatically — and why snapshotting rates at entry time keeps your past invoices honest.

If you bill more than one rate — a higher one for a demanding client, a lower one for a long-term retainer, a junior contractor's rate that differs from yours — managing those rates by hand is a recipe for mistakes. Apply the wrong number once and you've either undercharged or set off an awkward correction. A rate hierarchy solves this by letting the right rate apply automatically based on the project and the person doing the work. This guide explains how to structure that hierarchy, and why the way rates are recorded matters just as much as the rates themselves.

The three levels of the hierarchy

Kliently's rate hierarchy has three levels, and they resolve from most specific to least specific. When a time entry is logged, the system looks for the most specific rate available and uses it:

  1. Project-member rate — the rate for a specific person on a specific project. Most specific; wins whenever it's set.

  2. Project rate — the rate for everyone on a given project, used when no member-specific rate exists.

  3. Default rate — your workspace fallback, used when neither of the above is set.

The logic is simple: the most specific rate that applies is the one that's used. Set a default and forget about it for simple work; reach for project and member rates only when a particular engagement or person needs to differ.

Start with a sensible default

Your default rate is the foundation — the number that applies when you haven't said otherwise. For a solo freelancer with consistent pricing, the default alone may cover almost everything you do. Set it to your standard hourly rate and most entries will simply pick it up, with no per-project fiddling required. The hierarchy only adds work when you actually need an exception, which keeps the common case effortless.

Override per project when the engagement differs

Some projects justify their own rate. A rush job, a high-stakes client, or a discounted retainer all warrant a number that isn't your default. Set a project rate and every entry on that project uses it automatically — no remembering to adjust each timer. Common reasons to set a project rate:

  • A premium client who pays above your standard rate.

  • A long-term retainer billed at a deliberately lower rate.

  • A fixed-scope project where you've agreed a specific blended rate.

  • A different currency or market where your pricing differs.

Override per member for teams and contractors

Once you bring in teammates or contractors, people on the same project may bill at different rates — a senior designer and a junior one, or your rate versus a contractor's. The project-member rate handles this: set a rate for a specific person on a specific project, and their entries use it while everyone else on the project falls back to the project rate. This also respects your permission walls — a contractor tracks their own time without ever seeing the project's margins or other people's rates.

Why rates are snapshotted at entry time

Here's the detail that protects you most: when you log a time entry, Kliently snapshots the rate that applies at that moment and stores it on the entry. The entry's value is fixed from then on. If you raise your default rate next quarter, or change a project rate mid-engagement, the hours you already tracked keep the value they had when you tracked them.

A rate change should price your next hour, never silently rewrite the value of work you already delivered and may have already invoiced.

Without snapshotting, raising a rate would retroactively inflate every past unbilled entry — turning a routine price increase into a billing dispute waiting to happen. With it, your historical work is locked to the terms it was done under, which is exactly what a client expects and an accountant requires.

Raise your rates without fear

The practical payoff is freedom to evolve your pricing. Because past entries hold their snapshotted rates, you can raise your default or a project rate whenever it's time, and the change cleanly applies only to work tracked afterward. New entries pick up the new number; old invoices and unbilled time stay exactly as they were. When those entries become an invoice — see turning tracked hours into an invoice in one click — the rates carry straight through, so what you billed always matches what you tracked.