Time Tracking

Record the time your team spends on client work — with timers that can start and log themselves as your team works through tasks, flexible manual entry, and links to the exact task and workflow step the time was spent on. Then turn unbilled hours into billing line items in one click.

All Your Time, In One Place

The Time page shows every entry across your practice — who logged it, for which client, on which task, and whether it's non-billable, billable, or already billed. Filter by team member or billing state, and search to find exactly what you need.

Step through your week a day, a week or a month at a time, and entries group under day headings with a total on each one and a running total for the whole period — a timesheet you can actually read, rather than a wall of rows. Widen the range to a quarter, a year, or all time and it falls back to a sortable, paged table.

The same view appears as a Time tab on every client and every task, scoped to just that record — so when a client asks "what have you been doing for us?", the answer is one click away.

Time page listing time entries grouped by day with daily totals, filters and billing state badges

The List, Your Way

Choose the columns you want and the order they sit in — rename a heading, hide the ones you never read, or drop the whole table to full width. Out of the box the list stays deliberately compact: a single Entry column carries the description with the client, task and workflow step underneath it. Prefer them as separate columns? Switch them on and they're yours. Your layout is remembered, and it's yours alone — nobody else's view changes.

Fix a wrong time without opening anything. Click straight into the start, end or duration in the table and type — "1:30", "90" and "1h 30m" all work, and changing the duration on a timed entry simply moves the end. Entries built from several work blocks, and anything already billed, keep the full dialog as their editor, so a quick correction can never quietly flatten the detail behind it.

Each row also carries its own actions: pick up where you left off by continuing an entry as a new timer, duplicate yesterday's entry for today, or delete one outright.

Log Time Your Way

Every entry is built from work blocks. Enter a start and end time and Sodium works out the duration, or just type "1h 30m" if you don't remember the exact times. Add as many blocks as you like — a morning session and an afternoon session on the same job stay together as one entry.

Link entries to a client, a task, or even a specific workflow step — so you know the 45 minutes went on "Reconcile bank transactions", not just "VAT Return". Linking is optional by default, or flip a setting to require a client or task on every entry.

Time entry dialog with work blocks, client, task, and workflow step links

A Timer That Follows Your Work

Start a timer from the Time page, from a client, from a task, or from the focus panel while you work — already linked to whatever you started it from, right down to the workflow step you had open. A pulsing indicator in the top bar shows it ticking wherever you are in the app.

Pause for lunch and resume after — the timer records each stretch of work as its own block, so interruptions never inflate your hours. When you're done, Stop & Log opens a pre-filled entry with the elapsed time, links, and work blocks already in place. And if you close the dialog without saving, the timer simply stays paused — your time is never lost.

Running timer indicator with pause, resume, and Stop & Log controls

Timers That Run Themselves

Or skip the buttons entirely. Switch on automatic timers and time tracking follows your team's work: starting a workflow step starts a timer linked to it, and completing the step stops the timer and logs the time. Move on to the next step and the previous timer is logged for you — no forgotten timers, no writing up hours at five o'clock from memory.

Tasks without a workflow work the same way — start the task, the timer starts; complete it, the time is logged. Every auto-logged entry is a normal time entry, linked to the task and step, editable like any other.

From Hours to Invoices

Mark entries as billable and give each one an hourly rate — or let Sodium resolve it automatically, from the entry itself, to the team member's rate, to your practice default. Rates are captured when the time is logged, so later rate changes never rewrite history.

When it's time to bill, pick a client with unbilled time — Sodium shows you who has how much — and convert their entries into billing line items. Choose one combined line per hourly rate or an itemised line per entry, preview the amounts, and confirm. Billed entries lock automatically, and deleting a billing line releases its time back to unbilled — nothing falls through the cracks.

Bill Time dialog converting unbilled entries into billing line items with a preview

Estimated vs Actual

Every task can carry a time estimate. Give each workflow step an estimate and the task's budget adds itself up from the steps that actually apply to that client; tasks without a workflow take an estimate directly — set once on the recurring task, inherited by every task it creates.

The Service Time report then compares those estimates with the hours your team actually logged — per service, with a per-client drill-down. If your £40-a-month bookkeeping client is quietly consuming six hours every month, this is where you find out. It's the evidence you need for repricing conversations — backed by recorded time, not gut feel.

Working Patterns — What You Expect of People

“Everyone should be doing 37.5 hours a week — is everyone hitting that?” It's a simple question, and answering it by opening each person's timesheet in turn is nobody's idea of a Monday morning.

Set up working patterns: the hours you expect someone to log on each day of the week, saved under a name — Full time, or Part time (Mon/Wed/Fri). One is your practice default, so most of the team needs nothing set at all; put the exceptions on a pattern of their own, from the settings screen or straight from their user record.

Because a pattern holds hours per day rather than one weekly total, a part-timer is measured against the days they actually work. Their Tuesday isn't a gap — it's simply not their day, and the Team Time report treats it that way. Bank holidays for your region come out automatically, along with any closure days you've recorded yourself, so a Christmas shutdown doesn't land as a week where the whole practice looks behind.

Working Patterns settings tab: a full-time pattern marked as the practice default with 7.5 hours Monday to Friday totalling 37.5 hours, and a part-time pattern working Monday, Wednesday and Friday only, totalling 22.5 hours

Team Oversight

Admins see every running timer across the practice — who's timing what, for how long, and whether it's paused. Spot the timer someone left running overnight and pause it for them, preserving the real time worked.

Each team member can have their own hourly rate, managed from a single settings screen — new billable entries pick up the right rate automatically.

Not everyone should see what everyone else is charging. Switch a team member to own time only — from the same settings screen or from their user record — and their Time page narrows to just their own entries. The team-member filter disappears, they can't log or reassign time to anyone else, billing time to clients is out of reach, and the practice-wide Service Time and Team Time reports are closed to them. Everyone else carries on seeing the full picture.

Off Until You Want It

Not every practice tracks time — and if yours doesn't, Sodium doesn't nag you about it. Like many features in Sodium, time tracking is a single switch in settings, off by default. Leave it off and you won't see a mention of it anywhere in the app — no timers, no Time page, no Time tabs, no rate fields. We don't believe in cluttering your interface with things you don't use.

Turn it on and everything appears at once: the Time page, timers, client and task tabs, rates, billing, and reporting. Change your mind later and it all tucks away again — your recorded time is kept, just hidden.

Want to learn about other capabilities?

Explore all features

Have questions or suggestions?

Get in touch