Ledgr/Documentation/Time tracking

Time tracking

For work billed by the hour. Log it as it happens, then let the invoice pull it in rather than retyping it at month end.

Plan.

Time tracking is included from Starter upwards. See pricing.

Log an entry

  1. Time Tracking → New entry
  2. Pick the customer or project and describe the work

    The description is what ends up on the invoice line, so write it for the customer rather than for yourself.

  3. Enter the date, hours and rate

    The rate defaults to the one on the project, or to the person's own charge rate if you have set one. Amounts accept the formats people actually paste — 1 500,50 and R1500.50 both work.

  4. Set the billable flag

    Leave it on for client work. Switch it off for internal time you still want recorded but never invoiced.

An entry can be edited after it is captured. That sounds obvious and was not always true: a mis-typed 8 could only be deleted and re-captured, and deleting needs a permission that capturing does not — so the person who made the mistake often could not fix it.

Rates, and why they are frozen onto the entry

Each entry stores the rate it was logged at, and the cost rate behind it. This matters more than it sounds: without it, repricing a project would silently restate the value of every unbilled hour ever logged against it — upwards, on work already done at the old rate.

Charge and cost rates live on the person, in their user record, so they fill themselves in rather than being typed on every line. A rate that has not been set is treated as not set rather than as zero, and the reports say so — a zero cost rate reports every job at 100% margin, which is a flattering number and a false one.

Approval

Hours can be approved before they can be billed. Approving records who approved it and when, and it can be undone — all three of which are the point, because an invoice to a customer rests on that approval and "who signed this off" needs an answer.

Approve in bulk from the list. Approving one row at a time is the reason approval workflows get skipped.

Both billing routes respect it.

Hours reach a customer two ways — pulled onto an invoice, or imported onto a job card. Only unapproved-safe entries travel either way, so a business running approvals cannot have them bypassed by whichever route somebody happened to use.

Projects and budgets

Group hours under a project and give it a budget — in hours, in rands, or both. That is what makes budget-against-actual and a project margin possible at all, rather than a total with no yardstick against it.

Unbilled hours are worth watching as their own number: it is work you have done and not yet charged for, and on a bad month it is most of your cash.

Turn hours into an invoice

  1. Start an invoice for that customer

    Invoicing → New, choose the customer.

  2. Pull in unbilled time

    On the line items step, choose to add time entries. You get the customer's unbilled, billable entries; tick the ones for this invoice.

  3. Check the lines

    Each entry arrives as a service line — hours × rate — which you can still edit, merge or discount before sending.

  4. Send

    On send, those entries are marked billed so they cannot be invoiced twice.

Corrections

If an invoice carrying time entries is voided, the entries return to unbilled and can be put on the replacement invoice. An entry a job card is already holding cannot be deleted or marked billed behind that job card's back.

Logging time on site

Time entries are one of the five things that work with no connection. Log the hours where the work happened; they send themselves when you are back in signal.