US Lumberyard Supplier Invoice to Excel for Contractors

Extract line items from Builders FirstSource, 84 Lumber, US LBM, and other US lumberyards into Excel with UOM, sales tax, and job-cost coding handled.

Published
Updated
Reading Time
31 min
Topics:
Industry GuidesConstructionUSExcelQuickBookslumberyardsupplier invoicesjob costing

Extracting line items from a US lumberyard supplier invoice to excel comes down to three things the rest of the workflow keeps tripping over: reading US construction units of measure correctly (BF, MBF, MSF, MLF, SQ, BDL, CY, LF, EA), separating sales tax according to the job state's reseller-vs-consumer treatment, and applying CSI MasterFormat cost codes to each line as it lands in the spreadsheet. Get those three right against a Builders FirstSource, 84 Lumber, US LBM, BMC, Carter Lumber, or regional-yard invoice and the Excel intermediate imports cleanly into QuickBooks Online, Sage 100 Contractor, Foundation, Buildertrend, JobTread, or Knowify with the right job, phase, and cost code already attached.

AI extraction that reads the supplier's layout does this without per-supplier templates. That matters most for the regional independent yards on your account list — the yards no template library covers — because their invoices look nothing like Builders FirstSource's and a layout-aware extraction treats them the same.

A note on the abbreviation that breaks the most workflows before they start: the M in MBF, MSF, and MLF is the Roman thousand, not million. A line that reads 1.250 MBF means 1,250 board feet — not 1.25 board feet and not 1.25 million. A unit price of $740.00 / MBF is $740 per thousand board feet, which is $0.74 per board foot. Generic invoice-extraction tools that don't know this lose a factor of 1,000 somewhere in the line and the contractor finds out at month-end when job profitability looks wrong.

The reality the searcher is in: multiple supplier accounts across three to ten yards, PDF invoices arriving by email and from supplier portals across the week, layouts that vary across chains and even within a chain across operating brands, the same supplier invoicing differently for jobs in different states because of resale-state versus consumer-state tax treatment, and at the end of all of it a job-cost spreadsheet that needs lines coded to a CSI division and a six-digit cost code. The contractor's real problem isn't OCR; it's getting that multi-supplier, multi-format flow into structured line items with the UOM and tax structure preserved.

What follows is the working reference for that. The US construction UOM grid done correctly. The resale-state-vs-consumer-state tax structure as a recognition pattern, not a tax-by-state primer. Credit memos and restocking fees as a first-class extraction pattern. Per-trade vocabulary across framing, drywall, roofing, insulation, concrete, plumbing, and electrical. The line-description to CSI MasterFormat division to six-digit code mapping. The Excel column structure that lands cleanly in each downstream system. And honest framing of where supplier portal exports work, where templated tools work, and where the all-suppliers extraction path is the only complete answer.

The US Lumberyards and Building-Materials Suppliers You're Extracting From

Every active US contractor has an account list, and the names on it are what shape the extraction problem. Knowing what each chain ships, how its operating brands invoice, and where its portal helps or doesn't is half the battle.

Builders FirstSource sits at the top by national footprint — a Fortune 500 building-materials supplier with a presence in most metros and the broadest cross-trade catalog the contractor encounters. The invoice layout is consistent across regions, which means an extraction set up against a Builders FirstSource invoice in Dallas reads the same line structure in Tampa or Phoenix. 84 Lumber runs a parallel national footprint with its own layout family. US LBM is the one most contractors get tangled on, because US LBM is an umbrella — Hines, Wallboard Tools, Universal, Sunbelt, and a long list of regional operating brands invoice under their own names while consolidating up to US LBM at the corporate level. To the contractor, that means three invoices that look like they came from three different suppliers may all roll up to the same parent account. The extraction has to read each operating brand's layout, and the AR side has to know they net.

BMC, Stock Building Supply, Carter Lumber, and Foxworth-Galbraith round out the national-or-multi-regional chains most active contractors encounter on at least one job. Each runs its own invoice layout family. Regional independent yards sit alongside the chains on almost every contractor's account list — the local yard the framer prefers, the truss plant that supplies the engineered package, the specialty hardwood supplier. These are precisely the yards templated extraction tools fail on, because no template vendor maintains a library entry for every regional yard in every metro.

