Complete systemBuilt to be run. Everything below is yours to use, with or without us. Run it with AI gives you the evidence to pull and a prompt that already knows your scope; Understand it is the same method in reading order.

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.

  1. Name the period and the unit
  2. Gather the evidence
  3. 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.

Example
The period: April to June 2026, jobs that finished in it
What one row is: one job, from the quote we sent to the last payment against it
The decision this is for: whether to raise service-call pricing, or leave the price alone and change how extras get agreed on site
Write these three lines before anything else
The second line matters more than it looks: a retainer, a matter and a job are all valid units, and the only fatal choice is changing your mind halfway. The third is what keeps the exercise from being filed. They also feed the prompt below.

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.
How to talk about this with the team
A job-by-job margin review reads, from the inside, as an audit of individual people: the estimator who priced it, the crew who ran over, the person who discounted the invoice. Say this, or something like it, before you pull a single export.
Say: “I want to see what each job actually earned, from the price we quoted to the money we banked. I already know some of them lost money. What I don’t know is whether that’s the price, the way the work runs, or what happens after we invoice — and those are my problems to fix, not yours.”
Then do this: show the ledger to whoever priced and ran the work before any decision is made, and let them tell you what the export missed — the day lost to a site that wasn’t ready, the extra the customer was promised, the deposit that never got matched to the job.
The findings are about how work gets priced and billed. If one turns out to be about one person’s judgment, that is a management conversation and it does not go in the brief.
Know what the evidence will not show you
Work delivered and never invoiced. An invoice nobody raised leaves no record anywhere. The only traces are recorded hours, a supplier invoice, a job note, or somebody’s memory — which is why the walkthrough is evidence here rather than colour.
Why a discount was given. The accounting system shows a smaller invoice. It never shows whether that bought a relationship or bought silence about a job that went badly.
Cost that was never coded to the job. The return trip, the phone call, the apprentice. If it went to overhead it will not appear against the job, and the job will look better than it was.
Jobs too young to score. A job that finished last week has a final invoice nobody has had a chance to pay. Exclude it and say how many you excluded, rather than letting it drag the collection gap.
A finding built only from the accounting export is worth less than one confirmed against the job records and the person who priced the work.

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.
Before any of it leaves your building
Check first: client material may be covered by your engagement terms or privacy law. Sending it to a third-party assistant is your call, with your lawyer if you have one.
You probably don’t need the names: dates, counts, and who did what are usually enough. Swap in Client A, Client B before you upload.
Check the setting once: consumer tiers may train on what you send; business tiers usually don’t. Worth checking before you start.
None of this is a reason to skip the exercise. It’s the reason to spend ten minutes on the first upload deciding what needs to be in it.
Can’t find the export button?

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.

Don’t have any of this together yet?

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.

Your prompt

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.
01

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.

1
Score every finished job. Five columns from the quote to the cash, one row per job, reconciled to the accounts before anyone reads anything into it.
2
Split the difference into four gaps. Cost above estimate, delivered and never invoiced, invoiced below what was earned, invoiced and never collected.
3
Prove the four are all of it. They have to sum to intended margin minus realized margin. That identity is what stops a dollar being counted twice.
4
Decide per gap. A price, a rule about who can say yes on site, a rule about discounting, or payment terms. Four gaps, four different kinds of answer.

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.

02

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.

03

The four gaps

Everything between intended and realized margin is one of these
The quote gap: the job cost more than you said it would. The money was never in the price.
The billing gap: you delivered work and never invoiced it. Earned, never asked for.
The write-down gap: you invoiced below what you earned, on purpose.
The collection gap: you invoiced and the money has not arrived.
Full method, including where each one is found in the records and the three sizing rules, in Where the Margin Went.
04

The identity

The arithmetic that makes the brief hard to argue with, and the one thing most reviews skip.

It has to close
Intended margin = quoted price − estimated cost.
Realized margin = collected − actual cost.
The four gaps = (actual − estimated cost) + (quoted − invoiced, split into never billed and written down) + (invoiced − collected).
Work added later goes in both columns — priced into quoted, costed into estimated — or the extra somebody did as a favour reads as an overrun and you go and fix your estimating.
Those two differences are the same number by construction. If the gaps do not close on it, something is missing or something is double-counted, and you find that out before anyone else does.
05

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.

06

Four gaps, four kinds of decision

Match the fix to the kind
Quote gap: a number. Nearly every job of a kind running over means the price is wrong; a few jobs carrying most of it means go and read those jobs.
Billing gap: who is allowed to agree to extra work in front of a customer, with a threshold, a price list, and a way to record it in seconds.
Write-down gap: who may discount, against what, and who sees it afterwards.
Collection gap: deposits and terms first, chase cadence second, and a credit decision where the money sits with one customer.
The full reasoning, including the three tests before concluding that a kind of work should stop, is in Reprice It, Fix It, or Stop Taking It.
07

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
Example — the margin leak brief, on one page
Scope, decision: 41 jobs finished April to June by an 11-person electrical contractor; whether to raise service-call pricing or change how extras get agreed on site.
Intended vs realized: $183,700 intended (30.0% of quoted), $77,900 realized (12.7%). The difference is $105,800.
Quote gap, $33,200: $19,100 of it is second trips on service calls across fourteen jobs; $9,400 is the one commercial job everyone was already talking about.
Billing gap, $27,600: fourteen jobs where extra work was agreed on site and never invoiced. Median $1,450.
Write-down gap, $10,700: four discounted invoices, three of them the same customer, $7,900 between them.
Collection gap, $34,300: one tenant fit-out holds $28,400 of it, 74 days past its final invoice.
The four gaps sum to $105,800, which is exactly the difference between intended and realized margin. The decision asked for gets a real answer: change how extras are agreed first, since $27,600 of the leak costs nothing to close, and leave service-call pricing alone until the second-trip cause has been given a quarter to show whether it was the price at all.

How often to run it again

Recommended cadence
Monthly. A job has to be finished, and its last invoice has to have had time to be paid, before it can be scored. A month gives you enough finished jobs to see a distribution; a week gives you three jobs and noise.
The first run is the one that surprises you. Every run after it is doing a different job: checking whether the fixes moved the measures this brief set, and catching what is new. That is a shorter exercise than the first pass, and it is the point at which this stops being a one-off and starts being a habit. How to put it on a schedule →

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.