How should an electrical contractor tie material receipts to specific jobs?

Applies to: United States · Updated 2026-10-01

Put the job number on each purchase as it is made: on the supply-house order, on the counter ticket before leaving the counter, or with the ticket's photo in a capture app. Keep every ticket; the statement summarizes them. Match each statement line to a coded ticket, record each ticket line to its job, trace returns and credits to the job charged, and clear late tickets and pending credits before treating a job's material cost as final.

Where does the job number go, and who puts it there?

The job reference goes on the purchase document when the purchase is made. A job added later from memory is a guess, and material coded to one materials account to sort out later gives job costs nobody can defend. 48 CFR 9904.411-40, a federal Cost Accounting Standard that binds only the federal contracts it covers, sets the same condition for those contracts: material may be allocated directly to a cost objective, such as a job, provided that objective was specifically identified at the time the material was purchased or produced.

Use one of these capture points for every purchase:

  • An order placed against a job. Give the job number as the order's job or purchase-order reference, and check that it prints on the ticket.
  • The counter ticket. The buyer writes the job number on the ticket before leaving the counter, splitting the lines if one ticket serves two jobs.
  • A capture app. The buyer photographs the ticket and enters the job with the image; if the app has no job field, the job number goes on the ticket first.

The buyer captures the job, because they know where the material is going; the office codes from that record and never guesses.

What changes when several people buy?

Make the job number a condition of buying: no job number, no charge to the account. Each working day, whoever codes purchases lists every ticket that arrived without a job and asks its buyer that day, while they remember. A ticket still uncoded goes on the owner's exception list, never to a job by guess and never into a general materials account. If its statement is entered or paid before the job is named, post the ticket to a holding account such as "Materials - job not yet known" and move it to the job when it is named.

How do the counter ticket, the charge account and the statement fit together?

On a charge account, each ticket records one purchase, and the periodic statement lists the tickets, returns and credits posted, with the balance owed. The ticket can carry the job and the detail of what was bought, so it supports the job cost; the statement is what the supply house bills you on, so it drives payment. If your statement shows ticket numbers, dates and amounts but not the material or the job, recording it as one amount to a materials account erases the job detail, and discarding the tickets makes the loss permanent.

Whether a supplier's statement on its own supports the purchases on it for tax purposes is covered in a related question.

How do you reconcile a statement to the coded tickets?

Where you buy mainly on charge accounts, keep every ticket, paper or image, filed by supply house in date order. When a statement arrives, work through it in this order:

  1. Match each statement line to a ticket in your file by ticket number, date and amount, and mark both.
  2. Confirm each matched ticket shows a job, with lines split where it serves more than one job.
  3. Clear what is left over as the table below shows, then record the coded tickets.
What you findWhat to do
A statement line with no ticket in your fileAsk the supply house for a copy of the ticket showing what was taken, when and who signed for it, then ask that person for the job. Until the job is known, post the line to a holding account such as "Materials - job not yet known" and list it on the exception list; move it to the job when it is named. Raise a line nobody can account for with the supply house as an unexplained charge.
A ticket in your file with no statement lineKeep it on a pending list; it may post on the next statement.
A ticket with no jobAsk the buyer the same day; it stays on the exception list, and in the holding account once its statement is entered or paid, until a job is named.
A return or credit on the statementMatch it to the return ticket and to the job the original ticket was charged to.

How is the coded purchase recorded so the cost reaches the job?

For a job to show its material cost against its revenue, the books need one job identifier on both sides: on each purchase line and on each customer invoice for the job. Choosing that dimension is covered in a related question. In QuickBooks Online, Intuit's help page "Add existing expenses to a project" (updated August 3, 2026) has you select the project for each expense item in the Customer / Project dropdown. The page's prerequisites are to turn on "Organize all job-related activity in one place" under Advanced in Account & settings; to turn on "Make expenses and items billable", "Track expenses and items by customer" and "Show Items table on expense and purchase forms" under Expenses; and to create at least one project. The page's prerequisites also carry a note, "Once you turn this on, you can no longer turn it off", so settle the tracking dimension under that related question first. Whatever the platform, record each ticket's lines, not the statement total.

