Professional services
Charges
One record for anything a client could be charged for — an hour, a ticket, an expense, a fee — carrying what it was worth and, separately, what happened to it.
A charge is one thing a client could be charged for. It carries what the work was worth at your rates and, as a separate fact, what happened to it commercially. Keeping those two apart is the single most useful thing here, and it is what an hours-and-invoices model cannot express.
Value and invoicing are different facts
A client on a £5,000 retainer who received £7,000 of work received £7,000 of work. A tool that records only what it invoiced reports them as £5,000 — and a tool that refuses to record work it cannot bill loses the £2,000 entirely, after somebody typed it in. Both are wrong in the same direction, and the second is worse.
Where charges come from
| Source | Measured in | Where it comes from |
|---|---|---|
| Recorded hours | Minutes | A time entry — against an item, a project, a ticket, or nothing |
| Tickets | A count | A ticket, where the agreement counts incidents |
| Expenses | Money | An approved expense claim, at cost or with a markup |
| Fixed fees | Money | An ad-hoc charge somebody raised |
| Recurring | A count | Seats, devices, endpoints — a counted quantity for a period |
| Adjustments | Any | A manual credit or charge, with a reason |
The client is on the charge, not derived from the work
An hour of advice that belongs to no project and no ticket still belongs to somebody. Deriving the client from a project works right up until the case that matters — which is why the old workaround was a catch-all project per client that existed only to hold hours nobody wanted to file.
What it was worth
Hours are priced at the billing rate in force on the day the work was done — never today's. A rise in July does not restate June. An expense is already a value, so there is no rate to multiply it by. An incident or a unit needs a price from an agreement, because no arithmetic produces what a callout costs from somebody's hourly rate.
Work nothing could value is named, never counted as zero
Valuing it at zero writes off work that was done; valuing it at a fallback rate puts a number on a document nobody agreed. It is listed with its date and reason instead, and it is disproportionately the work worth asking about.
The six outcomes
Every charge resolves to exactly one of these, and none collapses into another:
| Outcome | Invoiced? | Counts as delivered? | What it means |
|---|---|---|---|
| Pending | Not yet | Yes | Nobody has decided. Reporting it as free work would be a lie about the deal. |
| Covered | No | Yes | It drew down something finite the client had bought. |
| Included | No | Yes | A flat fee or subscription covered it, and depleted nothing. |
| Billed | Yes | Yes | It reached an invoice. |
| Absorbed | No | Yes | Above a cap the agreement says is not chargeable. |
| Not chargeable | No | No | Written off by a decision, with a reason. |
Covered and included are not the same, and absorbed is not a write-off
Covered depleted an allowance and included did not — merged, a flat-fee client reports as having consumed nothing. And absorbed is a consequence of the contract while a write-off is a decision about one charge; collapsing those makes “how much do we give this client for free” unanswerable, because it mixes deliberate goodwill with the structure of the deal.
Everything but a write-off counts as delivered. Work covered by a retainer, included in a flat fee or absorbed above a cap was still done and still cost something to do.
What freezes a charge
Only reaching an invoice. The client is holding a copy, and a charge that changed underneath would make the document and the record disagree with nothing on screen to say why — correcting a billed charge is a credit note and a new charge, exactly as correcting an invoice is.
A charge that merely drew down an allowance is not frozen: the drawdown ledger is reversible by design, so deciding otherwise posts a reversal and gives the balance back.