The big-box pro counters belong in the same conversation but live in their own deep-dive articles. The Home Depot Pro Desk and Lowe's Pro are part of the same weekly purchasing flow for most contractors; we've covered the HD-specific path in Home Depot Pro Xtra purchases to Excel and QuickBooks so it doesn't compete with the cross-supplier scope here. ABC Supply is the dominant roofing distributor, and the roofing-specific workflow lives in its own piece — touch it here only to acknowledge that an active roofer's account list extends beyond the lumberyards into the roofing-specialty side.

Supplier portals deserve an honest framing. Some chains do ship a portal that exposes historical invoices and lets the contractor export a transaction list to CSV. Builders FirstSource has portal export in some accounts; a handful of US LBM operating brands offer something similar for larger commercial customers; the big-box pro counters expose purchase history through their pro programs. Portal exports are sometimes fine for AR summary use — pulling a list of unpaid invoices, reconciling a monthly statement at the document level. They typically don't give the per-line-item granularity a job-cost system needs, because the exports skip the line descriptions, the UOM and unit price, the line-level tax breakdown, and the credit-memo cross-references. They also cover only the chains the contractor has portal access to, which leaves the regional yards out entirely. The PDF extraction path is the all-suppliers, all-formats path that works regardless of whether a portal export exists.

If your search led you here from the UK side, the country-specific companion lives at UK builders' merchant invoice line items (Travis Perkins, Jewson, Howdens) — the UK chains, the metric units (m, m², m³), and UK VAT mechanics make that article correctly UK-scoped. Everything that follows here is US: board feet, US-state sales tax, US accounting systems.

Reading US Construction Units of Measure Off the Invoice

US construction units of measure are where generic invoice-extraction tools visibly fail and where the rest of the workflow either holds together or doesn't. The base unit is the board foot. According to Ohio State University Extension's measuring standing trees fact sheet, a board foot is a piece of wood containing 144 cubic inches — a board 12 inches square and one inch thick. Every quantity and price below builds from that.

The grid as it appears on lumberyard invoices:

  • BF — board foot. The base unit for lumber volume. A 2x4 stud eight feet long contains 5.33 board feet (1.5-inch actual thickness × 3.5-inch actual width × 96 inches ÷ 144).
  • MBF — thousand board feet. The M is the Roman thousand, not million. A line that reads 1.250 MBF extracts as a quantity of 1,250 board feet. A unit price of $740.00 / MBF means $740 per thousand board feet, which is $0.74 per BF. Stick lumber and engineered lumber are most commonly priced this way.
  • MSF — thousand square feet. Same Roman-thousand convention applied to area. Drywall, OSB, plywood, paneling, and other sheet goods are routinely invoiced in MSF. A line reading 2.400 MSF is 2,400 square feet.
  • MLF — thousand lineal feet. Same convention applied to linear measure. Trim, molding, copper tube, conduit, and wire are commonly invoiced this way. A unit price of $105.00 / MLF converts to a per-LF unit price of $0.105 — a three-decimal-place shift.
  • FBM — foot board measure. An older synonym for BF that still appears on some yards' invoices, especially from regional independents. Treat it as identical to BF.
  • SQ — roofing square. 100 square feet of finished roof coverage. One bundle of architectural asphalt shingles covers approximately one-third of a square, so three bundles ≈ 1 SQ.
  • BDL — bundle. Drywall sheets bundle in twos; asphalt shingles in bundles; insulation batts in bundles. The bundle is the shipping unit; the area or piece count is what the takeoff cares about.
  • CY — cubic yard. Concrete ready-mix is invoiced per CY of a specified mix design.
  • LF — lineal foot. The base unit for trim, dimensional lumber by length, conduit, pipe, and wire when not in MLF.
  • EA — each. Devices, fittings, fasteners, hardware, and engineered-lumber pieces.
  • BX — box. Wire by 250-foot box (Romex / NM-B); screws by 5- or 25-pound box.
  • CTN — carton. Common for finish trim packaging and some specialty goods.

The extraction-and-conversion mechanic in practice. A framing line on a Builders FirstSource invoice reads:

2x4-92 5/8 SPF #2 Stud — Qty 1.250 MBF — Unit $740.00 / MBF — Extended $925.00

The extraction needs to preserve quantity as 1.250 with UOM MBF, unit price as 740.00 with the per-thousand denominator intact, and extended cost as 925.00. The conversion to board feet (1,250 BF) and to piece count (using the BF-per-stud math above, roughly 234 studs) lives downstream where the takeoff or the cost-code-by-piece reconciliation needs it. Collapsing the unit at extraction time — storing 1.250 as if it were a count, or storing $740 as if it were per-piece — is what blows up the job-cost report.

A drywall line on a US LBM operating-brand invoice reads:

1/2" Regular Drywall, 4x12 Sheet — Qty 50 sheets / 2.400 MSF — Unit $385.00 / MSF — Extended $924.00

50 sheets × 4 × 12 = 2,400 sq ft = 2.400 MSF, which is exactly what the unit line shows. The extraction holds both representations — the sheet count for the takeoff reconciliation and the MSF figure for the invoice reconciliation.

A copper-tube line on a plumbing-supply invoice:

Type L Copper, 3/4" — Qty 0.060 MLF — Unit $9,750.00 / MLF — Extended $585.00

0.060 MLF is 60 lineal feet, and the unit price translates to $9.75 per LF by the three-decimal shift. Generic extraction that treats $9,750 as a per-line cost gets the job-cost wildly wrong on a line worth less than $600.

Two failure modes to watch for in any extracted spreadsheet. First, reading 1.250 MBF as 1.25 — losing the thousand-multiplier entirely. A run of stud purchases that should total 25,000 board feet on a job ends up reading as 25 board feet, and the framing budget reads as if no framing happened. Second, reading $740.00 / MBF as $740 per piece or per unit, without preserving the per-thousand denominator. The unit price multiplies through correctly on the line where the supplier already gave you the extended total, so the immediate math doesn't break — but anywhere the spreadsheet computes a fresh per-piece cost from the unit price, the result is off by a factor of 1,000. Scan the unit-price column and the UOM column side by side; if any unit price is in the hundreds or low thousands and the UOM column reads MBF, MSF, or MLF, you have a denominator to preserve.

One last note on cross-supplier consistency. The same units carry across most US lumberyard layouts, but the abbreviation conventions vary at the edges. FBM appears alongside BF on some older yards' invoices. BDL competes with BND and BNDL across operating brands. Some chains print all-caps UOMs, others mixed-case. The extraction step should normalize these on the way into the spreadsheet so the UOM column is consistent for downstream filters and pivot tables.

Separating Sales Tax When the Rules Change With the Job's State

US sales tax on construction materials varies by state in a way that lands directly on the supplier invoice's layout. The same chain — Builders FirstSource, US LBM, BMC — invoices a job in one state with a tax line and a job in another without one, and the difference is structural, not a billing error.

In reseller-treatment states (Arizona, Colorado, the District of Columbia, Hawaii, Indiana, Mississippi, Nebraska, New Mexico, and Texas under separated-contract treatment, among others — and treatment varies by contract structure within several of these), the contractor's resale certificate on file with the supplier means the supplier invoice typically shows $0 sales tax. The contractor is treated as a reseller of the materials into the eventual real-property improvement, and the tax obligation falls elsewhere in the workflow — at the customer-billing step under a separated contract, or to the state's gross-receipts engine. In consumer-treatment states (California, Florida, and the majority of others), the contractor is the end user of the materials. The supplier invoice carries a sales-tax line and the contractor pays it at the counter; the cost lands in the job's material category and the tax follows the material.

The extraction-side recognition pattern is three signals on the invoice. First, presence or absence of a tax-line at the document level — a zero, an empty cell, or a tax line entirely absent points to reseller treatment; a populated tax line points to consumer treatment. Second, the resale certificate or tax-exemption number printed on the header, which is the supplier confirming the certificate is on file. Most chains print a "Tax Exempt — Resale Certificate #####" header line on invoices where the certificate applies; the extraction should preserve that header so the GL coding ties out cleanly. Third, the ship-to state or jobsite address field — this is what triggers the supplier's tax engine, and in mixed-state contractor accounts it's the field that explains why one invoice has tax and the next doesn't.