When the cost lands depends on your accounting basis. On the accrual basis a purchase is recorded when it is incurred; on the cash basis, when it is paid. In the books that works out as follows:

  • Accrual basis. Enter each ticket as a bill when it reaches the office, coded line by line to its jobs. The statement payment is applied to those bills and is never coded to materials again.
  • Cash basis. Code and file each ticket; it becomes a recorded cost when the statement carrying it is paid, and that payment is split line by line to each ticket's job. If you enter tickets as bills anyway, the payment is applied to the bills and not coded a second time.

Intuit's "Enter and manage expenses in QuickBooks Online" (updated August 5, 2026) says to enter an expense when you have already paid for a business cost, and a bill if you plan to pay in the future.

What does one purchase and one return look like from ticket to job cost?

On 3 March an apprentice buys wire and boxes for job 2417 on the account: ticket 4471, 1,240.00. They write 2417 on the ticket and photograph it. On 10 March they return 180.00 of unused boxes; the return ticket carries 2417 and 4471, and credit memo CM-882 credits 180.00 less an 18.00 restocking charge. The 31 March statement lists both, and the bookkeeper matches them to the filed documents. The statement is paid on 15 April.

On the accrual basis:

DateAccountJobDebitCredit
3 MarJob materials cost24171,240.00
3 MarAccounts payable: supply house1,240.00
10 MarAccounts payable: supply house162.00
10 MarRestocking charges241718.00
10 MarJob materials cost2417180.00
15 AprAccounts payable: supply house1,078.00
15 AprBank1,078.00

On the cash basis nothing is posted in March; the coded ticket and credit memo wait in the file, and the payment carries both to the job:

DateAccountJobDebitCredit
15 AprJob materials cost (ticket 4471)24171,240.00
15 AprRestocking charges (CM-882)241718.00
15 AprJob materials cost (CM-882)2417180.00
15 AprBank1,078.00

Either way, job 2417 carries 1,078.00 of material cost: 1,060.00 of material (1,240.00 less 180.00) and the 18.00 restocking charge. Each document reaches the books once: in March on the accrual basis, in April on the cash basis. Had CM-882 appeared only on the April statement, the cash-basis payment on 15 April would be 1,240.00 for the ticket alone, and the credit and restocking lines would return to job 2417 in the split of the later payment, even if the job had closed by then.

How does material drawn from stock reach a job?

Each path material takes to a job needs its own document:

PathDocument that puts the cost on the job
Bought against a named jobThe coded ticket
Bought for shop or truck stock, later used on a jobA draw record made when the material is taken
Bought for one job, then moved to anotherA transfer note that credits the first job and charges the second

Stock purchases name no job, so they go to your stock record, and the draw record is the only evidence of which job used the material. Choosing a costing method and valuing stock are a separate question.

A draw record carries the date, the job number, the item and quantity, who took it and the cost from your stock record. Post each draw as a move, not a new cost: debit job materials cost for the job and credit the account the stock purchase was recorded to, at the stock record's cost, so the material is counted once. That purchase reaches the books when its ticket is entered on the accrual basis, and when its statement is paid on the cash basis. For truck stock, the electrician logs each draw against the job in the capture app or a truck log the office collects weekly. A transfer note carries the date, item, quantity, cost, both job numbers and who moved the material, and is posted at the cost first charged; material returned from a job to stock gets the same note. An unrecorded move leaves the first job carrying cost it never used.

How do returns, restocking charges and credits get back to the right job?

A credit posted only at account level leaves the job overstated, and the account totals never show it. Keep the chain in this order:

  1. At the counter, write the job number and the original ticket number on the return ticket, and ask for the credit memo to cite the original ticket.
  2. Add the return to a pending-credit list by job until the credit appears on a statement.
  3. Code the credit to the job the original ticket was charged to, and leave any restocking charge withheld from it on that same job.

FAR 31.205-26, which binds only federal contracts, requires material cost to be adjusted for credits, including credits for material returned to vendors; in job costing the credit goes to the job the material was charged to, as in step 3.

A ticket or credit that arrives after the job is closed and billed is neither dropped nor parked in a general account. Code it to the original job, record it in a period that is still open (on the cash basis it reaches the books with the payment it changes), reopen the job in your software if needed, and note it as a post-close adjustment so the change to the job's final figure is visible. On a fixed-price job it changes only your cost unless your contract adjusts the price for it. If the job was billed on a time-and-materials, cost-plus or change-order basis, a late ticket or credit may change what the customer owes; settle it under the contract's terms.

How do purchases by field electricians and apprentices keep their job reference?

