The problem with the month-end scramble
In most small agencies, billing works like this: hours arrive by email, someone eyeballs them, a spreadsheet multiplies hours by a rate somebody remembers, and an invoice goes out. It works — until a consultant's rate changed mid-month, or two timesheets covered overlapping periods, or the client disputes hours and nobody can say who approved them. Each failure has the same root cause: the steps between “hours worked” and “money billed” were implicit.
Make them explicit and the failures stop being possible. There are exactly four.
The four checkpoints
- 1Submit — hours against a named person and periodA timesheet is a claim: this consultant, this period start and end, this many hours. Whether the consultant submits it through a portal or your team records it, the claim must name its person — anonymous hours cannot be approved, linked, or defended.
- 2Approve — the logged act that authorizes payApproval is not a formality; it is the moment your agency accepts an obligation to pay for those hours. It should be performed by someone holding that specific authority and it should leave a log entry. When a client disputes hours six weeks later, the approval record is your answer.
- 3Link — attach the timesheet to its placementHours have no dollar value until they meet rates, and rates live on the placement: the bill rate the client agreed to and the pay rate the consultant agreed to. Linking the approved timesheet to the right placement is what makes the arithmetic deterministic instead of remembered.
- 4Settle — post receivable, payable, and marginSettlement turns approved, linked hours into three ledger postings at once: the client receivable (what you will invoice), the worker payable (what payroll owes), and the margin between them. One action, three entries, always in balance.
Why a double-entry ledger beats a spreadsheet
A spreadsheet cell can be edited; a ledger posting cannot. That single property does a surprising amount of work. Because settlement writes receivable, payable, and margin together, the books cannot drift — there is no state where you invoiced a client for hours you never owed the worker, or vice versa. Because postings are append-only, your invoice always traces to the exact receivable it bills, which traces to the exact timesheet and approval behind it.
Mistakes still happen — a timesheet settled against the wrong placement, hours approved in error. The correction path is a reversing entry: a balancing posting that negates the original, carries a required reason, and sits on the record next to what it corrected. History is never rewritten; it is annotated. That is the difference between books an auditor samples and books an auditor reconstructs.
Guardrails worth stealing even if you stay on spreadsheets
Two rules prevent most billing pain. First, record bill and pay rates together, at placement creation, and refuse a placement where pay exceeds bill — negative margin should be impossible to enter, not merely embarrassing to discover. Second, separate the authority to approve hours from the authority to post money. The approver vouches that the work happened; the settler moves the obligation onto the books. One person may hold both roles in a small shop, but the system should know they are different acts.
How PoPayOne runs it
PoPayOne wires the four checkpoints as one screen. Consultants submit through the worker portal, or your team records hours directly. Approval is capability-gated and logged. Linking offers only the consultant's active placements. Settlement posts all three amounts to a double-entry, append-only ledger, and reversal is its own gated action with a mandatory reason recorded on the audit trail. Money actions run behind single-use, resource-bound confirmations, capability checks, and a dual-approver rule on large disbursements — enforced now; MFA step-up is enforced in real-money mode.
And once the receivable exists
A clean, approved receivable is also what funding advances against. PoPayOne's funding marketplace is in early access: during the pilot it runs entirely on simulated bank and insurer partners — no real money moves — so you can exercise the full flow, from settled timesheet to advance to repayment, before real-money rails roll out.