Skip to content

Configure rate cards

All plans Portfolio Manager or above

Rate cards tell Onplana what an hour of someone’s time costs. They power the Finance tab’s earned value math, timesheet cost reporting, and compliance cost-at-risk figures. Without at least one rate card (or a default hourly rate), cost figures stay empty rather than being invented.

The Rate Cards page showing per-user, role-based, and org-wide default rate cards side by side, with the resolution order banner explaining which rate wins for each member.

A rate card applies at one of three scopes, from most to least specific:

  • Per-user: a rate for one named person. Wins over everything else.
  • Role-based: a rate for everyone with a given organization role, for example all Members.
  • Org default: the fallback rate for anyone without a more specific card.

When Onplana needs a rate for someone, it resolves in that order: per-user rate, then role-based rate, then org default. If no card matches at all, a built-in fallback applies, and the page flags it so you know the figure is not one you configured.

  1. Open Rate Cards (from the People page, or via Manage Rate Cards on any project’s Finance tab).

  2. Select New Rate Card and pick the scope. For per-user and role-based cards you can select several people or roles at once; Onplana creates one card each.

  3. Enter the Cost rate (hourly) and pick the Currency. The cost rate is what the hour costs you (salary plus overhead), not what you charge clients.

  4. Set Effective from, and optionally Effective to for rates that expire, like a contractor engagement or an annual rate review.

  5. Add a Label if you want the card to be easy to find later, then save.

Onplana refuses to save two cards for the same person (or the same role) whose date ranges overlap, because the resolver would not know which one applies. When you hit a conflict, the error tells you exactly which card overlaps and offers a one-click fix: End previous on the day before your new card starts, so the two ranges meet cleanly without overlapping.

The Resolve picker at the top of the Rate Cards page answers “what rate actually applies to this person right now?” Pick a member and it shows the effective hourly rate plus where it came from: a per-user card, a role-based card, the org default, or the built-in fallback. The matching card is highlighted in the list below.

Managing rate cards, and viewing the full org rate list, defaults to portfolio managers and above, since the list is effectively a compensation table. Owners can change this tier in the permission matrix. Individual members can always look up their own effective rate.

  1. Start with an org default + role-based cards, then per-user. Setting one rate per role covers 80% of the team in three cards. Per-user cards are for the 20% who genuinely differ (senior contractors, specialized roles).
  2. Use date ranges to handle annual reviews. When salaries change, end the previous card and create a new one with the new Effective-from. The overlap protection enforces clean handover.
  3. Don’t put billable rate in the cost field. Cost rate = what an hour costs you. Billable rate = what you charge. They’re different fields. See Split cost and billable rates.
  4. Run the resolver after every change. The resolver shows which card actually wins. After updating a role rate, resolve a member of that role to confirm the new rate applied.
  5. Treat the rate card list as confidential. It’s a compensation table. The default restricts it to Portfolio Manager+, but double-check the permission matrix in your org if rates have leaked.
  • Cost figures empty on Finance tab. No rate card applies. Set an org default or per-user/role card. The resolver shows whether a fallback fired.
  • Save rejected with overlap error. Two cards for the same person/role with overlapping dates. Use the one-click “End previous on” suggestion to fix.
  • A user’s rate changed but Finance figures haven’t updated. Finance reads the rate at calculation time. Refresh the project’s Finance tab; future logged hours use the new rate automatically.
  • Historical EVM jumped after a rate change. The historical FX snapshot protects timesheet entries from this, but EVM may recompute with current rates; logged time keeps the rate it was captured with.
  • Member can see rates they shouldn’t. Check that PRO+ default (Portfolio Manager+) hasn’t been widened. See the Permission Matrix.
  • Rate cards + Timesheets. Logged hours × rate card = labor cost. The combination feeds Finance, Capacity, and Compliance. See Log and submit timesheets.
  • Rate cards + EVM. Earned Value math uses rate cards to price effort. See Read the EVM dashboard.
  • Rate cards + Compliance. Cost-at-risk prices the gap at rate card rate. Rate card prereq for compliance enforcement. See Monitor timesheet compliance.
  • Rate cards + Currency. Each card has its own currency; cross-currency project math uses org exchange rates. See Set budgets and currency.
ToolMapping
Microsoft Project Online Resource PoolPer-resource rates ≈ rate cards
ServiceNow PSADirect concept
Smartsheet Resource ManagementDirect
HarvestPer-user billable rates ≈ rate cards
QuickBooks payrollRate card replicates the cost-per-hour value

Can two cards for the same person ever overlap? No. The save is refused with details of the conflicting card and a suggested end date that makes the ranges meet without overlapping.

What happens if nobody has a rate card? Cost figures on the Finance tab stay empty rather than being fabricated. Set up an org default card (or a default hourly rate in Organization Settings) and the figures populate on the next refresh.

Do rate cards handle multiple currencies? Yes. Each card has its own currency, and project finance figures convert into the project’s currency using your organization exchange rates.

Does deleting an old rate card affect historical reports? Historical timesheet entries use the FX snapshot at the time of logging, so prior reports stay stable. Deleting cards is safe; the historical math is durable.

Can rate cards include benefits/overhead in a single rate? That’s exactly the cost rate’s intent, fully loaded cost (salary + benefits + overhead). Don’t double-add overhead on top.

Can I bulk-import rate cards from a spreadsheet? Not via the UI today. The MCP API supports rate card mutations for bulk imports.