Because the invoice is assembled by hand. Somebody exports time, matches it against the contract, decides what to write off, and types the result into an invoice — for every client, every month.
The write-offs are the expensive part: they are decided under time pressure and disappear into a lower total rather than being recorded as write-offs.
Loop holds what was sold and what was delivered; Books raises the invoice from that against the rate card, with write-offs recorded as write-offs. Nothing is re-keyed, so the invoice and the delivery record cannot disagree.
Work in progress is visible during the period rather than discovered at billing, so an engagement running over is a conversation while it can still change.
It will not decide what to write off. It records the decision and who made it, which is what turns realisation into something you can manage.
And it does not track time. Loop does; Books reads it.
Realisation — what you billed against what you could have billed — becomes a reportable number rather than a feeling.
Recurring retainers bill on schedule, and the time consumed against them shows margin per month rather than per year.
Products, not integrations. Each one reads the same record, so a join is a permission rather than a sync job with a mapping screen behind it.
Loop, against the sold lines. Books prices and bills it.
Yes, recorded rather than absorbed into a lower total.
Yes, on one customer, on separate schedules.
Half an hour on your own numbers is usually enough to say whether Books is the right place to start.