The Excel column structure that captures this needs more than a tax-amount column. Three columns belong side by side: tax-amount at the document level, tax-treatment (consumer, resale-exempt, or mixed for the rare invoice where some lines are taxable and others aren't), and ship-to state. The line-item columns — description, UOM, quantity, unit price, extended — sit alongside. With that structure in place, the GL coding step is straightforward: consumer-treatment invoices post material at the gross including tax (or split if the GL chart isolates tax), resale-exempt invoices post material at the line subtotal, and the auditor pulling a sample sees the treatment explicitly on each row.

The pattern that catches working contractors most often is same-supplier, two-states. A contractor with active jobs in Texas (where separated-contract treatment is available and the supplier can invoice without tax under a resale certificate) and California (consumer treatment, tax on every line) sees Builders FirstSource — or US LBM, or BMC — invoice differently for the two jobs. If the extraction layer doesn't carry the state and the treatment forward, the GL ends up with a mix of taxed and untaxed invoices posted as if they had the same treatment, and the year-end reconciliation against state filings becomes painful. The single-row answer to the auditor's question becomes a per-invoice investigation.

Use-tax accrual sits one layer downstream from the supplier invoice but the extraction step still touches it. When a contractor pulls stock from inventory bought tax-exempt under a resale certificate into a job in a consumer-treatment state, the contractor owes use tax to that state. The supplier invoice doesn't show this — the use-tax entry is an internal accrual the contractor or bookkeeper makes — but the extraction layer that captures the tax-treatment column makes the use-tax reconciliation cleaner, because the tax-exempt purchases are filterable as a set against the consumer-state job postings.

This is not a sales-tax-by-state primer. The deep state-by-state coverage lives elsewhere; what matters here is that the extraction captures enough of the structure that the GL coding is right and the use-tax reconciliation is possible.

Credit Memos and Restocking Fees as Their Own Line Items

Every active job sends some material back. The framer over-ordered studs, the drywaller pulled the wrong sheet count, the roofer's color came in wrong, the engineered package included one truss too many. The credit memo and the restocking fee that comes with it are not edge cases — they're a standing part of the AP flow, and the extraction step needs to treat them as a first-class pattern rather than as one-off corrections.

The working assumption on restocking fees, per the lumber-and-building-materials industry trade publication LBM Journal: 15% for stock material returned within 30 days, 30% for jobsite-pickup or special-order material. When a credit memo lands with a restocking line and no explanation, that's the math to apply. Some yards waive the fee for high-volume accounts on stock returns and some apply 25% or 35% under specific terms, but 15 and 30 are the figures contractors should expect.

A credit memo carries three things the extraction needs to capture: the original-invoice reference (the field the supplier prints showing which invoice number is being credited), the returned-line description and quantity (almost always shown as negative quantities so the line subtotals as a negative), and any restocking-fee line that reduces the credit value back toward zero. The extraction step that captures all three keeps the credit memo linked to its parent invoice so the net material cost on the job ties out cleanly.

The three-row pattern the spreadsheet should end up with for a returned-stud scenario:

  • Row 1 — the original invoice line. Positive quantity, positive extended cost. Tagged to the job, phase, and cost code at the time of original posting.
  • Row 2 — the credit-memo line. Negative quantity, negative extended cost. The original-invoice reference sits in its own column so the row is unambiguously linked to row 1. Same job, phase, and cost code as row 1, so the credit reverses the material posting at the right level.
  • Row 3 — the restocking-fee line. Positive extended cost, but coded as a miscellaneous job charge — not as additional material. The job-cost reconciliation still totals correctly because the net of row 1 plus row 2 is zero on the material line, and row 3 carries the real net cost of the return as a separate, identifiable charge.

Sage 100 Contractor names this mechanic most explicitly in its documentation: credit memos in Sage carry a miscellaneous-charge line type that posts as a negative on the credit memo document, and the extracted spreadsheet that mirrors this structure imports without manual splitting. The same logical pattern applies in QuickBooks Online (using the credit-memo document type with a miscellaneous-charge line item), Foundation, Buildertrend, and JobTread — the line-type naming differs, but the three-row structure carries across all of them. The Sage 100 Contractor users searching for the specific pattern land here for the extraction-side answer.

Special-order material is the corner case that most often catches contractors off-guard. Engineered lumber cut to a specific length, custom-color siding, mill-built doors, special-grind concrete admixtures — these almost never qualify for the 15% rate. They land at 30% by default, and the yard's terms often note they're non-returnable entirely once cut or batched. The extraction step should preserve any "special order" or "SO" tag the supplier prints on the line, because the restocking math and the returnability question both depend on it.

One pattern that matters for multi-job contractors: when material is returned from job A and the contractor's account is credited rather than the material physically moved to job B, the credit needs to post against job A's cost-of-goods, not against the open account in general. Otherwise job A's profitability reads as if the material was consumed there and the credit shows up nowhere — or worse, the credit posts to job B and inflates B's apparent profitability. The job-reference column on the extracted credit-memo row carries this; the extraction should never default a credit memo's job reference to the most recent invoice's job. It belongs to the job the original material was charged to.

Per-Trade Vocabulary You'll See Across Framing, Drywall, Roofing, Insulation, Concrete, Plumbing, and Electrical

Lumberyard line items don't read the same across trades, and the extracted description field has to preserve enough working vocabulary that the framer recognizes their lumber and the plumber recognizes their PEX. A short lexicon per trade, at the working-vocabulary level:

Framing lumber. Dimensional lumber by nominal size and length: 2x4-92 5/8 (the precut stud), 2x6-104 5/8 (the 9-foot precut), 2x8 by 8-foot through 20-foot, 2x10, 2x12. Species codes appear as SPF (spruce-pine-fir), DF (Douglas fir), or SYP (southern yellow pine); grade as Stud, #2-and-better, or Select Structural. Engineered lumber prices by the piece and the length: LVL (laminated veneer lumber) headers in 1.75-inch or 3.5-inch widths and depths from 9.25 to 18 inches; glulam beams; I-joists in TJI or BCI product families; PSL columns; microllam beams. Stick lumber typically quantifies in MBF; engineered lumber in piece count plus length.

Drywall. Sheets by dimension (4x8, 4x10, 4x12), with grade as regular, Type X (fire-rated), or moisture-resistant (often called greenboard or purple, depending on manufacturer). Sheets pack two per bundle for the most common 1/2-inch product. Area quantifies in MSF on most invoices. Joint compound (mud) ships in 4.5-gallon boxes or 5-gallon buckets; paper tape and mesh tape by the roll; J-bead, corner bead, and L-bead by the stick; screws by the 5-pound box.

Roofing. Asphalt shingles in bundles, three bundles per square for most architectural shingles. Underlayment in rolls (synthetic for modern installs, felt 15 or felt 30 for traditional or specified jobs); ice-and-water shield in rolls (commonly 36-inch by 75-foot rolls); ridge cap by LF; drip edge in 10-foot sticks; pipe boots, step flashing, and ridge vent by the piece or the roll. For the roofing-specific deep workflow against the dominant distributor, see myABCsupply statements and invoices to Excel for roofers.

Insulation. Batts by R-value and thickness: R-13 at 3.5 inches, R-19 at 6.25 inches, R-21 at 5.5 inches high-density, R-30, R-38. Each R-value packages in bundles per the manufacturer's spec, and the invoice line typically reads R-value × dimension × bundles. Kraft-faced product ships in rolls; blow-in cellulose or fiberglass by the bag or sack, with the coverage rating (sf per bag at a target R-value) printed on the bag.

Concrete / ready-mix. Cubic yards of a specific mix design — 4000-PSI 6-bag, 3000-PSI structural, fiber-reinforced mixes, mix-design numbers tied to the supplier's batch plant. The invoice almost always carries non-material lines alongside the CY: short-load fee (for trucks under a minimum yardage), pumping fee, environmental fee, wait-time charge, and wash-out fee. These post separately on the job — they're delivery and service costs, not material — and the cost-code structure should reflect that.

Plumbing rough-in. PEX tubing in LF or in 300-foot, 500-foot, or 1000-foot coils; copper tube (Type L for pressure, Type M for residential supply) in LF or MLF; fittings by the each across sweat, push-fit (SharkBite-style), ProPress, and PEX expansion families. PVC and CPVC drain-waste-vent fittings price by the each. Supply manifolds, valves, and tubing accessories round out the typical rough-in invoice.

Electrical. Romex / NM-B cable by gauge and configuration: 12/2 (two conductors plus ground for 20-amp), 12/3 for three-way circuits, 14/2 for 15-amp lighting, 10/3 for dryers and ranges. Cable prices in MLF on bulk invoices or by 250-foot box (BX) on smaller orders. Conduit (EMT, PVC, rigid metal) by LF; conduit fittings by EA; devices (receptacles, switches, GFCIs, AFCIs), panels, and breakers by EA; service-entry cable by LF or in 100-foot reels.

The extraction step's job across all of this is to preserve the working vocabulary in the description field without abbreviating away the meaningful detail. A line that reads 2x6-104 5/8 SPF #2 Stud should not become 2x6 lumber in the spreadsheet, because the takeoff reconciliation depends on the length and the grade staying visible. A drywall line for 1/2" Type X 4x12 loses its meaning if the fire rating drops. A roofing line for 30-year architectural shingle, Weathered Wood loses the warranty class and the color if either is collapsed. The extracted description is the contractor's audit trail; let it carry what the invoice carried.

Coding Extracted Line Items to CSI MasterFormat and Your Cost-Code Structure

Lumberyard invoice lines arrive without cost codes. The extraction-then-coding step applies them by mapping each line's description to a trade, then to a CSI MasterFormat division, then to a six-digit code that matches the contractor's WBS. The mapping is mechanical once the description is preserved with enough detail; the description is where the section above carries its weight.

The four-level mapping in practice, with one concrete example per major lumberyard category:

  • Framing lumber. Line description: 2x6-104 5/8 SPF Stud. Trade: framing. Division: 06 Wood, Plastics, and Composites. Six-digit code: typically 06 11 00 Wood Framing, or the contractor's WBS equivalent — for a remodeler running a simplified WBS, this collapses to a single "Framing — Wall" bucket.
  • Sheet goods and sheathing. Line description: 7/16" OSB 4x8 wall sheathing. Trade: framing or sheathing. Division: 06 Wood, Plastics, and Composites. Six-digit code: 06 16 00 Sheathing.
  • Drywall. Line description: 1/2" Regular Drywall 4x12. Trade: drywall. Division: 09 Finishes. Six-digit code: 09 21 16 Gypsum Board Assemblies.
  • Roofing. Line description: 30-year architectural asphalt shingle bundle. Trade: roofing. Division: 07 Thermal and Moisture Protection. Six-digit code: 07 31 13 Asphalt Shingles.
  • Concrete. Line description: 4000-PSI ready-mix, 6-bag. Trade: concrete. Division: 03 Concrete. Six-digit code: 03 31 00 Structural Concrete for a structural pour, or a different 03-series section for slab-on-grade or specialty concrete.

Most US construction software — Sage 100 Contractor, Foundation, Buildertrend, JobTread — uses a three-tier structure of job, phase, and cost code on every cost-side entry. The extracted line carries: which job the cost belongs to, which phase of the job (foundation, framing, roofing, finishes), and which cost code the cost charges against. The extraction step that captures all three in distinct columns is what makes the downstream import clean — without phase, the cost lands on the job but not against the right budget line; without cost code, the cost lands on the job and phase but doesn't roll up against the original estimate by category.

CSI MasterFormat divisions and sections are industry-standard, but the six-digit-code mapping varies by contractor. A general contractor running Sage 100 Contractor on commercial work may use the CSI six-digit codes directly so the cost reports tie out to the architect's spec. A remodeler running Buildertrend on residential work may use a simplified WBS where "framing" collapses several CSI sections into one bucket, and "finishes" collapses several more. The article doesn't dictate which WBS the contractor should use; it dictates that the extraction layer preserve enough description detail (length, grade, species, dimension, R-value, mix design) that whichever WBS the contractor runs, the line can be coded correctly without going back to the PDF. For the full breakdown of how the coding step lands in practice across jobs, phases, and codes, see construction invoice coding by job, phase, and cost code.

One pattern that catches contractors mid-coding: a single lumberyard invoice typically spans several CSI divisions. A Builders FirstSource invoice for a single-family residential framing package may include sticks and engineered lumber (Division 06), OSB and ZIP sheathing (still Division 06 but a different section), housewrap (Division 07), nails and fasteners (Division 06 again, accessories), and possibly drywall and insulation if the yard is a full-line building-materials supplier (Divisions 09 and 07 respectively). The extracted spreadsheet that codes per line, not per invoice, is what makes the cost-code reconciliation work. Per-invoice coding lumps everything into whichever division dominates the invoice and hides the cross-trade material that's actually there.

The coding step is where the bookkeeper's judgment lives, and the extraction layer doesn't replace it. What the extraction does is surface enough description detail that the call is fast — a coder reading "2x6-104 5/8 SPF #2 Stud" can apply 06 11 00 in two seconds, while a coder reading "2x6 lumber" has to either guess or open the PDF. Multiplied across a few hundred invoices a month, the difference is the rest of the bookkeeper's afternoon. The same line-description-to-account-code pattern shows up in other trades that buy from large wholesale distributors against a standard chart — veterinary practices working Patterson and Covetrus invoices across the AAHA/VMG chart of accounts face the same SKU-to-category split, just against a different code set.

The Excel Intermediate That Imports Into QuickBooks, Sage 100 Contractor, Foundation, Buildertrend, JobTread, and Knowify

The Excel layer is what makes the same extraction reusable across every downstream system the contractor might run. The supplier invoice doesn't know whether the contractor uses QuickBooks Online or Sage 100 Contractor; the contractor's accounting software doesn't care which yard the invoice came from. Excel sits in the middle as the system-agnostic capture, and the per-system import is what changes.

The column structure that works across all six systems:

  • Supplier name and supplier ID — the supplier's printed name plus the contractor's internal supplier number, if the accounting system maintains one.
  • Invoice number and invoice date — invoice number as printed; invoice date in ISO YYYY-MM-DD form so every downstream system parses the date field consistently.
  • Job number, phase, and cost code — the three-tier coding from the section above, applied per line.
  • Line description — preserving species, grade, dimension, length, R-value, mix design, and any special-order tag. The audit-trail field.
  • Quantity, UOM, unit price, and extended cost — quantity stored at the unit shown on the invoice (1.250 stays as 1.250 with UOM MBF). The conversion to a different unit happens downstream where the system or report expects it; collapsing the unit at extraction time is what loses the factor of 1,000.
  • Sales tax amount at the document level, plus a separate tax-treatment column (consumer, resale-exempt, or mixed) and a ship-to state column. This is what makes the GL coding right for multi-state contractors.
  • Document type (invoice or credit memo) and original-invoice reference — the credit-memo cross-reference field, populated on credit-memo rows.
  • Source file reference and page number — every row links back to the originating PDF so the bookkeeper can verify any line in one click.

Per-system import expectations, in working terms:

QuickBooks Online. Most QBO users land lumberyard invoices via a third-party connector layer — Transaction Pro, SaasAnt, or BillBjorn. The column structure above is what those connectors expect as the source. Per-line entries post as vendor bills with the cost code on the line; the job and phase ride along as class or location, depending on how the QBO file is configured. The connector handles the bill-creation step; the extraction's job is to deliver clean lines.

Sage 100 Contractor. The AP-invoice-import structure expects job, phase, and cost code on every line. The Excel column order above matches that expectation directly — the import pulls the line-level fields without the operator having to remap columns.

Foundation. Foundation Software runs a similar three-tier structure with Foundation's own job and phase numbering. The extraction's job number column needs to use Foundation's internal job ID rather than the contractor's external label, but the rest of the column structure ports across.

Buildertrend. The Buildertrend AP module accepts a CSV import structured by job and cost code, with line-level detail going in the description and cost field.

JobTread. JobTread's cost-code structure imports per line; the extraction's column order is directly compatible.

Knowify. Knowify's import is job-and-phase-shaped, with line-level cost detail going against the job and phase. The extraction's column order is directly importable.

The AP-clerk-at-a-mid-market-GC reality is that the volume here — dozens to hundreds of supplier invoices a month across active jobs, multiplied by the credit-memo flow and the multi-state tax handling — justifies AP-automation tooling beyond manual CSV imports. Where the buy-versus-build framing is the real question, the deeper coverage lives at AP automation software for construction companies.

For GCs running this AP flow on commercial work, the lumberyard invoices interlock with the subcontractor billing on the same jobs. The same job-and-phase reference the extraction captures is what makes the lien-waiver tracking line up with the AP entries — when a sub's pay app references work installed against material the GC supplied, the cost-coded material line and the conditional waiver should sit on the same job and phase. The dedicated workflow lives at subcontractor lien waiver tracker for GC AP.


The Cross-Supplier Extraction Path for Working US Contractors

Three paths actually exist for getting lumberyard line items into Excel, and they aren't interchangeable.

Per-supplier portal exports (covered above) are fine for AR summary work but stop short of the per-line UOM and tax-treatment detail a job-cost system needs, and they only cover the chains where the contractor has portal access. The regional yards are not in this set.

Templated extraction tools work on whichever supplier layouts the vendor maintains in its template library. The chain ships a layout the vendor has caught up to, the extraction reads cleanly; the chain changes a header or a fontset, the template breaks until the vendor catches up; the regional yard isn't in the library at all, and the contractor falls back to manual entry. The lane is narrow.

AI extraction that reads the layout handles every chain, every regional yard, and every layout change without per-supplier setup. The same prompt produces the same structured spreadsheet across Builders FirstSource, 84 Lumber, US LBM's operating brands, BMC, Carter Lumber, the regional independent yards no template library covers, and the credit memos that come back from any of them. The contractor uploads the stack of PDF invoices and statements regardless of which yard they came from, describes the column structure once, and downloads a single Excel file with the line-item rows, the UOM column preserved, the tax-treatment column populated, and the credit memos linked to their original invoices.

This is the lane AI invoice data extraction for trade contractors and their bookkeepers sits in. The interaction model is the same as a modern AI tool — a single prompt field with a file upload area, no templates to configure, no rules engines to set up. The column structure from the section above goes into a saved prompt once: supplier name, invoice number, invoice date in YYYY-MM-DD, job and phase and cost code, line description preserving species and grade and dimension, quantity and UOM and unit price and extended cost, tax amount and tax-treatment and ship-to state, document type and original-invoice reference, source file and page number. From that point forward the same prompt runs every month against whatever month's invoices have stacked up, whether that's 10 or 10,000.

The scale point matters for the volume contractors actually process. An active US contractor runs through dozens to hundreds of supplier invoices a month across active jobs, with single PDFs sometimes carrying multiple invoices stapled together (the yard's monthly statement bundle is a common pattern) or running to hundreds of pages for a large project. The batch size — up to 6,000 files in a single job, single PDFs up to 5,000 pages — and the consistent output across every document in the batch are what separate this from running invoices through a general-purpose AI tool one at a time. Saved prompts, applied through the prompt library, mean the bookkeeper closing the contractor's books at month-end runs the same task against this month's invoices that they ran last month, with the same column structure out.

The regional-yard payoff is the part of this that most directly justifies the cross-supplier path. The regional independent yards are where templated tools fail visibly — the layout has never been in any template library and probably never will be. An all-formats AI extraction that reads the layout treats the regional yard's invoice the same as Builders FirstSource's: same column structure out, same UOM handling, same tax-treatment capture, same job-and-phase coding columns ready for the import step.

Some contractors with the scale and the internal capacity will build their own automation around their AP module — direct API integration into Sage 100 Contractor or Foundation, custom OCR pipelines, in-house tooling. Most won't, and most don't need to. The path that runs without engineering, against every yard the contractor uses, with the column structure that imports into the system the contractor already runs, is the one that fits the working US trade contractor and their bookkeeper.

Extract invoice data to Excel with natural language prompts

Upload your invoices, describe what you need in plain language, and download clean, structured spreadsheets. No templates, no complex configuration.

Exceptional accuracy on financial documents
1–8 seconds per page with parallel processing
50 free pages every month — no subscription
Any document layout, language, or scan quality
Native Excel types — numbers, dates, currencies
Files encrypted and auto-deleted within 24 hours
Continue Reading