HeadHoncho

What is left after the sub is paid

Subcontractor payout tracking here is one arithmetic, printed rather than asserted: money in, minus parts, split by the terms on the job, and the whole thing cross-foots exactly.

Finance is three boards over the same rows: a finance report of money by job, a technician report that settles up with one person, and a job source report that says which source paid for itself. Nothing on any of them is a stored total.

The Finance board doing subcontractor payout tracking: revenue, profit, the company cut and the technician total. 1
  1. Settle up records what you actually paid a worker, against what the ledger says is owed.

Expenses, and who paid them

An expense is money that left for a reason, and it carries an expense type — your own list, seeded with Parts and extended in Settings. The field that matters most is who paid it: when a worker bought the part out of pocket, the business owes them that money back, and the product records both facts at once.

That is one place a naive sum goes wrong. A worker-paid part is both money the business spent and money it now owes the worker; counting both would double it. The rule is that the expense is recognised when the expense is recorded, and the reimbursement only records that it is owed — so reimbursements are excluded from the expense total while the labour cuts are included, because labour exists nowhere else.

The split on a job

Subcontractor payout tracking rests on one arithmetic, run the same way everywhere it appears. The job's money comes in, everybody's outlay comes back to them, the rest divides by the terms on the job, and the total of what everyone takes home equals the money that came in — exactly, not within a tolerance.

FigureHow it is derived
Gross revenueWhat the client paid, before the payment rail took anything
Processing feesWhat the rail kept. Its own line, shown only when there are any
Gross profitRevenue less all parts and fees, whoever paid them
Net profitGross profit less the cuts and rates that pay for labour
The worker's totalTheir cut, plus the parts they bought back in full — what they are owed, not what they earned
The company's shareA residual: whatever the other claimants leave, plus the company's own parts back
Why the company's share is a residual

No company rate is stored anywhere. Two claimants at fifty per cent both want to round the same half-cent down, and a system that computes every share independently loses it — which is how a split of a job can fail to add back to the job. Deriving the last share instead puts the odd cent on the house, and makes the cross-foot an equality. A tolerance would pass the exact job this is built to catch.

A job's own page and the expandable row on the Jobs panel print this working rather than the answer, one block per claimant, ending in the check as a sentence. Where a cut was imported as a number rather than as a term, the rate is read back off the finished split and marked as approximate, because history arrives as a figure and there is no term to quote.

The one signed balance

Every report about a person leads with one number and says which way it points, in words as well as in colour:

Under it sit the two halves that make it — what is owed to them, and what of the company's they hold — so the figure can be checked against the columns rather than trusted. The direction is decided in one place and imported by every surface that prints a balance: the report on screen, the PDF, the CSV and the statement in the Team drawer all say the same sentence, because a sheet read once on a phone must not require remembering which way a sign points.

Money always prints its cents. Two decimals, everywhere, on every surface.

The closing rate

The closing rate on a worker's report is closed jobs divided by closed plus canceled, over the jobs that worker was given in the window. Two consequences follow, and both are deliberate:

A sheet built only from jobs that moved money would show a closing rate of 100% for everybody, which is the reason the report is drawn from the jobs and joins the money to them rather than the other way round. Every line on it carries its status, and a job that moved no money prints dashes rather than zeros — in the CSV those cells are left empty, because a spreadsheet sums a zero and skips a blank.

Still owed is not the same as balance

Two money columns on the technician's book answer different questions, and the difference is what makes a settle-up trustworthy.

ColumnWhat it answersWindowed by the date range?
BalanceWhat the period came to, over the rows inside the rangeYes
Still owedWhat the ledger says this job still owes, net of every settlement that ever covered itNo

An obligation does not stop existing because somebody moved the date range. A settle-up that skipped a cut from March because the panel was showing August would be a silent non-payment, so the range decides which jobs are listed and never what one of them is owed. A settled job prints a dash rather than zero: zero is a figure and gets read as one.

Settling up

The technician report is a catalogue you scan — who is owed what, how many jobs are unsettled, when they were last paid — and a row you open onto that person's per-job book. Four actions sit on it, and only one of them moves money:

A worker who is holding your cash and is owed cuts is squared by one settlement for the difference, whose lines cover the receivable and the payables together — never two settlements that happen to net. Running a settle-up twice settles nothing the second time, because the first left nothing outstanding; that stays true when a cut is posted an hour later, which a same-day lock would have swallowed. Voiding a settlement releases every job it covered in the same transaction, and the lines survive as the record of what the void undid.

When a cut posts, and when it moves

Why nothing is stored

Money rows are editable in place — a payment can be corrected, an expense amended — so every balance, every profit and every statement is a sum computed over the live rows each time it is asked for. A stored total would be a second source of truth, and it would be wrong from the moment somebody fixed a typo, with nothing to tell it so. The edits themselves are recorded in order, so there is an audit trail underneath.

The practical version of that rule: if a figure here surprises you, open it. Every board reaches the rows it was computed from, and the job page prints the arithmetic for one job in full.