If you’re new here: OneCamp is a self-hosted workspace (chat, tasks, docs, calls, calendar and AI agents) that you install on your own server. It is open source and free for up to 25 people.
OneCamp has tracked time on tasks for a while: timers, time added by hand, billable or not, a report per project, and an invoice made from it. What it didn’t know was what an hour costs. You typed one rate on each invoice, for everyone. That works until the senior designer and the junior developer bill differently, which is most agencies.

Open a project’s Time report and choose Rates. Set:
The report then says what the billable time comes to, and for each person and each task what their share is. Each person is charged at their own rate. A task two people worked on, at different rates, adds up correctly.
The downloaded CSV gets Rate and Amount columns too, for whatever accounting tool you use.
Make an invoice now starts from the project’s rates, in its currency:
Each line is its hours times its rate, so a client checking the arithmetic gets the same answer. A rate typed on the invoice still overrides the project’s, for a fixed-rate client.
Only the project’s admins see rates and money. Everyone else’s report shows hours, as before.
Rates have no dates, so changing one re-prices time already logged. Make the invoice before you change the rate.
Toggl Track keeps billable rates for its paid plans. In OneCamp they’re in every edition, including the free one for up to 25 people. The time sits beside the tasks, chat and docs it was spent on, on your own server.