An invoice with no job on it is just money leaving. The fix isn't discipline at billing time; it's getting the job printed on the ticket at the counter, by the supplier's own system, before your crew has a chance to forget. Nearly every house will do it. Almost nobody asks.
What you're asking for
- A job account (or sub-account) per active project. A child of your master account with the job name on it. Purchases charged to it print the job on the ticket and group by job on the statement.
- A required job reference on counter sales.Many houses can flag your account so the counter can't ring a sale with the PO / job field blank. That turns their system into your first line of discipline.
- An authorized-buyer list. Exactly who can charge to the account. Update it the day someone leaves.
How it goes at each kind of house
- One-account houses (Graybar, Ferguson, Rexel, Border States, F.W. Webb, White Cap): ask your branch or inside sales rep once and it applies at every branch. Send the active job list; send updates when jobs open and close.
- Branch-model houses (CED, City Electric, Hajoca): the setup lives at the branch. If your crew buys at two CED branches, tell both.
- Locally owned houses (Winsupply, Johnstone): each location is its own company with its own system. Same ask, made at each one.
- Big-box (Home Depot, Lowe's): there's no sub-account to set up. The PO / job name prompt at checkout is the whole mechanism, and it has to be entered every time.
The naming rule that survives the counter
Use the name your crew actually says out loud. SMITH-KITCHEN survives a busy counter; “Job 2024-117” comes back as 2024-171 half the time, and a street address comes back as whatever the counter heard. Use the same name at every house — the ledger on your side matches tickets to jobs by that reference, and five spellings of one job is five jobs.
Watch the SHOP bucket
Once job references are required, the failure mode changes: instead of blank, the field says SHOP. A shop ticket for actual shop stock is fine. Ten a week is job material hiding in the wrong bucket — cost you carried and never billed. If your shop spending looks bigger than your shop, that's where it went.
Let RevnuPros keep the materials ledger for you.
Snap the ticket at the counter — the AI reads the supplier, invoice number, and line items, and files the purchase to its job with unbilled material flagged.