The Margin Leak Audit
Score every job you finished in one period from the price you quoted to the cash you banked, find the four gaps between the margin you intended and the margin you got, and decide what changes. This is the complete system in one place: the checklist, the ledger, the arithmetic that proves nothing is missing, and the exact prompt, so you can run it on your own work this week. One example runs through the whole page — an eleven-person electrical contractor with forty-one finished jobs — so every blank has a filled-in version next to it.
You need one period of finished jobs with what you quoted and what they cost, the invoices and payments against them, and an hour with whoever prices the work. The hardest part is usually agreeing what counts as a cost, and that argument is worth having once.
- Name the period and the unit
- Gather the evidence
- Run the prompt
One period of finished work. Recent enough that people remember the jobs, old enough that the last invoices have had time to be paid. For most businesses that is the quarter before last.
Everything below runs on that one period. Scoring a period keeps the arithmetic honest: the same set of jobs under every gap, and no quiet mixing of a good quarter’s pricing with a bad quarter’s collections. Annualizing anything you find is a separate claim, made deliberately and said out loud.
What business data to gather
Gather it all before you interpret any of it. Reading as you collect is how the first job you already had a feeling about becomes the conclusion.
From the systems
- Every job that finished in the period, with the date it finished and the customer
- What you quoted for each one, plus every change order against it — signed, or agreed on site and priced later
- The cost you estimated when you set that price, as the estimate stood then
- Actual cost per job: hours by person, materials, subcontractor invoices, anything bought for the job
- Your loaded labor rates, or the payroll figures to build them from
- Every invoice raised against those jobs, and every payment received, with dates
- The aged receivable as of the day you pull it, and the date itself
From the people doing it
- A walkthrough of how a price gets set, and by whom
- Who can agree to extra work in front of a customer, and what happens next when they do
- The jobs where extra work was done and never invoiced, in their own words
- Who may discount an invoice, against what, and who sees it afterwards
- Which customers habitually pay late, and what has been agreed with them informally
- Which jobs they would rather the business stopped taking, and why
Stuck on the evidence?How to talk to the team about a margin review, what the accounting system will never show you, and how to get exports into an assistant.
Getting the files out
- Most systems have an Export or Download button. Your accounting system, job or project software, and time tracking each have an export or reporting tab; the aged receivable is a standard report in every accounting package.
- Email: copy the thread, or forward it to yourself.
- Can’t export it? Screenshot it — these assistants read images.
- Nothing exports? Write down dates, counts, amounts, who did what.
Which assistant, how many chats
- ChatGPT, Claude, Gemini, or Copilot — pick one that can run code on a spreadsheet, so every count is computed rather than guessed. The paid tiers of ChatGPT and Claude both can.
- One conversation per process. Upload the evidence first, then the prompts, in order.
- New process, month, or account? Start a fresh chat.
- Upload failing or replies drifting? Send less at a time.
Paste this into the same assistant, with your own tool and the records you’re after filled in. It walks you to the right screen rather than sending you to documentation.
You don’t need exports to start. Copy the interview version instead: paste it into ChatGPT, Claude, or whatever you use, and it asks you for whatever evidence it needs and works from what you can describe when a file isn’t there.
Paste this into any AI assistant along with your job, cost, invoice, and payment exports. It runs the whole method in order and will not hand you a single leakage percentage.
I want you to help me find out where the margin went on the work I finished in a period I have not picked yet (ask me first). What counts as one row: not settled yet — a job, a matter, an engagement or a project; ask me first. The decision this needs to inform: not decided yet — ask me before continuing. Your job is not to tell me my margin is below an industry average or to recommend software. Your job is to account for every dollar between the margin I intended and the margin I actually got, and to say which of four different problems each dollar belongs to. I will give you exports: the jobs that finished in the period with what I quoted and estimated, the costs recorded against them, the invoices I raised, the payments I received, and an aged receivable. Work through these stages, in order, as your working: 1. SET THE FRAME AND INVENTORY THE EVIDENCE Read back the period, what one row is, and the decision this is for. If I haven't told you one of these, ask. Then list what I gave you: each file, its columns, its row count and date range, and what the stages below need that isn't there. Tell me whether the labor in my cost data is at a wage rate or a loaded rate. If you cannot tell from what I sent, ask me that one question and stop, because every actual cost in the ledger depends on the answer. 2. BUILD THE LEDGER One row per finished job, with five columns: quoted price including every change order, the cost estimated when that price was set, actual cost, invoiced, and collected as of the date I pulled the evidence. Work agreed beyond the original scope goes into the quoted price at what it should have been charged and into estimated cost at what it was going to take: both columns or neither, because a job where extra work went into neither reads as an overrun when the real problem is that nobody invoiced it. Where I have told you about extra work and not given you a price for it, say so, price it at my normal rates if I gave them to you, and label the row. Exclude jobs that had not finished, and jobs whose final invoice is too recent to have been paid; report how many you excluded, in which category, and what they were worth. Reconcile the invoiced column against revenue for those jobs in the accounting export and the collected column against payments received. Report any failure to tie, in dollars, before you interpret anything. 3. SPLIT THE DIFFERENCE INTO FOUR GAPS Intended margin is quoted minus estimated cost. Realized margin is collected minus actual cost. Account for the difference with exactly four gaps: THE QUOTE GAP - actual cost above the cost estimated when the price was set. THE BILLING GAP - work delivered and never invoiced. THE WRITE-DOWN GAP - invoiced deliberately below what was earned. THE COLLECTION GAP - invoiced and not collected. Every dollar belongs to exactly one gap. Where one gap caused another, write the cause next to the dollars rather than adding them in both places. Then show that the four gaps sum to intended margin minus realized margin for the period. If they do not, say what is missing instead of adjusting a figure to make it close. 4. FIND THE PATTERN For each gap, say whether it is concentrated in a few jobs or runs through nearly every job of one kind. Group by type of work, customer, who priced it, and who delivered it, and report the grouping only where the number of jobs in a group can support it. Compare every job against the spread of my own finished jobs in this period, never against an outside figure. 5. CHALLENGE YOURSELF For each gap: what evidence contradicts it, what else could explain it, and what I would need to pull to confirm it. Check in particular for costs coded to the wrong job, deposits not matched to the job they belong to, work invoiced in a different period from when it was done, and estimates revised after the job went wrong, which makes a quote gap disappear on paper. 6. DECIDE, PER GAP For each gap, one of: reprice this kind of work, change what is included at the price, change who can agree to extra work on site and what must happen when they do, change who may discount and against what, change payment terms or take deposits, make a credit decision about a specific customer, or stop selling this kind of work. Cheapest to make first. For every decision, what it is worth against the gap it addresses, who owns it, and the result that would reverse it. HOW TO REPLY Do the stages above as your working. Do not show me the working. If a stage needs an answer from me, ask that one question and stop. Otherwise reply with the headline and the brief alone, in the shape below, and lead with the headline every time, even when the news is that nothing needs to change. Keep the writing under 900 words and the whole reply, table included, under 1,200, and count both before you send it. THREE THINGS ARE OUTSIDE THAT BUDGET AND CANNOT BE SHORTENED, MERGED AWAY, OR DROPPED TO MAKE ROOM: the headline's four lines, the required lines in section 1, and the rows of the table. Write those first, then spend what is left of the budget on the prose. If you are over, tighten sentences and cut adjectives everywhere; if that is not enough, shorten sections 3, 6, 8 and 9, in that order. Never buy words by dropping a finding, a row, a number, or a required line. Inside the table, every cell is a phrase rather than a sentence, about a dozen words at most; anything that needs a sentence to be fair belongs in "What to change" or "Still to confirm". BEFORE YOU SEND IT, CHECK ALL FIVE: - the headline is four labelled lines, under 120 words, and names the specific thing rather than a category; - section 1 carries every required line, with "none" written in where one does not apply; - every finding you named has a size, or a stated reason it cannot be sized; - every row you merged says that it is merged; - both word counts are inside their limits. If any of these fails, fix it and take the words from the prose. If I say "show your working", show the ledger and every rule you applied. THE HEADLINE Open with this. Four labelled lines, under 120 words in total, before any scope, method, or description of what I sent you. Someone who reads only these four lines has the answer. - The finding. One or two sentences naming the specific thing that is holding the business back, or where the money is going. Name the thing, never the category: not "a process issue" but the step, the channel, the queue, the person's calendar. Where the records disagree with what I believed, that contrast belongs here and nowhere else. - What it costs. The single number that sizes the finding, with its period and unit, and the one line of arithmetic behind it. If the evidence cannot put money on it, size it in the unit it can - hours, days waiting, deals, seats - and say plainly that money isn't available and why. - Do this first. The cheapest fix, what it costs, and who does it. Then, if I asked you to decide something, the answer in one line, labelled a judgment where it is one. - How sure. "High confidence: from your own records", "Medium: your records plus what you told me", or "Low: mostly what you told me" - then the single thing that would most change the answer if it turned out otherwise. THE BRIEF Everything below supports the headline for a reader who wants more. Expand it; do not restate it in the same words. 1. What this ran on. Labelled lines, not prose. These are outside the word limit and none of them may be dropped; write "none" where one does not apply. - Scope and period. - The decision this is for. - Scored: what you included, and how many. - Excluded: how many, why, and what they were worth. - Evidence pulled: the date the records were pulled. - Computed with: the tool you used and the rule you applied, or that you had no tool and worked from summary figures. 2. What the evidence covered. Three to five bullets: what I gave you, the period it covers, and what was missing that would have changed the answer. 3. What we found. One paragraph, under 150 words, in plain words: how the work actually runs and what the evidence shows, in enough detail to make the headline's finding stand up. 4. The numbers. Intended margin and realized margin for the period, each as dollars and as a percentage of quoted, and the four gaps in dollars, kept separate and shown to sum to the difference between them. For each: how it was computed and which rows it rests on. 5. The ledger. One table, one row per job, ordered by the size of its total gap: the job, quoted price, estimated cost, actual cost, invoiced, collected, and which gaps it contributes to. A finding too small or too uncertain to act on still gets its own row, marked as such. Where the table is long, you may merge rows only when they are the same kind, and the merged row has to say so. Never drop one. 6. What to change. Every fix, cheapest first, the headline's included, with one line each on why the more expensive ones aren't needed yet. 7. How you'd know it worked. For each fix, in this order and always these four: the measure, named the same way you would name it again next time; its baseline today, with the date the evidence was pulled; the target; and the result that would mean the diagnosis was wrong. Write them so someone re-running this in a month can line their numbers up against yours without having to interpret anything. 8. Still to confirm. Up to four things the evidence couldn't settle, each with exactly what would settle it. 9. Not claiming. Up to five claims you are refusing to make, one line each. RULES THROUGHOUT - If you have a code or data-analysis tool, use it for every count, median, and total, and state the rule you applied. If you don't, say so and ask me for summary tables instead of raw exports. - Never invent a number that is not in my evidence. Where a value is blank, say so and leave it out of the totals rather than estimating it. - Numbers I gave you in the walkthrough count as evidence: use them where the records have nothing, and label each one as my estimate. - Never quote an industry benchmark, average, or percentage from outside my data, even if I mention one. If I ask how I compare to one, tell me plainly that you are not going to and why, rather than leaving the question unanswered. - My exports often cut the same figures more than one way. Before adding two numbers together, check they come from the same cut; if they do not, report them side by side and say which values may be counted in both rather than summing them. - Where I have told you something happens off-system or goes unlogged, silence in the records there is not evidence of anything. Say what would need to be logged. - Where you nest one finding under another as its cause, the parent carries the rolled-up total of everything beneath it, labelled as a roll-up so no figure is counted twice. Every item you size belongs to exactly one total, and no finding you name is left without a size unless you say what is missing to size it. - Keep observed facts, inferences, and unknowns separate. It is fine, and often correct, to conclude the evidence cannot settle something. - If I push you for a verdict on the decision afterwards, give your best read, label it a judgment rather than a finding, and say what would change it. - Never give me a single "margin leakage" figure without the four gaps beside it and the jobs behind each one. - Never compare my margin, my overruns, or my collection times to an industry average or a published range, even if I ask. Compare a job to the spread of my own finished jobs. - A job is not scored until it is finished and its final invoice has had time to be paid. Say which jobs you excluded and why rather than including them at a partial figure. - Annualizing anything you find is a separate claim. Report the period I gave you, and if I ask for a year, say what it assumes about the mix repeating. - Where the only evidence for work delivered and never invoiced is what I told you in the walkthrough, keep it, label it as my estimate, and say what would need to be recorded for the next run to measure it. - Do not treat a discount as an overrun or an overrun as a discount, even where one caused the other. - Do not recommend software as a fix for a gap until you have said what the rule or price change would be without it.
What you’re looking for
Not whether the business is profitable, which the accounts already answer. Which work is profitable, and where the money you priced into a job stopped being yours.
The output is a small set of decisions backed by your own jobs, each with what it is worth and what would reverse it. There is no single leakage percentage in it, and no comparison to anybody else’s business.
Why the month can’t answer this
A profit and loss statement is an average of the jobs you chose to take. It tells you how the averaging came out. It cannot tell you which choices to make differently, because every job in it — the one that made thirty percent and the one that lost money — arrives as the same blended figure.
That is why the unit here is the job rather than the period, and why the first system is about building a row rather than about finding anything. Score the Job, Not the Month is the full version, including the four rules that make a row honest and the four traps that quietly ruin one.
The four gaps
The identity
The arithmetic that makes the brief hard to argue with, and the one thing most reviews skip.
One bad job, or every job of a kind
The same gap of the same size means two different things depending on how it is spread, and this is the question the brief exists to answer. A gap concentrated in three jobs is three stories to go and read. A gap running through nearly every job of one kind is a property of that work, which makes it a pricing decision or a process decision rather than a bad month.
Compare a job only against the spread of your own finished jobs. The overrun ranges and realization rates in circulation come from companies selling the software that fixes them, with no stated sample and no shared definition of what counts. Forty of your own jobs tell you what normal is here.
Four gaps, four kinds of decision
What the finished brief contains
In it
- One row per finished job, from quoted price to collected
- Intended and realized margin for the period, in dollars and as a percentage
- The four gaps, sized separately, each tied to named jobs
- The reconciliation showing the four close on the margin they explain
- Whether each gap is concentrated or systemic, and in which kind of work
- A decision per gap, cheapest first, with what would reverse it
- The jobs excluded for being unfinished or too recent, and what they were worth
Not in it
- A single “you’re leaking X% of revenue” figure
- Any comparison to an industry average overrun or realization rate
- An annual number presented as though the period’s mix repeats
- A gap sized without the jobs it rests on
- Software recommended before the rule or price change it would replace
How often to run it again
Run it once and you have a job ledger, four sized gaps, and a decision against each. Run it again next month and most of the work is already done: the ledger is a repeat of the same query, and the job is checking whether the gaps moved the way the first brief predicted they would.
