Checking plumbing supply invoices

A plumbing supply invoice mixes dozens of small fittings with a few expensive items, and the price you pay is often a trade discount off the merchant's list.

Check my invoice

Free · No account · We don't keep the file

Who you buy from, and how it's billed

Two things are easy to miss: a discount that wasn't applied, and a unit that changed between the price list and the invoice.

Plumbing merchants
Most lines, at a trade price that's a discount off their list, or a net price agreed for your account.
Pipe
PVC, copper and poly by the length (often 6 m) or by the metre, and poly in coils.
Fittings and valves
Elbows, tees, couplings and valves each, or by the bag or box.
Hot water and fixtures
Hot water units, tapware, basins and toilets: few lines, big prices, often with a delivery fee.
Drainage
Stormwater pipe, pits and grates, and the fittings that go with them.

What CostCode checks, and from when

Anything it can't check yet shows as Unverified, with the reason. It's never marked as fine. Why a line is unverified

  1. From your first invoice

    GST over ten per cent or no ABN on a tax invoice.

    • The same invoice sent twice

      Checked
      The same file again, or the same merchant and invoice number, holds the invoice before you pay it twice.
  2. Once a supplier has billed you a few times

    A price up on what you've paid before, once there are three earlier prices. Kept between you and CostCode.

  3. Once your prices are in

    Import each supplier's price list from a spreadsheet or a PDF, or let CostCode suggest one from invoices you've already uploaded, for you to confirm.

    • Your trade discount not applied

      Checked
      Load your net prices, after your discount, and each line is checked against them. A line billed at list, or at a smaller discount, is held when it's at least $25 and 3% over.
    • Pipe billed per length when you agreed per metre

      Checked
      Held as billed in a different unit. It may be the same money (a 6 m length at six times the metre price): CostCode shows both and leaves that to you, and nothing goes to the merchant unless you send it.
    • Fittings by the box against a price each

      Asks you first
      A box can hold any number, so the line shows as Unverified, asking how many are in one. Billed per bag against a price each, it's compared on price, and anything over is kept for you until you confirm it's the same item.
    • A hot water unit above the agreed price

      Checked
      Checked like any line. On one expensive item the 3% floor is the one that decides: see the example below.
    • Freight and delivery fees

      Checked
      Checked against the fee you agreed, flat or as a share of the goods. With nothing agreed, the line shows as Unverified, with the reason.

A worked example, made up

With your pricesSample · made up

Sample Plumbing Wholesale (made up)

SAMPLE-6021

Held

10 Sep 2026 · 1 line · $1,333.20

$62.00

over what you agreed (5.39%)

The line on sample invoice SAMPLE-6021, checked against the agreed price list
ItemAmountYour prices
250L electric hot water unit1 EA × $1,212.00$1,212.00Above the agreed rate$62.00 over
Above the agreed rate. Agreed $1,150.00 per unit on the price list from 1 Jul 2026
Not sent: supplier email is off. CostCode writes the query, quoting the agreed price list, for you to copy into your own email. Nothing reaches the supplier unless someone in your team sends it.

1 unit at $1,212.00 against an agreed $1,150.00 per unit is $62.00 over (5.39%). That's at least $25 and 3%, the default floors, so the invoice is held.

The kind of gap a discount applied at the wrong percentage leaves. On one expensive item it clears the dollar floor easily, so the percentage decides.

Billed at $1,180.00 per unit instead, the line would be $30.00 over (2.61%): more than $25 but under 3%, so it wouldn't be held.

Made up: the supplier, the invoice and every price in this example are invented to show the arithmetic. They aren't market prices.

Plumbing supplies schedule of rates templateDWV and stormwater pipe, fittings, PEX

What CostCode doesn't check

  • A discount taken off the whole invoice. A discount line isn't a billed item, so its percentage isn't checked, and it isn't spread back across the lines. Each line is compared on its own price, so an invoice billed at list with one discount at the bottom can be held until you release it with a reason.
  • That the fittings billed are the ones delivered, or used on the job.
  • A rebate the merchant pays you later.
  • A list price less a percentage: CostCode checks the net prices you load, and doesn't work out a discount for you.

Questions

Our merchant gives us a discount off list. How do we load that?

Load the net prices you actually pay, after the discount, from a spreadsheet or the merchant's PDF price list. CostCode doesn't work out a percentage off a list price for you.

Will it hold an invoice over a few cents?

No. By default a line is only held when it's at least $25 and 3% over the agreed price, and you can change both in Settings.

What if there's no price list for a merchant yet?

Lines with nothing to check against show as Unverified, with the reason, never as fine. Once there are three earlier prices for an item from that merchant, a price up on them holds the invoice for you, and that comparison is never quoted to the merchant.

Got a supplier invoice handy? Check it now.

About ten seconds. No account. We don't keep the file.

Or start free: 20 invoices a month, no card