CoPortalDocs

Billing & Time

Time tracking & expenses

Track every billable hour and project cost, then convert them to invoices in one click. CoPortal has a live timer, a global sidebar shortcut, a dedicated time log page, and full team visibility — so no billable time slips through the cracks.

Where to access the timer

There are two ways to start tracking time:

  • Global sidebar shortcut (Log Time) — available on every page. Click Log Time in the sidebar to open a floating modal. Select any project, start the live timer or log manually. Use this when you're context-switching between projects or want to log without leaving what you're doing.
  • Project time panel — open any project and click the Time & Billing tile in the overview, or click Time & Billing in the panel bar. The full timer panel shows your live timer, all logged entries, and invoice tools for that project.

Live timer

Click the green Play button to start timing. The elapsed time ticks in real-time. While the timer is running you can:

  • Type a description of what you're working on
  • Link the session to a specific task on the board
  • Select a retainer to log the time against

Click Stop to end the session — a time entry is saved automatically with the elapsed duration (subject to any rounding rules you've set).

Timer persistence

The timer survives page refreshes and navigation. If you start a timer on a project, switch to another page, and come back — the timer picks up where it left off. The elapsed time is stored locally and restores automatically when you return to the project within 24 hours. The sidebar also shows the running elapsed time so you always know a timer is active.

Tip: Start the timer the moment you open a project. Stop it when you're done. That's it — the entry is created for you.

Manual time entry

In the Time & Billing panel, click + to add a manual entry. In the sidebar modal, click Log manually. Fill in:

  • Description — what was worked on
  • Duration — hours and minutes
  • Date — defaults to today
  • Task — optional link to a board task
  • Billable — toggle on/off
  • Hourly rate — defaults to your workspace rate, overridable per entry
  • Retainer — optional, if the client has an active retainer

Hours budget

Every project can have a quoted hours budget. Open the project, click Edit in the header, and set an hours budget (e.g. 40h). The timer widget then shows a progress bar:

  • Violet — under 80% of budget used
  • Amber — 80–99%, getting close
  • Red — over budget, with the overage amount shown

This gives you early warning of scope creep before it becomes a billing dispute. Pair it with the existing expense scope-creep alert for full cost control.

Time rounding

Professional billing often rounds up to the nearest increment. Go to Settings → Workspace and set a Time rounding rule — options are none, 6, 10, 15, 30, or 60 minutes. When set, every time entry (from the timer or manual entry) is rounded up to the nearest increment before saving. A note confirms the rounding when you stop the timer.

Note: Rounding is applied workspace-wide. A 23-minute session with 15-minute rounding is saved as 30 minutes. Choose the increment that matches your billing standard — 6 minutes (0.1h) is common in legal and consulting; 15 minutes is standard for most creative and technical work.

Converting time to invoices

In the Time & Billing panel, each billable, un-invoiced entry has a checkbox. When any unbilled entries exist, an amber Invoice time → banner appears — click it to auto-select all unbilled entries. Then:

  • Add to existing invoice — appends selected entries as line items to a draft invoice
  • Create new invoice — generates a new draft invoice pre-filled with the selected entries, quantity in hours, unit price at rate, and total calculated

Entries marked as invoiced are greyed out with an "invoiced" label and can no longer be selected.

Tip: You can also access the Time page from the sidebar to see all unbilled time across every project at once — useful for end-of-week billing runs.

Time log page (/time)

The Time page in the sidebar gives a workspace-wide view of all logged time. Use it for end-of-week billing reviews, capacity planning, and reporting.

Filters and range

Filter by time range (7 days, 30 days, 90 days, all time), specific project, or billable status. The stats at the top update live as you filter.

Time log tab

All entries grouped by week, showing the description, project, date, billable status, and value. Each week shows a subtotal of hours and billable value.

By project tab

Each project ranked by total hours logged in the selected period. Shows total hours, billable hours, and billable value. Proportional bar makes it easy to spot where time is going.

By team member tab (Studio & Agency)

All entries attributed by team member — who logged what, how many hours, their billable rate (% of logged time that is billable), and billable value. Useful for capacity reviews and understanding utilisation across the team.

Note: Team attribution requires time entries logged after the latest update. Older entries without a created_by value will be attributed to the workspace owner in the team view.

Showing time to clients

By default, the time log is hidden from clients in their portal. To share it, open the project, click Edit, and toggle Time log visibility to Visible to client. The client will then see a full time log in their portal project view, including the hours budget progress bar if one is set.

This is useful for hourly engagements where the client pays for time and wants transparency. Leave it hidden for fixed-price projects or retainers where the hours breakdown is internal.

Tip: Showing the time log builds trust with hourly clients — they can see exactly what was worked on and when, which reduces invoice disputes.

Retainer time logging

If the project's client has an active retainer, a retainer dropdown appears in the timer and manual entry form. Select it to log the time against the retainer's hours-included allowance for the current billing cycle. See hours used vs included in the Retainers view.

Expenses

Open any project and click the Expenses panel to log costs associated with the project.

Logging an expense

Click + Add expense and fill in:

  • Description — what was spent on
  • Amount — the cost in rands
  • Category — Travel, Software, Subcontractors, Equipment, Other
  • Date — when the expense was incurred
  • Billable — whether to pass this cost on to the client
  • Receipt — optional file upload

Adding expenses to invoices

Billable expenses work the same way as time entries — select them in the Expenses panel and click Add to invoice or Create invoice from selected.

Profitability

All time (at hourly rate) and expenses feed into project profitability calculations in Analytics. Accurate time logging = accurate margin data. The scope creep alert in each project fires when actual costs (time + expenses) exceed the linked quote amount.