Ledgr/Documentation/Time tracking

Time tracking

Watch the lesson: Track time against a customer project (1:36).

For work billed by the hour. Log it as it happens, then bill it onto an invoice in one step rather than retyping it at month end.

Plan.

Time tracking is included from Starter upwards. See pricing.

Log an entry

  1. Time Tracking → Add Entry
  2. Pick the project and describe the work

    The project carries the customer, so picking it is what decides who is billed. The description is what ends up on the invoice line, so write it for the customer rather than for yourself.

  3. Enter the hours and the date — and a rate, if this hour is different

    Leave Rate for this entry blank and the hour is priced by the task's rate, then the person's own charge rate, then the project's — the form says which will apply. Type a rate only when this one hour is billed differently, such as an agreed call-out. Amounts accept the formats people actually paste — 1 500,50 and R1500.50 both work.

  4. Set the Billable switch

    It starts from the project. 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. Whoever captured it can correct a mistyped figure without needing permission to delete.

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.

Each person's charge and cost rate is set once, under Time Tracking → Rates, so it fills itself in rather than being typed on every line. It is the same figure Job Cards uses for that person's labour — one rate, two screens. 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 approved entries travel either way, so a business running approvals cannot have them bypassed by whichever route somebody happened to use. The job card names the reason when it refuses an entry, rather than quietly leaving it out of the list.

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. Pick the project

    On Time Tracking, choose the project in the filter above the entries. It needs a client — that is who the invoice goes to.

  2. Bill time → invoice

    Ledgr raises a draft invoice for the project's client carrying every approved, billable hour not yet billed — each one a service line, hours × the rate it was logged at — plus any rechargeable costs on the project.

  3. Check the draft and send it

    Open it in Invoicing. You can still edit, merge or discount the lines before sending.

The hours are marked billed the moment the draft is created, not when it is sent, so a second press cannot bill them twice.

Corrections

If an invoice carrying time entries is voided, the entries — and any costs it recharged — return to unbilled straight away and go on the next invoice you bill for the project. An entry a job card is already holding cannot be deleted or marked billed behind that job card's back.

Hours logged on a workflow card

An hour worked on a workflow card is an ordinary time entry with the card recorded against it — not a separate tally kept on the board. That is what makes work planned on a board become billable hours on a client's project with nobody re-keying anything, and it is why the board's figures and this module's can never disagree: there is only one set.

Two consequences worth knowing:

  • The card needs a project. Ledgr refuses to log against a card linked to none rather than picking one for you — that would attribute somebody's afternoon to a client who never asked for it.
  • The permission is the time-tracking one, not a workflow one, because what is being written is a time entry. A permission names the thing being written rather than the screen it was written from.

Finding an old entry

The entry list is searched and paged on the server: type in the search box above it and Ledgr matches the description, the task and the project across every entry you have, so an entry from two years ago is found rather than only one on the page already shown. The list says how many match — "Newest 100 of 312" — and loads older ones as you ask, because a list that silently stops at a hundred while looking complete is worse than one that says there is more.

Logging time on site

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

Common problems

What you seeWhat to do
An hour is missing from the invoice "Bill time → invoice" made Only a project's unbilled, billable, approved hours are billed. Any one of those three explains an absence: check the Billable switch, whether it has been approved, and whether it is already on another document or a job card.
A job card will not import an hour A job card imports approved hours only, and names the reason rather than quietly leaving the entry off the list. Approve it here first — in bulk from the list.
An entry will not delete A job card is holding it, or it is already marked billed. Ledgr names which. Detach it from the job card, or void the invoice — voiding returns its entries to unbilled so they can go on the replacement.
An entry cannot be edited Its hours have been billed. The figure is on a document a customer has, so correcting it means correcting the document.
Every project reports a 100% margin Cost rates are not set on the people. Set them under Time Tracking → Rates — on the person, not the project, so the same person costs the same on every project. Reports show a rate that is not set as "not set" rather than as zero.
A rate on an old entry is not the project's current rate Correct, and deliberate. Each entry keeps the rate it was logged at, so repricing a project does not restate work already done at the old rate.
Time logged offline has not appeared for a colleague It syncs from the device that captured it. Until then it is on that device's list badged Waiting to sync — see offline.