Recording Time and Expenses
A time entry is one piece of work: who, when, how long, and what it was for.
Time attaches to anything
An entry points at whatever it was for using the same pattern subtasks and the activity stream use. That means time can be booked against a project, a work order, a support case, an asset or any other datastore, without the time module needing to know what those things are.
Practically: you do not need a project to record time. If your business books time against jobs, cases or machines, the module works against those directly.
Rates are stored on the entry
Both the bill rate and the cost rate are resolved once, when the entry is made, and stored on the row.
This is important and occasionally surprising. If a rate card is edited in March, January's entries keep January's rates. The alternative — looking rates up at report time — means editing a rate card silently restates every historical margin, so last quarter's profitability changes because somebody updated a price. Storing the rate makes history stable.
The consequence to be aware of: correcting a genuinely wrong rate on past entries is a deliberate operation, not a side effect of fixing the card.
Billable and non-billable
Capture non-billable time too. Utilisation is only meaningful if the denominator is real, and a system that records only billable hours cannot tell you where the rest went.
Timesheets
Entries are grouped into a timesheet for a period, submitted, and approved or rejected as a unit. The submission carries the approval decision, so you can tell approved time from time merely entered — which is what invoicing should depend on.
Expenses
Expenses follow the same shape: recorded against the same scope, marked billable or not, and carried through the same approval. Where an expense is rebilled with a markup, record both the cost and the rebill so margin remains visible.
Practical advice
Make entry quick and daily. Time reconstructed at the end of the month is fiction, and no amount of downstream sophistication rescues an inaccurate input.