Debt, advances and invoices
When a client counts as owing, where an advance lands, and how an invoice connects to logged hours.
Debt and advance — strictly by invoices
«Owes» is a formal fact: invoiced + client-billed expenses − received. Logged work without a счёт is not debt. It's shown per project, not summed across the client.
«Unbilled» is its own reminder: work logged, no invoice yet. It's shown per project (not summed across the client) and only while the project is active — in the archive it's already closed, so the reminder is gone. Bill it or write it off — your call, but the figure won't get lost.
«Advance» appears only when received exceeds ALL logged work — billed and unbilled. Money merely covering not-yet-invoiced hours is not an advance.
Client pool. With several projects for one client, payments never need moving between them — the pool nets them. Debt is shown per project (invoiced − received on each): if one project was paid more than it invoiced, the surplus pays down the siblings' debts — the client total still adds up, but «owes» is no longer the same figure stamped on every card. «Unbilled» is each project's own too. Advance (received beyond all the client's work) also lands on its own project — where the money came in beyond the work; if the overpayment first covered the siblings' debts, what's left shows as the advance.
The pool also guards «Paid» against double counting, but in one case only: when the client's payments are logged on a SIBLING project. Those paid hours then count as covered by the transfers and aren't valued again — the project card says so with a «check payment» hint. When the payments sit on the project itself, your marks don't disappear: the larger of the two valuations wins.
Invoices and entries
A Bureau invoice is built from uninvoiced journal entries on the client's projects — including the whole team's entries: the client pays for the team. The period in the invoice editor doesn't "create" amounts — it only filters this pool by entry dates; the default takes everything uninvoiced.
Every invoice line expands into its source entries — untick any to exclude it. An entry is valued at the rate in effect on its date.
A draft doesn't touch entries. Sending the invoice switches its entries to "invoiced" — from that moment they count as Invoiced, start melting the client's advance, and can never enter another invoice. Double billing is impossible by construction: an uninvoiced entry stops being uninvoiced exactly when you send.
Manual lines (a retainer, a fixed-fee stage, an agreed sum) go into the invoice without entry links — they never change journal statuses.
Marking "paid" registers the money: a payment for the invoice total lands in the project ledger (dated today) and the invoice's entries become "paid" — no need to log the payment by hand. Undoing the mark removes that payment and returns the entries to "invoiced". The road back is honest too: deleting an invoice rolls back everything — a paid one first loses its payment and paid statuses, then the entries return to "not invoiced", ready to bill again. A deleted invoice leaves behind no money and no statuses.
What the client sees
The share-link report is from their side of the table and, unlike the strict «Owes» on your card, it shows the accruing debt: the balance is delivered work (all billable hours, at the rate of their date, capped at the fix) − received; signs are theirs («−» means «you owe»). The client sees the debt grow as work is done, not only after an invoice — and you invoice at period end. So hours you won't bill must be marked non-billable, or they land in the debt. Client-billed expenses add to their balance; your private write-offs never do.
Next: income and the rate you actually get, the year goal and the daily norm, and all the calculation rules.