Field buyers capture the job at the counter like anyone else; what the office then needs depends on how they paid:

  • Company card. The buyer photographs the receipt with the job number the same day. Have the card statement come to the office straight from the card issuer, match each line to a coded receipt, and ask the cardholder for any receipt that is missing. The statement can at most prove payment, which IRS Publication 583 says does not by itself establish a deduction.
  • The buyer's own money. The reimbursement claim carries the ticket or its image, the job number, the date, what was bought, the amount and the sign-off of someone other than the buyer, such as the owner or a supervisor.

IRS Revenue Ruling 2005-52, applying Treasury Regulation section 1.62-2, says an arrangement meets the substantiation requirement if it requires each expense to be substantiated to the employer within a reasonable period of time, with information sufficient to identify the specific nature of each expense and to conclude it is attributable to the employer's business activity. The reimbursement claim above records that information, but it does not settle whether your arrangement meets the regulation's other requirements. Collecting receipts from crews and matching receipts to card and bank transactions are separate questions.

How do you keep change-order material separate so it can be billed?

On a fixed-price job the tickets measure cost only. On a time-and-materials or cost-plus job they also support the customer's invoice, so each billed line must trace to a legible ticket; what support the customer can ask to see is set by your contract. Documenting costs you buy for a customer and rebill, in general, is covered in a separate question.

Give each change order its own code under the job, such as 2417-CO3, from the moment the change is agreed or directed, and code its material there from the first purchase. Base-scope material stays on the base job; material bought for the change before the code existed moves across on a transfer note.

AIA Contract Documents explains that, under AIA's standard general conditions, a change order is a written agreement on the change in the work and any adjustment to the contract sum and contract time, and that a construction change directive may be used where the owner and contractor have not agreed on proposed changes in the contract sum or time. AIA adds that while a directive directs the work, the changes to scope, cost and time still must be incorporated into the contract by change order. Under other forms your change clause governs; either way, keep a change-order file: the written directive if the work began on one, and the signed change order, with the tickets, draws and transfers coded to it and the invoice lines they support.

What must be true before a job's material cost is final?

Treat a job's material cost as final only when all of these hold:

  • Every ticket coded to the job is matched to a statement line, through the statement covering the job's last purchase.
  • No ticket for the job is waiting on a statement, and no statement line in that period is uncoded.
  • Nothing in the holding account could belong to the job.
  • Every return for the job has its credit, and the pending-credit list shows nothing for it.
  • Stock draws, transfers in and out, and material returned to stock are posted.
  • Company card lines and reimbursement claims for the job are in and coded.
  • Change-order material sits on change-order codes, with the documents for each billed line in the change-order file.
  • On the cash basis, every statement carrying the job's tickets has been paid and split to the job; until then, read the job's material from its coded tickets, not from the books.

Anything arriving later follows the post-close rule above.

How should the job file be kept?

Keep the job's material documents together and findable by job number after it closes: tickets or images, statements with their match marks, return tickets and credit memos, draw and transfer records, reimbursement claims, and change-order files. IRS Publication 583 says to keep records in an orderly fashion and in a safe place, and that all requirements that apply to hard copy books and records also apply to electronic storage systems, which must index, store, preserve, retrieve and reproduce the records in legible format and give a complete and accurate record accessible to the IRS; a system that does not comply may bring penalties unless the paper originals are kept in a way that lets you and the IRS determine your correct tax (Revenue Procedure 97-22 has the details). How long to keep the file is a separate question.

Sources
  1. Legal Information Institute, Cornell Law School — 48 CFR § 9904.411-40 - Fundamental requirement, undated
  2. Internal Revenue Service — Publication 583 (12/2024), Starting a Business and Keeping Records, revised December 2024
  3. Intuit Inc. — Add existing expenses to a project in QuickBooks Online or Intuit Enterprise Suite, updated August 3, 2026 (shown as 8/3/2026)
  4. Intuit Inc. — Enter and manage expenses in QuickBooks Online, updated August 5, 2026 (shown as 8/5/2026)
  5. Acquisition.gov — FAR 31.205-26 Material costs, FAC 2026-01, effective 03/13/2026
  6. Internal Revenue Service — Internal Revenue Bulletin 2005-35 (Rev. Rul. 2005-52), August 29, 2005
  7. AIA Contract Documents — Construction Change Orders: Fundamentals Every Party Should Know, undated

Machine-readable: markdown · JSON