Decision infrastructure guide · Prepared for Southern Components

Talon AI · Shreveport, Louisiana

Three decisions a day, made without a record

Your own process maps show where every job is created, priced, built and invoiced — and where three decisions are made that nothing writes down. This guide starts there: what to do first, what it proves, and exactly what data each step takes.

Prepared for
Caleb Ward
Company
Southern Components, Inc.
Date
September 2026
Built on
SCI process maps, 15 April 2025 — no internal records accessed

00 — Start here

One export, one morning, one decision

If you read nothing else in this document, do this. It uses one system you already own, needs nothing from accounting, and tells you something you do not currently know. The only thing it needs from anyone else is the export itself, from whoever administers iTruss.

The first cut

Every quote you wrote last year, and what happened to it

iTruss holds every quote from the moment Sales Admin creates the job through to the status it ends in. That is a single export from a single system, and it answers four questions on its own.

  1. Export twelve months of quotes from iTruss. Quote number, customer, date created, current status, date of that status, quoted amount, and the job number if it converted.
  2. Count the conversions. What share became jobs — overall, by customer, and by quote size. Sort customers by win rate and by total quoted value. You will almost certainly find one you did not expect in each direction.
  3. Measure the clock, if the dates are there. Days from quote created to accepted, for the ones that converted. If iTruss only stores the current status date, this one has to wait for the export in Section 07 — ask for an acceptance date explicitly, and if it does not exist, that answer is itself worth having on day one.
  4. Look at what is not there. For everything marked Lost, there is no reason recorded. Your process map says so in as many words. That absence is the finding — and it is the cheapest thing in this document to fix.

What it costs: one export and a morning. No accounting sign-off, no new software, no budget request, no analyst. What it buys: win rate by customer and by quote size, today; and, if the acceptance dates survive in your export, the quote-age distribution that the rest of this document turns on.

Then turn on one field

Add a required reason to the Lost status in iTruss — a short picklist, five or six options, chosen by whoever changes the status. Price. Lead time. Scope or missing items. Lost to a named competitor. Customer cancelled. No decision.

This is the single highest-return thing on the list and it is not an analysis project. It is a configuration change. Its value accrues from the day it is switched on and not before, which is why it belongs at the front rather than in a phase.

Where to go from here

Show me the evidence

Why quote age and price discipline, rather than something else. Public price data, with the method so you can check it.

The margin question
Show me my own process

Your April 2025 maps, read for where the data already is and where three decisions leave no record.

Your process, as mapped
Help me choose where to start

Three candidates compared on value, readiness, effort and speed — with the scoring shown so you can disagree.

Where to start
Someone else pulls the data

A request you can forward as written, one block per recipient, with the columns named.

The data request
The files have arrived

How to get from two exports to an answer in a spreadsheet, step by step, including the join that goes wrong.

The analysis
I want the reference material

What can actually be connected, what it costs, what the limits are — and every source behind every claim.

Reference

What is in here

Sections 00 to 08 are the work. Sections 09 to 12 are how you keep it running. Section 13 onward is reference — look things up in it, do not read it through.

How to read the labels

Claims in this document are tagged so you can tell what is established from what is not. The distinction matters more than usual here, because we have seen your process maps and no other record.

LabelMeansWhat you should do with it
PublicEstablished from a public source we fetched and cite.Check the source if it matters. It is not about your plant.
Your mapStated in SCI's own process maps of 15 April 2025.Confirm it is still true — the maps are seventeen months old.
HypothesisOur reasoning about a plant like yours. Not a finding.Test it or discard it. Do not act on it as fact.
OpenA question we could not answer and you can.Answer it in the first working session.

Nothing in this guide is a finding about Southern Components' performance. No quote, job, invoice, inspection or payroll record was accessed. Where a number appears, it is either public data we recomputed or an illustration, and it says which.

01 — Your process, as your own map shows it

Four systems, seven stages, three decisions that leave no record

Your team mapped the sales, design-to-production and shopfloor workstreams in April 2025. Read as a data map rather than a process map, it answers most of the questions a data strategy normally has to guess at — and it identifies the gaps far more credibly than we could.

Source and limits. Everything in this section is taken from SCI Process Flows, 15 April 2025, produced by your team with The Sharpen Group.[20] We have read the maps. We have not seen a single record from any system in them. The maps are seventeen months old, so every item here carries the same caveat: confirm it is still how the plant runs before building on it.

What each system owns

The maps use four data sources, and they divide the work cleanly. This matters because it tells you which system to ask for which question — and it corrects two assumptions we were working from before we saw it.

iTruss

The system of record

Jobs and quotes are created here. It holds the customer, RFQ details, pricing detail, EWP and hardware, the status of every job, the production job list and the job schedule form. Status is updated on the floor at end of day. If a question is about a job, iTruss is where it starts.

Alpine · iCommand · eShop

Design and the saw

Design is done in Alpine. Truss details are imported from iCommand into iTruss. Production files, batches and printed tickets come out of iCommand; eShop holds the saw queue and shows when cutting will complete. Engineering and machine reality live here, and none of it is exported today.

Sage

The money

Tax tables feed the quote. Jobs are imported into Sage; Accounting reviews pricing and taxes there before a job goes to production, and invoices the green sheet after delivery. Realised revenue and cost are in Sage, not in iTruss — which makes every margin question a two-system question.

Excel and paper

Everything in between

The designer workbook, the pricing template, the proposal, the scheduling spreadsheet — marked on your own map as a placeholder — the look-ahead tab, the weekly delivery tabs, the cutting and pick tickets, the green sheet, the audit sheet with hand-written error notes. This is where the decisions are, and where the data is not.

Two corrections to what we assumed

Accounting is Sage. Earlier drafts of this guide scoped the margin work around QuickBooks. Your maps show Sage at three points — tax tables into the quote, job import, and invoicing. The reference section now covers Sage properly; which Sage product it is remains an open question for the first session, and the answer materially changes how the data comes out.

No CRM appears. We had been told the CRM was believed to be built on SmartSuite. SmartSuite does not appear anywhere in three workstreams. Customer and pipeline information lives in iTruss, in the call sheet, and in Excel and Teams. If a separate CRM exists, it is outside the mapped process — which is itself worth knowing.

The seven stages, and what each one writes down

Stages marked in red are where a decision is made and nothing records it.

1 · Enquiry and bid decisionSalesperson · Sales AdminiTrussCall sheet
RecordedCustomer contact via the call sheet. Job created in iTruss, customer attached, RFQ details entered, customer-specific notes and bid instructions added, job folder created on the server, status set to Needs Quote.
Also recordedA No-Bid list for work Sales declines. This is a document rather than a field, so declined work is visible but not countable.
2 · DesignDesign Manager · DesignerAlpine · iCommandDesigner workbook
RecordedDesign completed in Alpine, details added to the designer Excel workbook, status changed to Needs Estimate.
Not recordedThe audit sheet from iCommand goes to Estimating "with hand notes addressing errors." Design errors are found and fixed on paper. How often, on which job types, by which cause — none of it becomes data, so design rework cannot be counted or reduced.
3 · Estimate and priceEstimator · Sales ManageriTrussPricing templateTax tables
RecordedTruss details imported from iCommand, EWP and hardware added, price calculated in iTruss or — for modeled projects — in the Excel pricing template. Final pricing detail added back to iTruss with Sage tax rates.
Not recordedTwo judgement steps. The estimator makes a manual adjustment "to account for full quote quantity and other factors not fully captured through design." Then the Sales Manager reviews, "applies wizardry," and sets the price. The gap between the calculated price and the price that goes out is never stored.
4 · Proposal, and win or lossSalesperson · CustomerProposal in ExceliTruss status
RecordedProposal created in Excel and emailed under the sales signature. On acceptance, the signed proposal or PO comes back, the quote converts to a job, and the job number changes from Q to J. Status moves to Needs Shop Drawings.
Not recordedOn a loss, status changes to Lost and the process stops. Your map annotates this directly: "Currently no consistent feedback or tracking of lost jobs," against a desired state of "Pipeline; Call follow-up; Lost Quote reasons." Half of what pricing decisions need is the half you do not keep.
5 · Release to productionDesign · Estimating · Sales Admin · AccountingiTrussSageGreen sheet
RecordedShop drawings created, approved by the customer by email, status through Shop Awaiting Approval to Needs Cutting. Estimating re-imports truss details, adds EWP, hardware, seals and delivery costs, recalculates sales price, and auto-creates the PO for hardware and EWP.
RecordedSales Admin creates the Job Schedule Form and takeoff and imports the job into Sage. Accounting verifies pricing and taxes in Sage, sets status to In Production and prints the green. The green is the paper spine of the rest of the process.
6 · Shop floorScheduler · Production Admin · Production Manager · Saws · TablesiCommand · eShopScheduling sheetTickets
RecordedJob added to the scheduling spreadsheet, production dates set by lead time in the look-ahead tab — a separate line for each billable section of a job — and deliveries placed on weekly tabs. Batches created in iCommand, files renamed by invoice number, tickets printed. Jobs dragged to a saw in eShop; iTruss updated with job status.
Not recordedBetween the morning pull and the end-of-day iTruss update, progress lives on a walked production sheet and a radio. There is no timestamp when a job reaches a saw or a table, no recorded reason when it waits, and the scheduling spreadsheet is labelled on your own map as a placeholder. Promised date versus actual is recoverable; where the time went is not.
7 · Delivery and invoiceShipping · AccountingBOL · green sheetiTrussSage
RecordedJob scheduled for delivery, loaded, Bill of Lading created, delivered, recorded as delivered in iTruss. The green sheet goes to accounting and the invoice goes to the customer from Sage.
Worth confirmingWhether the delivered date and the originally promised date are both retained, and whether a job that ships in several billable sections closes as several invoices. Both affect any on-time or per-job margin number you build later.

The three decisions

Strip the map down and the same shape appears three times: a person applies judgement, the judgement changes the outcome, and the system stores the outcome without the judgement. Each of the three is cheap to close, and none of them requires a new system.

Decision 1

The price that actually goes out

iTruss or the Excel template calculates a price. The estimator adjusts it. The Sales Manager adjusts it again and sets it. Store both numbers and the reason for the difference — two fields and a picklist — and within a quarter you can see whether the adjustments make money or give it away, and whether they are consistent between estimators.

Decision 2

Why the quote was lost

The Lost status already exists. What is missing is one required field behind it. A reason code and, where known, the competing price turns every loss into pricing calibration and customer intelligence instead of a dead end. Your map names this gap itself.

Decision 3

What the audit sheet caught

Design errors are found and corrected by hand before estimating sees them. A tick box and a cause on the audit sheet, entered once a day, tells you which job types and which conditions generate design rework — the cheapest quality signal in the building, and it needs no software at all.

The identifiers you already have

Most plants have to invent a way to follow a job across systems. Your map shows that you largely do not — which is the single biggest reason the work in this guide is achievable without an integration project.

IdentifierWhat your map saysWhy it matters
Q… → J… The quote number becomes the job number on conversion: "Job number changes from Q to J." The hardest join in a truss plant — quote to delivered job — is a prefix swap. Confirm the numeric root is preserved and the original Q number is retained on the job record. Open
Billable section The production schedule carries "a separate line for each billable section of job." A job is not the unit of money. Any margin figure that treats one job as one row will be wrong wherever a job ships in parts. This is the most likely source of a silently incorrect number.
Invoice number Production files are copied and "renamed with invoice number." Potentially a second path from the shop floor to Sage. Worth a question first: your map shows production files renamed with an invoice number before the invoice is raised at delivery, so either a number is reserved early or it means something else here. Confirm which. Open
Status vocabulary Needs Quote · Needs Estimate · Needs Shop Drawings · Shop Awaiting Approval · Needs Cutting · In Production · Delivered · Lost A ready-made process clock. If iTruss timestamps status changes, you can measure every stage of the pipeline without adding a single field. Open — does iTruss keep status history?

That last question is the highest-value one in this document. If iTruss retains a dated history of status changes, most of the first ninety days is querying data you already have. If it stores only the current status, the same work requires capture going forward and the timeline moves. Ask it first.

02 — What this review concluded

Five conclusions, and what each one rests on

Written so you can run it yourself. It assumes no analyst, no new software, and no budget request before there is evidence.

  1. The cheapest opportunity is one you have already identified yourselves. Your process map states that there is no consistent tracking of lost jobs, against a desired state of pipeline, call follow-up and lost-quote reasons. The Lost status already exists in iTruss; what is missing is one required field behind it. Nothing else in this document costs so little or compounds so directly. Your map
  2. Price discipline is where the largest money is, and the exposure is real in public data. Between January 2020 and May 2021 the softwood lumber producer price index rose 163%; the truss manufacturing index peaked a month later at 89% and then kept climbing to its own peak of double its 2020 level in March 2022, long after lumber had collapsed and partly recovered. Truss prices are damped going up, slow coming down and late. That asymmetry is an industry fact, not a finding about your plant — but it tells you which of your own questions to ask first. Public
  3. Two judgement steps in your own process change the price and leave no trace. The estimator adjusts for what the design did not capture; the sales manager reviews, applies judgement and sets the price. Both are almost certainly adding value — experienced people usually are. Nobody can currently prove it, compare it between estimators, or learn from it, because the number before the adjustment is not kept beside the number after. Your map
  4. The data for the first two pilots is business records, not shop-floor telemetry — but two open questions decide how much of it is historical. Quotes, jobs, invoices and statuses are in iTruss and Sage, and the quote-to-job join is a prefix change rather than an integration project. Whether the analysis can look backwards depends on two answers nobody has yet: does iTruss retain status history, and is the calculated price retained after the manual adjustment? Open — ask in the first session
  5. The plant-floor data is the hardest to get, not the easiest. Neither Alpine nor MiTek publishes a public API for their US products, and your saw and line timestamps live in eShop and iCommand. Production data comes out through a vendor conversation with a lead time, and should be scoped as a dependency rather than assumed. Meanwhile the audit sheets already carry design-error information on paper, and counting them costs nothing. Public Your map

The recommendation

This week: add the required reason field behind the Lost status, and export twelve months of quotes to get conversion rates by customer and quote size. One hour of configuration, one export, one morning of counting.

This month: run the price-integrity analysis on one product family. For every quote in the last twelve to twenty-four months, line up the date quoted, the date accepted, the price the system calculated, the price that went out, and what was invoiced. Answer one question — does realised margin decay with the age of the quote?

If it does, the fix is a validity period or an escalation clause, both of which cost nothing to implement and can be measured on the next cycle of jobs. If it does not, you have ruled out the largest suspected leak with evidence rather than opinion, and the effort moves to quality with a clear conscience.

What it takes from you

One configuration change

A picklist field behind the Lost status in iTruss, and a decision that it gets filled in. An hour of admin time; the sales conversation is the harder half.

Two exports

Quotes and jobs from iTruss, invoices from Sage, for the same period and customers. Section 07 is the request, written to forward.

Two conversations

One with estimating about what the calculated price means, one with accounting about what margin means — both before anything is calculated, not after.

One owner

A named person who can change the quoting rule if the evidence supports it. Without that, this produces a report rather than a result.

About a morning a week

For six weeks, from one person who is not a specialist. That is the honest estimate for the first pilot, assuming the exports arrive intact.

Nothing else

No warehouse, no platform, no model, no telemetry project. Each may be justified later; none is justified by evidence that does not exist yet.

03 — The margin question

The margin question

Lumber price moves further and faster than truss price does. Where a plant carries that gap — in the quote, in inventory, or in the customer’s price — decides how much of it reaches the bottom line.

Two things are true about truss pricing that make this the first place to look. Neither is a claim about Southern Components; both come from published data you can check.

Open How much of a truss is lumber? We have deliberately not put a number on it. Lumber is plainly the dominant purchased input in a wood truss, but the share of cost of goods it represents at your plant is yours to state, and it changes the size of every prize in this document. Two free public checks exist if you want an industry frame: the Census Bureau publishes cost of materials and payroll at six-digit NAICS through the Annual Integrated Economic Survey, and SBCA’s Financial Performance Survey gives a truss-specific income statement to companies that participate.[5] Your own Sage data answers it faster than either.

First, the input is far more volatile than the output. Across 2020–2022 the softwood lumber producer price index moved 11.1% in a typical month, against 4.1% for the truss manufacturing index — and the spread around those typical months was wider still, a standard deviation of 14.0% against 5.4%. Lumber is roughly two and a half times as jumpy as the product made from it, on either measure.[1]

Second, pass-through is incomplete and lagged — and the industry says so out loud. Builders FirstSource, the largest component manufacturer in the country, tells its own investors that short-term changes in material cost are “oftentimes, but not always, passed on to our customers” and warns about “delayed ability to pass on material price increases.”[2]

Truss prices follow lumber — damped going up, stickier coming down

Producer price indexes, both re-based to January 2020 = 100 so they can share one axis. Monthly, not seasonally adjusted.

Softwood lumber WPU0811Truss manufacturing PCU321214321214
Softwood lumber and truss manufacturing producer price indexes, indexed to January 2020 = 100 Two lines from January 2020 to December 2022. Softwood lumber rises to a peak of 263 in May 2021, then falls sharply, ending at 128. Truss manufacturing rises more gradually to 200 in Mar 2022 and ends higher than lumber at 157. Truss output prices move less than lumber input prices in both directions. 100150200250202020212022 May 2021 · 263 Lumber 128 Trusses 157

Read it this way. Measure each series from its own first-cycle peak. Lumber peaked in May 2021, 163% above January 2020, and had given back 53% of that by September. Trusses peaked a month later at 89% above January 2020, and had given back 20% a month after lumber bottomed. Lumber then ran up a second time to 244 by March 2022 — and trusses, which had barely responded to the collapse in between, simply kept climbing through both cycles to their own peak of 200, double their January 2020 level. At the end of the window lumber is back to 128 and trusses are still at 157. Truss prices are damped going up, slow coming down, and late. A lumber spike compresses margin faster than a collapse releases it — the exposure is asymmetric, and it is worst in a rising market. Public

Method, so you can check it. Series WPU0811 (PPI, softwood lumber) and PCU321214321214 (PPI by industry, truss manufacturing), monthly, not seasonally adjusted, January 2020 through December 2022, retrieved from the BLS series via FRED and re-based by Talon AI to January 2020 = 100. “Typical month” is the mean absolute month-over-month change (11.1% and 4.1%); the standard deviations of the same series are 14.0% and 5.4%. Correlation of month-over-month changes is strongest with no lag (r = 0.78), still present at one month (r = 0.62), and gone by three (r = 0.16) — which is what puts the exposure window at roughly zero to two months.[1]

Three caveats that matter

This chart ends in December 2022 because the series does — not because the story does. BLS adopted the 2022 NAICS definitions with the January 2023 data release, and truss manufacturing (321214) ceased to exist as a separate industry code: it was merged with engineered wood members (321213) into a single broader code, 321215. PCU321214321214 therefore has no observations after December 2022, and PCU321215321215 is a new index starting December 2022 = 100 with no history before that date and a wider scope than trusses alone. The two cannot be chained. Nothing here describes the 2023–2026 market; for that you need the 321215 series, read on its own terms.[1]

It is an industry index, not your price. It describes what the industry realised, not what Southern Components charged, and not what your inventory cost. Your own lag depends on how you buy.

A precision artefact. Both series switch from one to three published decimal places at July 2021. Run-ups, corrections and correlations measured over several months are robust to that; a claim that rests on one month straddling that boundary is not. The peaks, troughs and levels quoted above are all read off the printed table, which is the same data you can pull yourself; what we have deliberately avoided is building an argument on the size of any single monthly move.

What this makes worth asking

The public data establishes that the exposure exists and that the window is short — roughly zero to two months between a lumber move and the output price catching up. It does not establish that quote age is where the exposure bites at your plant; that is the hypothesis to test, and there are two distinct remedies depending on the answer. A validity period caps how long an old price can be accepted. An escalation clause lets the price move with a published index between quote and delivery. The first is a timing control, the second a pass-through control, and the analysis below tells you which one you need. Hypothesis

  • How old is a quote when it is accepted? Distribution, not average — the tail is where the damage is.
  • Does realised margin decay with quote age? Group accepted jobs by days between quote and acceptance and compare margin against the lumber index move over that same interval.
  • Are quoted material costs overwritten by later revisions? If the original quoted cost is not retained, this analysis is impossible — and that finding alone is worth the exercise.
  • Do we have a stated validity period, and is it enforced? Many plants have one on paper that estimating does not apply in practice.
  • Which customers accept fastest? Fast acceptance is worth real money in a rising market, and it is a legitimate basis for preferential treatment.

The cheapest possible first cut

Pull one product family, twelve months of accepted jobs, four columns: quote date, acceptance date, quoted price, invoiced amount. The first three come out of iTruss; the fourth comes out of Sage and joins on the job number. Plot the difference against days elapsed. That is a morning's work for one person and it either shows a slope or it does not — and The analysis walks through it step by step. Everything else in this section is downstream of that one chart.

04 — The decision map

Nine decisions, and what each one needs

Every row is a decision somebody at Southern Components already makes. The question is only whether it is made on evidence or on memory.

“Readiness” is our judgement of how likely the required records already exist in usable form at a plant of this type — not a statement about your systems. Where your process maps settle the question we have used them and said so; everywhere else it is a starting hypothesis to correct in the first working session.

The decisionEvidence it needsWhat improving it is worthReadiness
Estimating & pricing
What do we quote, and how long does it stand?
Quote header and lines, quoted material cost, revisions, validity period, acceptance date, actual material cost, final invoice. Directly protects gross margin on every accepted job. The largest single lever in the list. Likely high Business records, not shop data. Main risk: quoted costs overwritten by revisions.
Customer selection & sales
Who do we chase, and on what terms?
Won and lost quotes with outcomes, response and acceptance times, estimating hours per bid, realised margin by customer, repeat orders, freight and service burden. Redirects sales and estimating effort toward work the plant can serve profitably. Also exposes minimum-order and bid-policy options. Medium Confirmed as your gap. Your process map states there is no consistent tracking of lost jobs — so today this decision is made on the half of the evidence that says yes.
Purchasing & inventory
What do we buy, from whom, and when?
Purchase orders and receipts with species, grade, dimension, quantity, landed cost and freight; consumption against bills of materials; returns; substitutions; stock-outs. Reduces shortages, excess stock and substitution waste; separates price movement from usage waste. Medium Depends where purchasing lives. Actual usage is often inferred from purchases, which conflates price with waste.
Profitability & cash
Which work actually makes money?
Net job revenue after credits; actual material, labour, freight and rework; an agreed margin definition; receivables timing. Turns “we think that job type is good” into a number the whole management team shares. Medium Blocked until the Sage questions in Section 06 are answered.
Production reliability
What stops work flowing?
Stage timestamps, queues, station hours, setup, downtime with reason codes, staffing coverage, shipments. Removes waiting and constraint time that delays completed deliveries. Converts to cash only if released capacity is sold. Likely low No public API from Alpine or MiTek. Often daily totals only, and reason codes frequently absent.
Quality & rework
Where does quality cost land?
Inspection records with job, truss, date, line, shift, crew; defect and tolerance detail; recuts, repairs, callbacks and their cost. A fast run with recuts is an expensive run. Joins quality to the crew and shift that produced it. Unknown Digital QC is free to SBCA members and carries the join keys, but it does not appear in your process maps and no export mechanism is publicly documented.[4] Meanwhile the iCommand audit sheets already record design errors on paper, and counting those starts immediately.
Workforce & scheduling
How do we staff and develop crews?
Crew-level hours, shift patterns, overtime, tenure bands, training and certification coverage, staffing against scheduled hours. Explains variance that looks like equipment or weather but is actually coverage. Informs training spend. Medium Use aggregated crew-level data. See the constraint in Section 10 before touching pay data.
Logistics & delivery
Can we promise a date and keep it?
Promised versus actual delivery, partial loads, redeliveries, mileage and freight cost, site readiness, route and destination conditions. Delivery reliability is a sales asset. Partial deliveries recorded as complete hide the real number. Medium Fleet telematics is available if fitted; otherwise dispatch records.
Growth we can serve
What more work can we take, and of what kind?
Backlog in weeks by product family; capacity actually available by line; win rate and quote volume by segment; margin by job type; the reasons quotes are lost. Stops growth being measured in revenue alone. Tells you which additional work the plant can absorb profitably, and which would simply move the constraint somewhere less visible. Medium The quote and job side exists in iTruss today. The capacity side waits on the scheduling spreadsheet becoming something more than the placeholder your map calls it — which makes this a second-quarter question, not a first.

The test for every output

A useful result changes a decision. For each opportunity, name the decision, the owner, the evidence, the operating change, the expected benefit, and how it will be measured. A dashboard with no decision owner is an unfinished project, not a result.

05 — Where to start

Three candidates, compared honestly

All three are credible and none requires new software. They differ in how hard the data is to get, how fast an answer appears, and how directly the answer converts to money.

Scores are Talon AI's judgement on a five-point whole-number scale, not measurements. They are shown so you can disagree with a specific number rather than with a conclusion. Value — size of the plausible commercial effect. Readiness — likelihood the data already exists in usable form. Speed — how fast credible evidence appears. Ease — inverse of effort and dependencies.

Answers a question first

A · Price integrity

One product family, twelve months. Line up quote date, acceptance date, the price the system calculated, the price that went out, and what was invoiced. Test whether margin decays with quote age, and what the manual adjustments are worth.

Value
5
Readiness
3
Speed
4
Ease
3

15 of 20.

Starts this week

B · Lost-quote loop

Export every quote for twelve months and count what converted, by customer and by size. Then add a required reason to the Lost status so the next twelve months tell you why. Your own process map names this gap.

Value
4
Readiness
4
Speed
3
Ease
5

16 of 20.

Third, and conditional

C · First-pass quality

Find where defects, recuts and design rework concentrate — by job type, line, shift and crew. Two possible data sources: SBCA Digital QC if it is in use, and the hand-noted iCommand audit sheets, which cost nothing to start counting.

Value
3
Readiness
2
Speed
3
Ease
3

11 of 20.

Read the scores before you read the recommendation

On an unweighted sum, B beats A — sixteen to fifteen. We are still putting A first on the agenda, and we are not going to hide the arithmetic to make that look tidier.

The reason is that the two have different clocks and do not compete for the same people. B's configuration change should happen this week — it takes an hour of a systems administrator's time and a five-minute conversation with sales, and every day it is not switched on is a day of lost-quote reasons you will never recover. But its most valuable output is the reason data, and that only exists going forward. A is the one that can answer a question from records you already hold, this month, without waiting for anything to accumulate.

So: switch on B, then run A. If you only have appetite for one thing, do B's field change anyway — it is the cheapest item in this document and it is the one that gets more expensive every week you defer it.

 A · Price integrityB · Lost-quote loopC · First-pass quality
Prerequisites The original calculated price is retained after the manual adjustment; quotes link to jobs on the Q→J number; Sage invoices exportable; accounting will agree one margin definition. First two are open questions iTruss can export quotes with status and status date, and a picklist field can be added behind the Lost status. Sales agrees to fill it in. Either Digital QC in use with an export path, or a willingness to tick and code the audit sheets daily. Job IDs shared with production.
Effort Moderate. Two exports, one join, and mostly definition and reconciliation work. Little engineering. Low. One export and one configuration change. The hard part is human, not technical. Low to moderate for the audit-sheet route. Unknown for Digital QC until the export question is answered.
Time to first evidence 2–4 weeks from receiving the exports. Days for conversion rates from history. One quarter before reason codes support a conclusion. 4–6 weeks for audit-sheet counts. Longer if it depends on a Digital QC export.
Where the value is Gross margin on all accepted work in the family, plus a standing answer to whether the manual price adjustments help or hurt. Highest ceiling of the three. Two places at once: pricing calibration (are we losing on price or on lead time?) and customer selection (who do we win with, and at what size?). The rework and callback base. Often poorly measured, so the size of the prize is genuinely unknown — including to us.
Main risk The calculated price is overwritten by the adjustment rather than stored alongside it — in which case half the pilot is only available going forward. The field gets filled in with whatever is fastest. Six honest options beat twenty precise ones; audit the first month. Inspection or audit coverage too sparse or inconsistent to support crew and shift comparisons, leaving you with an anecdote.
Success looks like A defensible relationship between quote age and realised margin, and a manager-approved change to validity, escalation, or both. A win-rate table by customer and quote size that changes who sales chases, and a reason distribution that changes how quotes are priced. A defect concentration that survives adjustment for job mix, and one approved operating change.
Stop if Original quoted costs or calculated prices are unrecoverable for more than half the sample. Stop, switch the effort to B and C, and fix the retention gap first. Sales will not fill the field in. That is a management problem and no amount of data work substitutes for it — better to know in week two. Inspection coverage under roughly one truss in ten. Treat what you have as descriptive and do not rank crews on it.

What would change this ranking

If the calculated price is not retained — that is, if the manual adjustment overwrites it rather than sitting beside it — A loses half its content, and B should move ahead of it on the agenda as well as on the calendar.

If rework and callback cost is already tracked in dollars and is large, C's value score rises and it may outrank both. That is a number you have and we do not.

If iTruss keeps a dated history of status changes, A and B both get faster and cheaper, because the pipeline clock is already recorded and needs only to be read.

What is not on this list is saw and line performance. It is the question a plant most wants answered and the one this plant is least equipped to answer today: the timestamps live in eShop and iCommand, neither publishes an export path, and your map shows the scheduling spreadsheet as a placeholder. It stays deferred until either a vendor conversation opens the data or a short hand-observed sample justifies the effort. Appendix B sets out how to do it properly when the time comes.

What you can do yourself, and what needs help

Caleb, unaided

  • Convene the working session and agree the priority decision
  • Approve the Lost reason field and tell sales it is required
  • Send the data request in Section 07 as written
  • Run the first cut — conversion rate, then quote age against margin — in a spreadsheet, following Section 08
  • Walk the floor to confirm or contradict what the data suggests
  • Own the guardrails and call the stop

Be warned about one of these. The spreadsheet cut is genuinely doable by one person, but the join between iTruss and Sage is where it goes wrong, quietly, in a way that survives several meetings. Section 08 gives you the pivot step that prevents it. Do not skip it.

Needs someone else

  • Systems administrator: exports that preserve record IDs and relationships; adding the reason field; answering whether iTruss keeps status history
  • Accounting: the agreed margin definition, which Sage report is authoritative, and reconciliation back to the books
  • Sales manager: the reason-code list, and the decision that it gets filled in
  • Analyst: only once volume exceeds a spreadsheet, or when comparisons need adjusting for job mix
  • Vendor: any Alpine, iCommand or eShop extract — see the reference section

None of these is a project. The largest single ask is a few hours from whoever administers iTruss, and it happens once.

06 — First working session

Two hours, eight answers, one decision

Bring whoever administers iTruss, the sales manager, someone from accounting who works in Sage, and the production manager. Start with the questions your process map cannot answer — they are mostly about what the systems retain, not about what people do.

The eight questions

Ordered by how much the answer changes what you do next. The first four decide whether the recommended pilot is possible at all.

  1. Does iTruss keep a dated history of status changes, or only the current status? If it keeps history, your entire pipeline clock — quote to estimate to drawings to production to delivered — already exists and needs only to be read. If it keeps only the current state, the same measurements require capture going forward and every timeline in this document moves. Ask this first
  2. When the sales manager sets the final price, is the calculated price still stored? Your map shows a calculation followed by a manual adjustment. If both numbers survive, Pilot A can measure what the adjustments are worth from history. If the adjustment overwrites, it can only measure it going forward.
  3. Does the job record keep the original quote number, and is the numeric root unchanged? The map says the number changes from Q to J. Confirm that the digits are stable and that the Q number is not discarded, because that is the join everything else depends on.
  4. When a job ships in several billable sections, does Sage produce several invoices — and which Sage product is it? Sage Intacct, Sage 100 and the others have very different extraction paths, and the answer determines whether the accounting side is an export, an ODBC connection or a paid licence.
  5. Are we an SBCA member, do we run Digital QC, and can its history be exported? Two of the cheapest opportunities in this document — free inspection data and the industry cost benchmark — depend on the answer, and neither is worth planning around until someone has checked.
  6. Is the scheduling spreadsheet still a placeholder? Your own map labels it one. If it has since been replaced, the shopfloor picture in this guide is out of date in the most important place. If it has not, that is the constraint on any delivery-reliability work.
  7. Which numbers do teams quietly disagree about? Ask it plainly and let the room answer. Every plant has two definitions of margin and two definitions of on-time, and finding them now is cheaper than finding them in front of a customer.
  8. Who owns the first pilot, validates the numbers, and has the authority to change the rule? If the answer is three different people, the pilot will produce a finding and no change.

Leave the room with these six

Priority decision
Business measure it moves
Owner, and who validates the number
Initial sample and source system
Largest evidence gap
Next action, and the date it happens

What counts as a useful first result

A result is ready for management when it has a clear decision attached, source records that reconcile to the books, a calculation someone else could repeat, an honest statement of what it could not control for, an accountable owner, and a practical way to test the change. A plausible narrative is not a result. A new dashboard is not a result.

07 — The data request

Four requests you can forward as written

One block per person. Each is deliberately small, and each tells you whether the next one is worth sending. Send the first two together; the others depend on answers from the session.

Applies to all four

CSV or Excel. One row per record — do not aggregate, summarise or pivot before sending. Preserve the original record identifiers exactly as the system stores them; do not renumber, reformat or strip prefixes. Include the field definitions, even informally. If a field is blank, leave it blank rather than filling it with a zero or a dash — the difference between “nothing was recorded” and “the value was nothing” matters more than anything else in the file.

Request 1 — Quotes and jobsTo: whoever administers iTruss

Please export every quote created between [date] and [date], whatever happened to it — won, lost, still open. One row per quote.

quote_number as stored, with prefix job_number if it converted; blank if not customer_name and customer_id date_created current_status date_of_current_status date_accepted the date it converted, if it did date_lost the date it was marked Lost, if it was quoted_amount the price that went to the customer calculated_amount the price the system produced, if retained product_family or job_type estimator and salesperson

Two questions with it: does iTruss store a dated history of status changes, and if so can that be exported as a second file with quote number, status and timestamp? And is the calculated price retained after the manual adjustment? A one-line answer to each is as valuable as the file.

Request 2 — InvoicesTo: Accounting

Please export from Sage every invoice and credit raised for the same period and the same customers. One row per invoice line, not per job.

invoice_number job_number or reference whatever links back to the iTruss job customer_id invoice_date line_description line_amount excluding tax tax_amount and freight_amount separately, if held separately credit_flag or negative amounts, whichever the system uses

Two questions with it: which Sage product is this, and when a job ships in several billable sections, does it invoice as several invoices under one job number? Also worth agreeing now, in one sentence, what counts as material cost for a job — that single definition is what the whole analysis will be measured against.

Request 3 — The reason fieldTo: Sales Manager

This one is not an export. It is a decision and a short list.

We are adding a required reason to the Lost status in iTruss. Please confirm the option list — the starting suggestion is price · lead time · scope or missing items · lost to named competitor · customer cancelled · no decision — and confirm that whoever changes a quote to Lost is expected to fill it in. Where the competing price is known, a free-text note for it is worth more than everything else on the list combined.

Keep the list to six. A longer list gets answered with whichever option is fastest to click, and a precise taxonomy filled in carelessly is worse than a coarse one filled in honestly.

Request 4 — Quality and contextTo: Production Manager

Only after the session, and only if Pilot C is going ahead.

Digital QC history export if SBCA Digital QC is in use Audit sheets, last 3 months the iCommand sheets with hand-noted errors Plant calendar scheduled hours, shutdowns, shift patterns Crew hours by shift aggregated only — no individual records

No personnel records, ever. Aggregated hours by shift and line are sufficient for every question in this document, and anything more detailed creates an obligation without adding an answer. The constraint on this is set out in Section 10.

Before any of the four — the free request that prevents most wasted effort

Ask for descriptions rather than data: the list of systems with a named administrator for each, one sample of each standard report already produced, the column definitions for the tables above, and how long each system keeps history. It costs almost nothing, it takes a day, and it routinely changes what the next request should say.

Then, before the twelve-month pull, ask for twenty to thirty varied jobs — straightforward, complex, delayed, revised and reworked. This is a test of whether the records connect, not a measurement of anything. It must never be presented as a performance finding, and it will tell you within a day whether the full request is worth making.

08 — Doing the analysis

From two exports to an answer, in a spreadsheet

This is the step most guides leave out. It is not difficult, but there is exactly one place where it goes wrong silently, and a wrong margin number will survive three meetings before anyone catches it.

Everything below is Excel or Google Sheets. No database, no scripting, no analyst. Work on a copy, never on an export you cannot pull again. The two exports are the ones in Section 07: quotes and jobs from iTruss, and invoice lines from Sage.

Before you start

Column letters below are written for the layouts requested in Section 07. Real exports never come out in the order you asked for. Open each file first, write the actual column letter next to each field name on a scrap of paper, and substitute as you go. Every formula here refers to fields by name in the surrounding text for exactly this reason.

  1. Put each export on its own tab, untouched.

    Name the tabs quotes and invoices, and add two empty tabs called byjob and work. Never type into the first two — every calculation happens on the last two. When someone asks in six weeks where a number came from, you can re-run it.

  2. Collapse the invoice lines to one row per job. This is the step that saves you.

    Sage returns one row per invoice line, and your process map shows a job can ship in several billable sections — so a single job number may appear on many lines, and possibly across more than one invoice — Section 07 asks accounting to confirm which, and until they do, assume it does. Look a job number up against that list directly and you will pick up one line and silently drop the rest. The total will be too low and it will look entirely plausible.

    So summarise first, with a PivotTable rather than a formula:

    Select the whole invoices tab → Insert → PivotTable Rows: job_number Values: Sum of line_amount (check it says Sum, not Count) Sum of credit or tax amounts, if held separately

    Paste the result into byjob as values. You now have one row per job number, which is the only shape that is safe to look things up against. Sanity-check it: the number of rows should be smaller than the invoice tab, and the grand total should equal the total of line_amount on the raw tab. If it does not, the pivot is counting rather than summing.

  3. Check the quotes tab for repeats before you rely on it.

    On a spare column in quotes, against the quote_number column:

    =COUNTIF( [quote_number column] , [this row's quote_number] )

    Anything greater than 1 is usually a revision. Decide explicitly whether you want the original or the latest, write the decision down in a cell beside the data, and apply it consistently. This is a judgement call, not an error — but an unnoticed one puts the same job in your sample twice.

  4. Build one row per accepted job on the work tab.

    Start from the quotes that converted — the ones with a job_number — and pull the money alongside. Request 1 returns the job number next to the quote number on the same row, so there is no prefix arithmetic to do: look up job number against job number.

    =XLOOKUP( [job_number on this row], byjob!$A:$A, byjob!$B:$B, "NOT FOUND" )

    — where byjob!$A is the job number column of your pivot and byjob!$B is the summed amount. If you only have VLOOKUP, give it FALSE as the fourth argument so it demands an exact match.

    Then count your "NOT FOUND" results. A handful is normal — cancelled jobs, jobs not yet invoiced. If more than a few per cent fail to match, stop and find out why before continuing. A systematic mismatch means the two systems are not keyed the way you think, and every number downstream of it is fiction.

  5. Add the columns that do the work.
    quote_age_days = date_accepted − date_created realisation = invoiced_total ÷ quoted_amount price_delta_pct = (quoted_amount − calculated_amount) ÷ calculated_amount

    Start with realisation, not margin. It compares what you invoiced against what you quoted, it needs nothing from anybody else, and it answers the shape of the question: does an older quote end up realising less of its own price? Margin proper — invoiced amount less actual job cost — needs a third export and an agreed cost definition, and it is worth waiting for rather than guessing at.

    The price_delta_pct column only works if iTruss retained the calculated price alongside the price that went out. If it did not, leave the column out and note it: that absence is itself one of the findings, and it is what Pilot A captures going forward.

  6. Band and compare. Use these bands.
    0–14 days quoted and taken quickly 15–30 days 31–60 days 61+ days the tail, where the damage is if there is any

    Fewer than fifteen jobs in a band means you do not have a band — merge it with its neighbour or widen the window to two years. Report the count next to every average, always. A band of four jobs produces a confident-looking number that means nothing, and that is the most common way an analysis like this misleads the person who ran it.

  7. Check the obvious confounders before you believe it.

    Two things move with quote age and will fake a result if you ignore them. Job size — big complex jobs take longer to close and price differently. Customer — one slow-deciding customer with thin margins can produce the entire apparent effect on their own.

    The check is simple: re-run the banding within one customer, and within one size range, and see whether the pattern survives. If it holds inside both, you have something. If it disappears, you have found out that your slow quotes are simply your big or your awkward ones — which is also worth knowing and costs nothing more to learn.

  8. Reconcile to the books before you show anyone.

    Total the invoiced amounts on work and ask accounting whether that figure matches what Sage says for the same customers and period. It will not match exactly — credits, freight and tax will differ. It should match closely enough that the difference has a name. If nobody can name the difference, the sample is not what you think it is.

  9. Write down what would have to be true for you to be wrong.

    Before the number goes in front of anyone, put one line under it: the sample, the date range, the number of jobs per band, what you used as the denominator, and the biggest thing you could not control for. That line is what makes the result usable in a decision rather than arguable in a meeting.

The same discipline, on the cheaper question

The conversion analysis in Start here uses only the quotes tab and only steps 1, 3, 8 and 9 — no join, no pivot, no invoices. Count quotes by status; group by customer and by quoted-amount band rather than by age; report the count beside every rate. It is the same discipline at a quarter of the work, which is why it is the thing to do first.

When this outgrows a spreadsheet — and how you will know

Three signals, in the order they usually appear. One: you are re-running the same lookups by hand each month and the manual steps have started to differ between runs. Two: you need to adjust for two or more confounders at once, which a pivot table cannot honestly do. Three: more than about fifty thousand rows, where the file becomes slow enough that people stop re-checking it.

None of those is a reason to buy a platform. The first is solved by writing the steps down; the second by an analyst for a fortnight; the third by moving the same logic into a database. In that order, and not before the signal appears.

09 — How a record becomes a decision

One job, end to end

For any job, the team should be able to answer four questions: what did we expect, what happened, why did it differ, and what should change next time.

The chain below is what that requires. The right-hand column is where it usually breaks — check each link before assuming the records will join.

01Quote
Should carryQuote ID and version, customer ID, product type, quoted material cost, validity period, won/lost status, dates.
Usually breaksLost quotes never exported. Original quoted cost overwritten by the accepted revision.
02Design & release
Should carryRelease and revision IDs, quantity and complexity, approved bill of materials, design hours, approval timestamps.
Usually breaksOnly the final revision survives, so redesign effort becomes invisible and estimating never learns.
03Materials
Should carrySpecies, grade, dimension, lot, purchase and receipt dates, landed cost, freight, actual usage against BOM, returns.
Usually breaksActual usage inferred from purchases, which mixes price movement with physical waste.
04Production
Should carryJob and component IDs, station or asset, start/stop/complete times, crew hours, setup, downtime reason, scrap.
Usually breaksDaily totals only, no event-level timestamps — short stoppages are unrecoverable after the fact.
05Quality
Should carryInspected units, inspection coverage, defect codes, plate placement and embedment, recuts, repairs, callbacks.
Usually breaksHeld in a separate system nobody joins to production — often the single most recoverable gap.
06Delivery
Should carryPromised and actual delivery, partial loads, mileage and freight, site readiness, redeliveries, damage.
Usually breaksPartial deliveries recorded as complete, so on-time performance reads better than it is.
07Invoice & cost
Should carryFinal invoice, credits, actual labour cost, allocation definitions, payment timing.
Usually breaksLives in Sage rather than in iTruss, so every margin question crosses a system boundary.

Resolve identifiers before combining any totals

One project may contain multiple quotes, buildings, releases, trusses, deliveries and invoices. State what one row means in every export. Build a checked crosswalk between systems and preserve original IDs. An incorrect join multiplies cost or revenue, and a quietly double-counted margin number will survive three meetings before anyone catches it. Similar customer names are not evidence of a match.

Confirm the system map before requesting anything

Alpine supplies connector plates, equipment, engineering services and software; its IntelliVIEW suite covers design and business management and eShop covers plant and production tracking.[6] Those are vendor capabilities. They do not tell you which modules Southern Components owns, which are switched on, or what can be exported. Ask the administrator or the vendor about supported reports, exports and authorised read-only access. Do not assume an integration exists — Section 13 sets out what is actually documented.

The question that decides scope

Where do final invoices, credits, purchasing, inventory and actual labour cost live? Your process map puts invoicing in Sage and production in Alpine; purchasing and actual labour cost may sit in either, or in neither. Without them, production analysis is still possible — realised job profitability is not. Answer this before promising anyone a margin number, because it determines whether Pilot A can run at all.

Retain source files, export dates, record dates, filters, field definitions and corrections. An export date tells you when data was obtained, not when its contents were last true.

10 — Decision infrastructure

The architecture underneath a repeatable answer

Infrastructure here means the smallest set of agreements that makes an answer reproducible and someone accountable for acting on it. It is mostly definitions, not software.

Source records → validated joins → analysis → recommendation → named owner → action → measured outcome

Every step that gets skipped is where value leaks. Most plants have the first three and none of the last four.

The minimum shared identifiers

You do not need a data model. You need six identifiers that mean the same thing in every system, and a written statement of what one row is in each export.

IdentifierMust be stable acrossWhy it matters
job_idQuote, design release, production, QC, delivery, invoiceThe spine. If only one identifier is fixed, make it this one.
quote_id + versionCRM, estimating, accepted jobWithout the version you cannot tell an original price from a revision — which kills Pilot A.
customer_idiTruss quotes and jobs, Sage invoices, delivery recordsNever match customers on name. Trading names, branches and typos will silently merge or split accounts.
component_id (truss ID)Design, cut list, production, QCThe only way to attach a defect to the thing that was built and the design that specified it.
asset_idProduction events, maintenance, QC line fieldMust survive machine moves, upgrades and replacements, or trend analysis compares two different machines.
shift + crewTimekeeping, production, QCAggregated, never individual — see the constraint below.

One more rule that costs nothing and saves weeks: every timestamp in America/Chicago, stated explicitly, including the daylight-saving transitions. Overnight shifts and machine clocks drifting from office clocks are the two most common sources of joins that look right and are not.

Ownership and definitions

For each source, record one named owner, what a row means, the units, the update pattern, known quality issues and the retention period. The owner is a person, not a department — the person who can answer “why does this number look odd” without a meeting.

Definitions are agreed before calculation, not after. The specific ones that will otherwise be disputed the moment a number is uncomfortable: what counts in material cost; whether freight is in or out of margin; whether rework hours are direct labour; how overhead is allocated; what “on-time” means when a load is partial; and whether a credit reduces revenue or increases cost. Write them down. One page.

Quality checks that run every time

  • Row-count and control-total reconciliation against a trusted source report, for every export, every time. If the totals do not tie, stop.
  • Join-rate check. What fraction of quotes matched an accepted job, jobs matched an invoice, trusses matched an inspection? Report unmatched records rather than dropping them silently.
  • One-to-many detection. Explicitly count children per parent before any sum. This is where revenue gets multiplied.
  • Range and plausibility rules. Negative quantities, zero costs, dates before the job opened, completion before start.
  • Missingness reported, never imputed silently. A blank cost is not zero.

Corrections get a dated note and a reason, and the original is kept. If a number in a management pack changes between meetings and nobody can say why, the pack stops being believed — permanently.

Traceability

Any figure that reaches a manager should be traceable in one step back to the file, filter and formula that produced it. In practice that means each analysis keeps: source file names with export dates, the exact filters applied, the calculation steps, and the record IDs behind any highlighted case. This is the difference between an answer and an assertion — and it is what lets you correct a mistake instead of abandoning the method.

Access and the personnel constraint

Read-only wherever possible. Analysis copies, never the live system. And one hard rule:

Use team- or crew-level data for discovery, not individual comparisons. Individual output comparisons are misleading when people are given different jobs, equipment, shifts and support — and in a long-tenured family business a badly framed first analysis costs more in trust than it returns in insight. Pay data in particular should be handled in aggregate bands, with HR involved, and never used to rank named individuals. If a genuine pay-versus-outcome question arises, Appendix C sets out how to ask it defensibly.

How often each decision needs fresh data

DecisionRefreshWhy not more often
Quote validity / re-pricing ruleWeekly during the pilot, then monthlyLumber indexes publish monthly; your own purchase prices move faster, so watch those weekly if the pilot shows sensitivity.
Realised margin by job typeMonthly, on closed jobs onlyOpen jobs have incomplete cost. Monthly matches the accounting close.
First-pass qualityWeeklyFast enough to act on a crew or line issue while people still remember the week.
Delivery reliabilityWeeklySame reason. Also the measure most visible to customers.
Purchasing & supplier performanceMonthlyEnough volume to be meaningful; matches supplier review cycles.
Capacity and constraintQuarterly, or on mix changeThe constraint moves with product mix and season, not with the week.

Reviewing recommendations, and recording what happened

Every recommendation gets a one-page record: the decision, the evidence, the expected effect, the guardrails, who approved it, the date it took effect, and — crucially — what actually happened, written down after the fact. Most organisations record the decision and never the outcome, which is why the same argument recurs every two years. Keep the ones that failed. They are more instructive than the ones that worked.

The starting architecture

What to build now

A dated folder of read-only exports. One analysis file — a spreadsheet is fine, and a single-file database such as DuckDB or SQLite if volume outgrows it. One written page of definitions. One page of join rules. Version the analysis, not just the output.

Cost: nothing but discipline. This will carry you through both recommended pilots.

What would justify more

Expand only when at least two are true: the same joined dataset is serving three or more recurring decisions; manual export has become the bottleneck rather than the analysis; more than one person needs the same numbers simultaneously; or a decision now needs data fresher than a person can produce by hand.

Until then a warehouse adds cost, latency and a maintenance burden without adding an answer.

The specification every use case gets

Before any analysis starts, fill this in. If a row cannot be filled, that is the finding.

FieldWorked example — Pilot A
DecisionWhether to shorten quote validity, or add a material re-pricing trigger, for this product family.
OwnerNamed person who can change the quoting rule — not the analyst.
InputsQuote header and lines with original costed detail; acceptance dates; purchase receipts with landed cost; final invoices; agreed margin definition.
MethodGroup accepted jobs by days between quote and acceptance. Compare realised material margin across bands. Control for job complexity and customer mix before concluding.
OutputOne chart, one table of margin by quote-age band, and a list of the jobs in the worst band with their record IDs.
ActionA stated validity period, or a rule that re-prices material above a defined index or purchase-price move.
MetricRealised material margin on comparable jobs, measured on closed jobs for the following quarter.
LimitationsQuote age correlates with job size and customer type; the estimate is associative, not causal. Small samples in the long-age band.
Next validationRe-run on the next quarter of closed jobs before making the rule permanent.

11 — The pathway

Phased, with a gate at each step

Each phase has to earn the next. The gates are there so that a stalled pilot stops instead of quietly expanding.

PhaseScope and deliverableAdvance only when…
This week
Before anything else
Add the required reason field behind the Lost status in iTruss and tell sales it is mandatory. Export twelve months of quotes and count conversion by customer and by quote size. Neither waits on the session. The field is live and being filled in, and someone has read the conversion table. This phase has no dependency and no reason to slip.
First working session
Week 0, two hours
Agree the priority decision and its owner. Map the workflow on a whiteboard. Inventory the systems and who administers each. Work through the eight questions in Section 06 — the first four decide whether the recommended pilot can look backwards at all. Issue the data request. A single named decision, a named owner, and a specific export request have left the room. Section 06 is the agenda.
Days 1–14
Can the records answer it?
Receive the sample. Check that quotes join to jobs to invoices. Reconcile control totals against a trusted report. Document what is missing. Produce the readiness note — not an answer, a verdict on whether an answer is possible. Selected records reconcile, and a manager has confirmed the definitions. If more than half the quoted costs or calculated prices are unrecoverable, stop, bank what Pilot B is already producing, and switch the effort to C.
Days 15–30
The first answer
Twelve to twenty-four months of accepted jobs in one family. Margin by quote-age band, adjusted for complexity and customer mix. A dated list of the worst cases with record IDs. Walk two of them with estimating. A relationship that survives the adjustments, or a defensible finding that there is none. Both are results.
Days 31–60
Change one thing
One approved change — a stated validity period, or a re-pricing trigger above a defined move. Apply to new quotes in the family only. Track quality, delivery, win rate and margin as guardrails. The rule is actually being applied to new quotes — check a sample, do not assume — and estimate-to-actual variance is being captured on them. Do not expect closed-job margin yet. A quote issued on day 31 cannot be accepted, built, delivered and invoiced by day 60, and a gate that demands it will fail for reasons that have nothing to do with the change.
Days 61–120
Prove it repeats
Now the jobs quoted under the new rule start closing. Re-run the analysis on that cohort. Read the first quarter of lost-quote reasons from Pilot B — by this point there is enough to see a distribution. Start Pilot C if the session cleared it. Add the scorecard in Section 12 to the existing management meeting — not a new meeting. The effect holds on jobs the analysis has not seen, the lost-reason distribution is being used in pricing conversations, and the scorecard is read by someone who acts on it.
Beyond 120 days
Only on demonstrated value
Extend to more product families. Connect purchasing and supplier performance. Add delivery reliability. Open the production-data conversation with the vendor, now with a specific question to justify it. At least two decisions are being made on the joined data, each with an owner and a recorded outcome.

Prerequisites versus enhancements

Prerequisites — nothing starts without these

  • A named decision owner with authority to change the rule
  • An agreed margin definition, signed off by accounting
  • Exports that preserve record IDs and relationships
  • Answer to: where do invoices, purchasing and labour cost live?
  • A stated retention and access position on personnel data

Enhancements — valuable, not blocking

  • Lumber index feeds for context (Section 13)
  • Weather and calendar joins (Appendix A)
  • Building-permit demand indicators
  • Fleet telematics for delivery timing
  • In-plant humidity logging

On counting the benefit

Distinguish an estimate from a demonstrated saving, and never add overlapping ones. Hours released become cash only if spending actually falls. Capacity released becomes revenue only if there is demand to fill it. A margin improvement on a subset of jobs is not a company-wide percentage. If the data does not support a business-impact figure, say so and recommend the smallest measurement step instead — that is a better answer than a confident number nobody can reproduce.

12 — Management scorecard

Eight numbers now, four more later

Small enough that it gets read. Every line has a definition, a source and an owner — a measure without all three does not belong on the page.

This is a blank template. No values are shown because none have been measured. Fill it from your own records; do not populate it from anything in this guide.

MeasureDefinition — agree this firstSourceCadenceValue
Realised material marginNet job revenue after credits, less actual material and freight, on closed jobs only. State whether rework is in or out.Accounting + purchasingMonthly
Estimate-to-actual varianceQuoted material cost minus actual material cost, per job, as a percentage of quoted. Report the distribution, not the mean.Estimating + purchasingMonthly
Quote age at acceptanceDays between quote issue and acceptance. Median and 90th percentile — the tail is the exposure.iTrussMonthly
Quote acceptance rateAccepted ÷ decided quotes. Exclude still-pending quotes from the denominator, and count response separately from acceptance.iTrussMonthly
First-pass qualityUnits acceptable at first inspection ÷ units inspected. State the denominator and the inspection coverage rate beside it — the ratio is meaningless without them.Digital QC if in use; otherwise counted audit sheetsWeekly
Rework and callback costLabour plus material on recuts, repairs and post-shipment callbacks. Split in-plant from after-shipment.Production + accountingMonthly
On-time and complete deliveryLoads delivered on the promised date with nothing outstanding. A partial load is not on-time.DispatchWeekly
Good output per staffed hourAcceptable output ÷ hours actually staffed, within one comparable job family. Never compare across families without adjusting for complexity.Production + timekeepingWeekly

Four more that complete the picture — and what each one waits on

These are not on the page above because nothing in the first ninety days produces them honestly. They are listed so that the gap is visible rather than silently absent, and so you know what to ask for when the time comes.

MeasureDefinitionWaits on
Days sales outstandingAverage days from invoice to cash, by customer. The cash half of profitability, and the half most plants never put on a management page.A Sage receivables export. Available as soon as accounting is in the room.
Purchased lumber price varianceWhat you paid per unit against the published regional index over the same period. Tells you whether buying is beating the market or following it.Purchasing records joined to a price series — see the reference section. A second-quarter item.
Staffed against scheduled hoursHours actually worked against hours planned, by line and shift. Aggregated only. The denominator under every productivity number on the page above.The plant calendar and aggregated crew hours. Cheap, and worth asking for early.
Booked but not shippedBacklog in weeks of capacity, by product family. The only forward-looking line on the page, and the one that connects sales effort to what the plant can actually serve.Job schedule data joined to a capacity assumption. Meaningful once the scheduling spreadsheet is no longer a placeholder.

A measurement argument worth knowing about

The industry has a live disagreement about the unit of productivity. Board feet is the traditional measure; a well-documented school of practice argues it is unreliable for pricing and scheduling because it does not reflect labour content, and uses man-minutes instead — with the claim that plants typically carry only six to twelve labour factors where sixty to eighty are needed.[3] We are not endorsing a particular system. But if you compare lines, crews or job types on board feet alone, expect the comparison to be challenged — and expect the challenge to be at least partly right.

13 — Reference: what can be connected

What can actually be connected

Every entry below was checked against the provider's own documentation in September 2026. Where we could not confirm something, it says so.

Legend

Verified provider documentation confirms it

Unverified plausible, needs vendor confirmation

No API confirmed absent or gated shut

A · Your systems — what can be got out of each

Which systems SCI runs comes from your own process maps of April 2025 Your map. What each vendor documents about getting data out comes from the vendor's own material, checked in September 2026 Public. The two are different kinds of claim and the table keeps them apart: the badge describes the vendor's documentation, never confirmation that you use the product.

SystemWhat it holds for youGetting data outJoin keysPhase
iTruss
In-house · no public docs
The system of record. Quotes and jobs, customer, RFQ detail, pricing detail, EWP and hardware, status through the whole pipeline, production job list, job schedule form. Every pilot in this guide starts here. An in-house platform, so there is no vendor documentation to check and no published API to rely on — but also nobody to negotiate with. Whoever administers it can answer in an afternoon what a vendor would take a month to confirm. Ask three things: can it export the quote list; does it keep a dated history of status changes; is the calculated price retained after the manual adjustment. All three open Q…/J… number, customer_id, status, timestamps Pilots A & B
Sage
Vendor-documented
Invoices, credits, tax, and the job once imported. The realised-money half of every margin question. Your maps show Sage at three points: tax tables into the quote, job import before production, and invoicing after delivery. Which Sage product decides everything here. Intacct: an XML gateway at api.intacct.com/ia/xml/xmlgw.phtml plus a newer REST API that Sage now recommends for new work; requires a paid Web Services developer licence (price not public) and the subscription must be enabled by an admin. Concurrency is tight — one API transaction job at a time per company, plus one offline report job. Sage 100: no general REST API; on-premise Business Objects Interface (COM) or ODBC, and SData was deprecated from version 2025.0. Either way, a scheduled report export is very likely faster than an integration for the first pilot.[11] job_number, invoice_number, customer_id Pilot A
Alpine · iCommand · eShop
No public API
Design, truss details imported into iTruss, production files and batches, printed tickets, and the saw queue. Alpine documents eShop as tracking every piece and plate in real time, calculating actual labour and material cost per component, and reporting how often recuts occur and where delays originate.[6] The capability is marketed; the integration path is not documented. No API documentation is published for the US products. Treat extraction as a vendor engagement with a lead time, not a self-serve integration. Ask specifically for: supported report exports, scheduled file drops, and read-only database access. In the meantime the iCommand audit sheets already carry design-error information on paper, and counting them needs no vendor at all. job_number, component ID, saw/table asset, timestamps Later
SBCA Digital QC
Vendor-documented
If you run it: inspection records carrying job number, truss ID, truss type, date/time, line, shift, crew and fabrication tolerance, plus plate placement, embedment, member gaps and lumber defects.[4] Whether SCI is an SBCA member and uses it is an open question — it does not appear in your process maps. Open Free to SBCA component-manufacturer members. Documented to read files from Alpine, Eagle Metal, MiTek, Paragon and Simpson Strong-Tie. ANSI/TPI 1 requires an in-plant quality control programme; Digital QC is one free way to run one, not itself the requirement. No export mechanism is documented publicly — ask SBCA directly before scoping anything on it. SBCA's own pages disagree on whether iOS is supported; confirm the device question too. job_number, component ID, line, shift, crew, timestamp Pilot C
MiTek
No public API
Relevant only if MiTek software is in use alongside or instead of Alpine — your maps do not show it. Real-time production and delivery tracking and ship-date determination sit in MiTek Production; piece-level labour tracking and material optimisation sit in MiTek Management. They are separate products, so budget for the one that has the data you want.[7] No published API docs for the US line. Two traps worth knowing. First: MiTek's MBA product is sold in the US as well as the UK, but only the UK material documents SQL-driven reporting and links to third-party ERP and accounts packages — so ask your US representative whether the US build carries them rather than assuming either way. Second: searching for “MiTek API” returns Mitek Systems (NASDAQ: MITK), an unrelated identity and check-imaging company with extensive public documentation. It is not the same firm. As above Later
Excel, Teams and paper
Yours to decide
The designer workbook, the pricing template, the proposal, the scheduling spreadsheet your map marks as a placeholder, the look-ahead and weekly delivery tabs, the cutting and pick tickets, the green sheet, the audit sheets. This is where the judgement is, and where the data is not. No integration needed and none available — these are files. The question is not how to extract them but which of them should stop being files. The cheapest wins in this guide come from moving three small facts out of paper and Excel into a field: the lost-quote reason, the calculated price beside the set price, and a design-error tick on the audit sheet. Whatever the file happens to use — usually the job number, sometimes not Now
If the accounting system is not Sage
Vendor-documented
Kept for completeness, because process maps age and systems change. QuickBooks Online: OAuth 2.0, base quickbooks.api.intuit.com/v3/company/{realmId}/. The free Builder tier allows 500,000 metered calls a month — note that under Intuit's programme it is the reads that are metered and capped while writes are unmetered, which is the opposite of most people's intuition. Per-minute throttles are not published.[9] QuickBooks Desktop: no cloud API; local SDK or the Web Connector, whose programmer's guide is dated May 2009. Intuit stopped selling new US Desktop subscriptions after 30 September 2024 (Enterprise excepted, which is still sold), and Desktop 2023 and Enterprise 23.0 went out of service after 31 May 2026 — if either is running, that is a live risk independent of anything in this guide.[10] job_number as reference or class, customer_id, invoice_id Only if relevant

A correction we owe you

An earlier version of this guide listed SmartSuite as your CRM, badged as verified, and scoped the first pilot around QuickBooks Online. Both came from second-hand description rather than from your systems. Your process maps show Sage as the accounting system and show no CRM at all — customer and pipeline information lives in iTruss, the call sheet, Excel and Teams. SmartSuite may still exist somewhere outside the mapped process, and if it does it has a straightforward public REST API;[8] but nothing in this guide now assumes it.

The most valuable phone call in this document

SBCA runs a Financial Performance Survey — an industry income statement with regional and company-size breakdowns and key benchmarking ratios — and a biennial Wage & Benefit Survey. Both are available only to companies that participate.[5] It is the only source of a truss-specific, peer-company cost structure we could find — but it is not the only cost benchmark that exists, and an earlier draft of this guide overstated that. Two others are real: the Census Bureau publishes cost of materials, payroll and operating expenses at six-digit NAICS free of charge through the Annual Integrated Economic Survey (note that under the 2022 classification, code 321215 blends trusses with I-joists and glulam, so it is an industry frame rather than a truss figure), and at least one commercial publisher sells a truss-specific operating-expense breakdown at the former 321214 code for a few hundred dollars.[21] If Southern Components has ever submitted, you already hold the benchmark that would otherwise cost a consulting engagement to approximate. If not, enrolling is the single cheapest way to find out whether your cost structure is normal.

B · Cost and price context — free, public, and immediately useful

SourceDecision it improves & what it givesAccess, auth & limitsResolution & coveragePhase
BLS Producer Price Index
Verified
Estimating and pricing. Input-cost and output-price context for quote-age exposure. Key series: WPU0811 softwood lumber; PCU321215321215 engineered wood member manufacturing (the continuing successor to the truss index); WPU1017 steel mill products as a connector-plate proxy; PCU484121484121 long-distance truckload freight.[1] Free. Public Data API v2 at api.bls.gov/publicAPI/v2/timeseries/data/. Free registered key, renewed annually. 500 queries/day, 50 series/query, 20 years/query, 50 requests per 10 seconds. Bulk flat files need no key at all. Public domain. Monthly, national, not seasonally adjusted. Released mid-month for the prior month. Pilot A
FRED
Verified
The same BLS series plus state building permits and diesel, through one key and one schema instead of three. Free key. 120 requests per minute, after which requests are refused with a 429. Attribution notice is required by the terms of use, and some series carry third-party copyright — the BLS and Census series do not.[12] Monthly/weekly depending on series; LABPPRIV and TXBPPRIV give state permits back to 1988. Pilot A
EIA diesel prices
Verified
Delivery cost. Use PADD 3 (Gulf Coast), not national — series EMD_EPD2D_PTE_R30_DPG (all types) and EMD_EPD2DXL0_PTE_R30_DPG (ultra-low sulfur). PADD 3 is the Gulf Coast district: Alabama, Arkansas, Louisiana, Mississippi, New Mexico and Texas — wider than your trade area, so read it as a regional signal rather than a local price.[13] Free key. Base api.eia.gov/v2/, route petroleum/pri/gnd. EIA states a key will not be throttled under roughly 9,000 requests/hour with bursts below 5/second, and returns a maximum of 5,000 rows per request. Bulk PET.zip needs no key. Weekly, released Tuesday mornings since April 2025 — Wednesday when Monday is a federal holiday. EIA’s own older explanatory pages still say Monday; the release notice is the authority. From 1994 (ULSD from 2007). Includes taxes. Phase 2
Random Lengths / Fastmarkets
API unverified
Regional softwood lumber and panel prices — 1,600+ items, 14 composite groups including the framing lumber composite. Closer to what you actually buy than a national index. Subscription publication, weekly. Pricing not public. Fastmarkets does operate a market-data API, but its documented coverage is metals and exchange settlements — forest products are not mentioned. Get API availability and redistribution terms in writing before designing anything around it.[14] Weekly, North American regions. Optional
Southern Yellow Pine regional prices
Paid, no API
The species you actually buy, in the region you buy it. TimberMart-South (quarterly, 11 southern states, the upstream source for the free Arkansas and Mississippi extension reports) and Forest2Market's SYP lumber benchmark. Both subscription, pricing not public, no API verified. Free quarterly state extension summaries exist for Arkansas, Mississippi, Louisiana and East Texas — coarser, but free and citable.[15] Quarterly, state and regional. Optional

C · Demand signals

Correct a common assumption

There is no Building Permits Survey API. The dataset eits/bps does not exist, and the developer page often cited for it returns 404. What exists: the Census API series eits/resconst (New Residential Construction) at national and Census-region level only, and eits/vip for construction spending. Sub-national permit data — CBSA, county, place — is bulk Excel download only. A Census API key is now required for every request; the old keyless allowance is gone. Note also the January 2024 file-naming change from msa* to cbsa*.[16]

Practical route for a Gulf-South plant: monthly CBSA files for pipeline, county or place annual files for territory planning, and FRED's LABPPRIV / TXBPPRIV for a quick state-level trend without any file handling. Remember what a permit is — units authorised, not started and not completed — with imputation for non-responding offices and a benchmark revision each May.

D · Weather and calendar

Check this before building anything on it

NOAA's hourly archive is about twelve months stale, and it is not just your station. Re-checked on 11 September 2026: the last Integrated Surface Database observation for Shreveport Regional is 27 August 2025, the raw archive has no 2026 folder at all, and other major stations are equally empty — so switching station is not a workaround. The Local Climatological Data product is stale on the same date. Daily summaries do return, currently to about three days ago, so the service is healthy and the hourly ingest is not. Re-check before relying on it — and do not design a “pull hourly weather monthly” job against it today.[17]

SourceWhat it givesAccessCoverage
NCEI Access Data Service
Verified
Hourly history: temperature, dew point, wind, visibility, precipitation, with quality flags. Prefer local-climatological-data over raw global-hourly — it returns parsed named fields instead of ISD composite strings and saves you a parser. No key, no auth. ncei.noaa.gov/access/services/data/v1. Station lookup via the companion search service. Public domain. Shreveport Regional (KSHV), station 72248013957, retrievable from 1973 — but see the staleness note above.
ACIS (Regional Climate Centers)
Verified
The live gap-filler: daily max/min temperature and precipitation, current to within a day or two. Free, no key, no published limit. data.rcc-acis.org/StnData. Checked 11 September 2026 for KSHV: complete to 9 September, with the most recent day or two returning M for missing. Build any job to tolerate that, rather than expecting yesterday.
NWS api.weather.gov
Verified
Forecasts for scheduling and dispatch decisions, plus recent station observations through the observations endpoint — useful as a live check, not as an archive. Free, no key, but a descriptive User-Agent header is required. Limits not numerically disclosed. Forecast, alerts and recent observations. NWS publishes no retention period for observations, so do not plan a history series on it — use ACIS or NCEI for that.
Your own plant calendar
Internal
Scheduled hours, shutdowns, holidays, shift patterns. Without it, every weather and seasonality finding is confounded by how many hours were actually scheduled. Ask for it in week one. It is usually a spreadsheet. The single highest-value “external” dataset is internal.

E · Workforce, maintenance and fleet

Access here varies enormously, and “has an API” is not the same as “you can use it.” This is the section where lead times hide.

SourceWhat it givesCan a direct customer get access?Phase
PaychexEmployee, payroll and time dataYes — self-service. Create an app inside Paychex Flex; requires a Super Admin or Security Admin role. No partner agreement documented. Paychex publishes a rate limit of 10,000 requests per minute, worded as “per partner” — worth clarifying what that means for a direct client app before sizing anything against it.Phase 2
ADPWorker demographics, timecards, schedules, time-offYes, but paid. Access is through “ADP API Central,” a purchased Marketplace product. OAuth 2.0 plus mutual-TLS certificates. Price is login-gated and billed per employee — budget for it.Phase 2
PaylocityEmployee, payroll, time and labourOn approval. Submit an access request; credentials and sandbox follow approval. Add lead time.Phase 2
GustoEmployee, payroll, time trackingNo. Gusto states it does not support API access for customers connecting their own systems to their own account. If you are on Gusto, plan on CSV export.Export only
CMMS — Limble / UpKeep / FiixMaintenance events, asset downtime, work orders, parts — the missing input to any equipment-reliability questionAll plan-gated All three document APIs, and all three gate access by plan. Limble publishes per-method rate limits and lets a super administrator generate a key, but API access sits on its higher tiers; UpKeep and Fiix both restrict it to Enterprise plans, and UpKeep authenticates with a session token from an email and password rather than a key. The simplest option is not software at all — a dated paper or spreadsheet log of asset, date, reason and downtime minutes will answer the first questions.Later
Fleet — Samsara / Motive / Verizon ConnectGPS breadcrumbs, engine state, driver hours; delivery timing and dwellSamsara: self-service token for any customer with a full admin role. Rate limits are 150 requests/second per token but also 200/second per organisation, with much tighter per-endpoint caps — size a poller against the endpoint limit, not the token limit. The “5-second GPS” often quoted is Samsara’s advice on how often to call, not a device sampling rate. Motive: a Fleet Admin can create an API key directly in the dashboard; a support-request route also exists but is not the only path. Verizon Connect: the data-access consent form is completed by the customer in the Reveal marketplace and credentials are emailed on submission — an earlier draft of this guide described it as a weeks-long approval, which was wrong. Do not build dwell from engine-state transitions before checking: Samsara route stops expose actualArrivalTime and actualDepartureTime directly, and Motive publishes geofence entry and exit webhooks. Verizon’s stop and dwell surface sits behind portal registration and is unconfirmed.Later

Scope boundary for this review

Nothing was connected, no personnel records were uploaded, no service was purchased and no ongoing cost was incurred in preparing this guide. Every entry above is documentation review. Verify pricing and terms yourself before committing to any paid source — several of the most useful regional ones do not publish prices.

14 — Tools and prompts

Four prompts, in order

Use these in a company-approved Claude workspace. Each assumes the previous step is done — running them out of order produces confident answers built on nothing.

Before you start. Confirm your company-approved workspace, access, retention and permitted uploads with whoever owns that decision. Exclude personnel records and credentials. Use aggregated crew-level data only.

What this can and cannot do. It can interview the team, inspect files, define calculations, test explanations and draft a pilot. It cannot recover facts that were never recorded, and it cannot prove a cause from outcomes alone. Beyond spreadsheet scale, have it specify the exact queries for an authorised analyst rather than attempting the calculation in chat.

Prompt 1 · Map the decisions

Run first. An interview, not an analysis.

Act as an operations analyst helping Southern Components, a wood and light-gauge metal truss manufacturer in Shreveport, Louisiana. Founded 1960, roughly 50,000 square feet of manufacturing, serving primarily Louisiana, Texas, Arkansas and Mississippi — these come from public promotional material, so correct them if they are out of date.

Our April 2025 process maps show an in-house platform called iTruss as the system of record for quotes and jobs, Alpine with iCommand and eShop for design and the saw, Sage for accounting and invoicing, and Excel for the pricing template, proposals and the production schedule. Those maps are seventeen months old — confirm each with me rather than assuming, and ask whether anything has been replaced since. Coverage and quality of our historical data are unknown.

Our objective is to identify which recurring decisions we could make materially better by connecting our data, across profitability and cash, operating efficiency and production reliability, estimating and pricing, customer selection and sales, purchasing and inventory, workforce planning, logistics and delivery, and sustainable revenue growth. We have no predetermined growth target. Establish targets only after validating a baseline.

Interview me in rounds of no more than five questions. Begin with management priorities, my role, the decisions I make regularly, where work waits or goes wrong, and which outcomes matter most.

Pay particular attention to four things: whether we retain the originally quoted material cost after a quote is revised; where final invoices, credits, purchasing and actual labour cost live; whether lost quotes are recorded and exportable; and whether we run an in-plant quality control program and can export its history.

Do not assume that producing more is the highest-value opportunity. Distinguish revenue growth from profitable growth, time released from cash saved, and local efficiency gains from improvements to the whole business.

After the interview, produce:

1. A plain-English workflow map from quote through delivery and payment. 2. A data inventory: system, owner, date coverage, record type, identifiers, export options, definitions, known limitations. 3. The three most promising decision improvements, ranked on measurable impact, evidence readiness, implementation effort and time to value. 4. The smallest approved, anonymised sample needed to test each. 5. Questions for our software administrators and accounting team.

Separate what I told you from what you verified, inferred, or still need to know. Do not assume fields exist. Do not estimate savings without a supported baseline.

Begin with your first five questions.

Prompt 2 · Test whether the records can answer it

Run with approved sample exports, before any conclusion.

Attach the sample export files to this conversation before sending this message. Inspect these sample exports before drawing any business conclusion. The goal of this step is a readiness verdict, not an answer.

First state which files you can actually read, and whether you inspected all rows or a sample. For each file identify what one row represents, date coverage, units, identifiers, missing values, duplicates and suspicious records. Distinguish estimates, actuals, current snapshots and historical events.

Then test the joins specifically. Can a quote be connected to its accepted job, its design revisions, its material purchases, its production events, its deliveries and its final invoice and credits? Check one-to-many relationships explicitly and count children per parent before summing anything, so cost and revenue are not multiplied. Preserve original identifiers. Report unmatched records rather than dropping them. Do not match customers or jobs on similar names.

Assess whether the evidence supports each of these, and label each answerable, partially answerable, or not answerable yet:

1. Original quoted material cost versus actual material cost, per job. 2. Days between quote issue and acceptance, as a distribution. 3. Realised job margin using a cost definition agreed with accounting. 4. Quote acceptance rate, counting response separately from acceptance, and excluding pending quotes from the denominator. 5. Rework frequency, recorded causes and cost. 6. Delivery performance, distinguishing partial from complete. 7. First-pass quality with its inspection coverage rate stated.

For anything not answerable, explain the missing evidence and the decision limit it creates. Do not substitute unsupported estimates for missing actuals, and never treat a missing cost as zero.

Show formulas and source columns for every calculation. Retain file names, filters, record identifiers and calculation steps so results can be reproduced and corrected. Reconcile a sample of totals to a trusted source report and tell me if they do not tie.

Identify software, equipment, accounting, product-mix and recording changes that make periods non-comparable. Check specifically whether quoted costs have been overwritten by later revisions, and whether lost quotes are missing from the export.

Do not extrapolate company-wide results from this sample. If the files exceed your tools, specify the exact queries an authorised analyst should run and the checks needed to validate them.

Finish with a readiness verdict and the single smallest additional export that would unlock the most useful decision.

Prompt 3 · The margin and pricing analysis

Only after Prompt 2 returns a positive readiness verdict.

Using only the validated records in this conversation, analyse whether realised margin decays with the age of a quote, for one product family.

Build the dataset: for each accepted job, quote date, acceptance date, days elapsed, originally quoted material cost, actual material cost, net revenue after credits, and the agreed margin measure. State the sample size and the date range, and report how many jobs you had to exclude and why.

Group accepted jobs into quote-age bands. Report realised material margin by band with sample sizes and a measure of spread, not just an average. Then test the obvious confounders before concluding anything: job size, job complexity, customer mix, product type, and the direction the lumber market was moving during each period. If quote age is correlated with job size or customer type, say so plainly and explain what that does to the interpretation.

Treat public lumber indexes as context only, not as our cost. If useful, reference BLS series WPU0811 for softwood lumber — download it first from fred.stlouisfed.org as CSV and attach it to this conversation, because you cannot fetch it yourself. Note that the truss manufacturing index PCU321214321214 has no observations after December 2022 and its successor PCU321215321215 is re-based to December 2022 equals 100, so the two cannot be chained without an explicit splice.

State clearly that any relationship found is associative. Identify what would have to be true for it to be causal, and what evidence would contradict it.

Then, separately, analyse customer and quote behaviour where the records allow it: acceptance rate by customer and job type, response time, repeat ordering, estimating effort consumed against work won, and realised margin by customer. Account for quote revisions, pending quotes, cancellations and missing outcomes. Distinguish response rate from acceptance rate. Do not label a customer unattractive on conversion alone — check whether they are newly acquired, strategically important, or simply receiving poorly matched quotes.

Where supported, give conservative, central and stretch scenarios with assumptions and formulas labelled. Do not add overlapping benefits. Distinguish hours released from cash saved, and revenue from contribution.

Finish with: the proposed decision, the owner it needs, the exact rule change you would test, the guardrails to monitor including win rate, the measurement plan, and the evidence that would invalidate the recommendation. If the data does not support an impact estimate, say so and recommend the smallest measurement step first.

Prompt 4 · Production, quality and conditions

Optional depth. Use for Pilot C, after readiness checks.

Using the validated records, investigate how equipment, crews, scheduling and operating conditions relate to production, quality and delivery at Southern Components. Treat every proposed explanation as a hypothesis until corroborated on the floor.

Start with one product family and either one saw plus its downstream line, or two assets handling comparable work. State the available time resolution explicitly and do not infer short events from daily totals. Do not rank machines or crews on raw volume.

Inventory what exists: job, batch and asset IDs; shifts; scheduled versus staffed hours; complexity; setup, run and stop events; recuts; maintenance; queues; material readiness; inspection records; shipment timing. Keep unknown stop causes unknown rather than assigning them. Separate wood and light-gauge steel processes, and separate equipment eras.

If quality data is available, join it to production using job, truss, date, line, shift and crew, and report inspection coverage alongside every quality rate. A first-pass quality figure without its denominator and coverage is not usable.

For workforce questions, use only authorised, aggregated crew-level data. Do not rank individuals. If asked about pay and performance, state explicitly that assignment, equipment, shift and job mix are confounded with pay, and that correlation between rate and outcome does not establish that pay causes performance. Recommend what evidence would be needed to answer it properly.

If weather is in scope, use historical station observations, preserve station ID, distance, timestamps and quality flags, and align to America/Chicago including daylight-saving changes. Note that an airport observation is a proxy for regional conditions, not a measurement inside the plant, and cannot establish indoor temperature or lumber moisture. Separate plant, yard, route and destination exposure. Control for workload, product mix and staffing before attributing anything to weather.

Produce: a coverage and matching report including unmatched records; fair adjusted comparisons with sample sizes and uncertainty; a dated list of unusually strong and weak periods with record IDs and candidate explanations; the most likely constraint and the direct observation needed to confirm it; and one small reversible pilot.

Use simple, interpretable baselines first. Only propose a state-based or probabilistic model if real event sequences can support identifiable regimes, and explain how it beats a simpler rule, how it would be validated on held-out later periods, what its false-alarm rate is, and what action follows an alert. Do not label an inferred state as a confirmed physical cause. Quantify no savings without supporting data.

Finish with what I should go and look at on the floor next week.

Appendix A

Weather, calendar and conditions

Test whether conditions explain performance after accounting for the work and the hours actually available.

Weather is the most over-claimed variable in manufacturing analysis, because it correlates with everything — season, product mix, staffing, holidays, overtime. The discipline is to control for those first, and to be honest that an airport is not your plant.

What to examine

  • Calendar first, weather second. Hour of shift, weekday, month, season, holidays, shutdowns and — most importantly — scheduled hours from the actual plant calendar. A great many “weather effects” are staffing effects.
  • Conditions: temperature, humidity or dew point, precipitation, wind and visibility, during work and during travel. Test lagged effects — yesterday's rain affecting today's yard.
  • Outcomes, analysed separately by location: plant, yard, route and destination are four different exposures and combining them hides the signal.

The airport is not the plant

Shreveport Regional sits about seven miles from downtown on open ground. It is a sound instrument for regional conditions — frontal passages, rain days, heat waves, freezes — and the right tool for “did conditions drive that week's variance.” It is not a measurement of your building.

Humidity is the one where this matters most. Lumber responds to the equilibrium moisture content where it is actually stored, which is driven by local conditions, covered-but-open storage and stacking practice — not by airport relative humidity. If moisture turns out to matter to your plate pressing or dimensional variance, two logging hygrometers — one at the lumber rack, one at the press line — will be worth more in six months than twenty years of airport readings. Precipitation is similar: use it as a yes/no signal for disruption, not as a depth measurement, because summer convective rain in north-west Louisiana is highly localised.

Check the source before you design around it

As noted in Section 13, NOAA's hourly archive is currently around a year behind — the last Shreveport observation is August 2025 — while daily summaries remain current. Build the history from the hourly archive if it has resumed, use the daily service and ACIS for anything recent, and re-verify at project start.[17]

Separating weather from what travels with it

Compare similar job complexity, staffing, run length, backlog and scheduled hours. Summer may also mean a different product mix and more overtime. If a condition only ever occurs on one line or in one equipment era, the effects may not be separable at all — and saying so is the correct answer. Begin with monthly and weekday charts, then compare performance after adjustment. Treat exact-date anniversaries with suspicion: even a long archive holds few independent observations of any one calendar date, and searching many patterns will produce apparent ones.

The useful decision, if a pattern survives: better planning for material staging, delivery buffers, job sequencing or staffing. Historical weather does not establish a cause and never replaces existing operating and safety procedures.

Appendix B

Comparing saws and lines fairly

If you rank assets before defining performance, you will rank the work they were given.

Define performance before ranking anything

MeasureDefinition and the trap in it
AvailabilityRun time ÷ planned production time, with setup and planned stops defined consistently. Keep downtime reasons visible rather than netting them out.
Processing performanceGood pieces per run hour within comparable cuts; setup minutes per batch; the distribution of cycle time, not its average. Separate machine hours from labour hours.
Quality and yieldFirst-pass acceptable ÷ inspected or produced, with the denominator stated; recuts, scrap and material yield in consistent units.
System contributionAssembly-ready kits, queues, work in process and completed shipments. Faster cutting at a non-constraining station builds inventory, not revenue.
Reliability over timeUnplanned-stop minutes, service events, recurring faults, and performance before and after maintenance on comparable work.

Make the comparison fair

Control or match for lumber dimension and grade, cut complexity and angles, batch size, setup frequency, truss family, crew coverage, machine configuration and upstream/downstream readiness. Keep model, asset ID, moves, upgrades and replacements distinct over time. Report raw results and adjusted comparisons with sample sizes and the overlap in work types. If one saw only runs short batches and another only long ones, there may be no defensible overall winner — and that is a legitimate finding, not a failure.

Board feet and piece counts do not normalise complexity. Use validated time standards if you have them; if you do not, say the comparison is unadjusted rather than implying it is not.

Name the reason for lost time

Running is processing. Setup is changing jobs or tooling. Starved is waiting for upstream input. Blocked is unable to release downstream. Faulted is equipment interruption. Unscheduled means no production was planned. Preserve unknown when the evidence is absent — a forced guess here corrupts everything built on top of it.

Check queues both before and after the saw and the assembly line. Low utilisation can mean missing lumber; high utilisation can mean unnecessary output. Go and look, to confirm where the constraint actually sits and whether it moves with product mix or shift.

Appendix C

Workforce, pay and performance — asking it defensibly

This is the analysis most likely to be both interesting and wrong. It is worth doing carefully or not at all.

The tempting question is whether higher pay rates go with lower rework, faster completion, better retention or stronger job margins. It is a fair question. The problem is that in any real plant, pay is entangled with almost everything that also drives those outcomes.

What is confounded with pay

  • Assignment. More experienced, better-paid crews are usually given the harder jobs — which look worse on raw output and better on defect rates, or the reverse, depending on the plant.
  • Tenure. Pay rises with time served, and so does familiarity with the equipment. Separating the two requires variation you may not have.
  • Shift and equipment. Shift differentials and line assignment move pay and conditions together.
  • Selection. People who perform well get retained and promoted. The causation runs both ways.

How to ask it anyway

  1. Start with coverage, not pay. Was the crew fully staffed for the shift? Staffing coverage explains more variance than pay does in most plants, and it is uncontroversial to measure.
  2. Then training and certification. SBCA runs formal truss technician training with certification records.[18] Certification coverage is a cleaner variable than pay — it is discrete, dated, and the plant controls it.
  3. Then tenure bands, aggregated. Group into bands, never individuals. Compare on like work only.
  4. Pay last, in aggregate, with HR involved. If you get here, use bands, hold job family and shift constant, and state plainly that the result is associative. SBCA's biennial Wage & Benefit Survey gives an external reference point — again, participant-only.[5]

What not to do: rank named individuals, use the analysis in a compensation decision without HR and legal review, or present a correlation between rate and outcome as evidence that paying more caused better performance. A plant that gets this wrong once will not get honest data a second time.

Appendix D

Finding the days behind the averages

Averages hide the days worth learning from. Build a dated exception report and go look at them.

Evidence groupWhat the row should show
Identity and timingDate; local start and end; shift; line or asset ID; job and batch IDs; whether the event was observed or inferred.
Actual performanceGood output; run, setup and stop minutes; labour hours; recuts; queues; delivery outcome where linked.
Expected comparisonComparable jobs or baseline; expected range; deviation; sample size; uncertainty; why the period was flagged.
ConditionsObserved temperature, dew point, rain, wind; source station and distance; matched time window; missing-data flags.
Operating contextJob mix; staffing coverage; maintenance and blade changes; material availability; design release; staging constraints.
AssessmentVerified evidence; candidate and alternative explanations; missing records; owner; next check; resolution.

Study the good days as carefully as the bad

Use adjusted deviations, not highest and lowest volume. On a strong day, was the run unusually repetitive, material pre-staged, the blade recently serviced, the crew fully covered? On a weak day, was output logged late or split into another system? Validate the data before inferring an operating lesson — a surprising number of exceptional days are recording artefacts.

Label each explanation confirmed, plausible, contradicted or unresolved, and attach record IDs. This single habit — writing down what you concluded and why — compounds more than any analysis technique in this guide, because it stops the same issue being rediscovered every year.

Honest time resolution

Use daily or shift records for broad screening. Move to hourly or event-level only where real timestamps support it. Daily totals cannot reveal a five-minute jam. Repeated low output and high heat occurring together is a lead worth investigating, not proof that heat caused a machine problem.

Appendix E

Plain-language glossary

Terms used in this guide, in the sense they are meant here.

Realised margin

What a job actually made after real costs and credits — as opposed to what it was quoted to make.

Estimate-to-actual variance

What you bid versus what it cost. The gap, job by job.

Pass-through

How much of an input cost change reaches your selling price, and how fast.

Quote validity

How long a quoted price stands before it must be re-priced. Your main defence against a rising lumber market.

Crosswalk

A checked table saying “this ID here is that ID there.” Built deliberately, never assumed.

One-to-many

One quote, many trusses. Join carelessly and one job's revenue gets counted once per truss.

Join rate

The share of records that successfully matched. Report it; a 60% join rate invalidates most conclusions.

Held-out period

Weeks deliberately not looked at while building an analysis, kept back to test whether it actually works.

Guardrail

A measure that must not get worse during a pilot — quality, delivery, win rate — even if the target improves.

Reason code

A short recorded cause for a stoppage or rework, from a fixed short list. Cheap to collect, impossible to reconstruct later.

First-pass quality

Share of units acceptable the first time, before repair or recut. Meaningless without its denominator and coverage.

Constraint

The one step that limits total output. Speeding anything else changes inventory, not shipments.

Contribution

Revenue minus the costs that genuinely vary with the job. Not profit after overhead.

Associative

Two things move together. It is not a claim that one caused the other, and it should never be written as if it were.

PPI

Producer Price Index — a government index of prices received by domestic producers. Industry-level, not your price.

Sources and evidence boundary

Where every claim comes from

Public sources consulted September 2026. Each was fetched and checked; annotations say what the source does not establish.

[1] U.S. Bureau of Labor Statistics — Producer Price Index

Series WPU0811 (softwood lumber), PCU321214321214 (truss manufacturing, no observations after December 2022), PCU321215321215 (engineered wood member manufacturing, re-based December 2022 = 100), WPU1017 (steel mill products), PCU484121484121 (long-distance truckload). Retrieved via FRED, which mirrors BLS. Index re-basing and the correlation figures in Section 03 are Talon AI's own computation from these published series. bls.gov/ppi · API v2 documentation · FRED series page

[2] Builders FirstSource — Form 10-K, FY2025

Source of the statement that material cost changes are “oftentimes, but not always, passed on to our customers,” and the risk disclosure on “delayed ability to pass on material price increases.” A statement by the largest US component manufacturer about its own business — indicative of industry conditions, not a measurement of Southern Components. SEC EDGAR

[3] Productivity measurement: board feet versus man-minutes

Trade-press commentary by Todd Drummond, republished by SBCA, describing the labour-factor and setup-variance argument, and A-1 Industries' use of man-minutes. This is one practitioner's published position, widely circulated in the industry — not an SBCA standard and not peer-reviewed. The underlying time standards are commercial and unpublished. SBCA

[4] SBCA — In-Plant Quality Control programs and Digital QC

Source of the recorded field list (job number, truss ID, truss type, date/time, line, shift, crew, fabrication tolerance), the ANSI/TPI 1 requirement, the free-to-members status, and the documented compatibility with Alpine, Eagle Metal, MiTek, Paragon and Simpson Strong-Tie files. Export mechanism is not documented publicly. Quality Control Programs · In-Plant QC FAQs

[5] SBCA — Industry surveys

Financial Performance Survey (income-statement format, regional and company-size breakdowns, benchmarking ratios) and the biennial Wage & Benefit Survey. Both are restricted to participating companies. This is the only truss-specific, peer-company cost structure we could find. It is not the only cost benchmark that exists — see the note in Section 13 — and an earlier draft of this guide wrongly said there was none. sbcacomponents.com/surveys

[6] Alpine (ITW) — IntelliVIEW and eShop

Vendor product documentation describing real-time piece and plate tracking, actual labour and material costing, equipment integration, and reporting on recut frequency and delay origins — the recut and delay language appears on Alpine's plant-management commentary rather than the product page, and both are linked below. No public API documentation exists for the US products, and vendor capability claims are not evidence that these modules are installed or that data can be exported at Southern Components. Plant management · Business management · Recuts and delay origins

[7] MiTek — Production and Management

Vendor documentation for production and delivery tracking and piece-level costing. No public API documentation for the US line. MiTek's MBA product is sold in both the US and the UK, but only the UK page documents SQL-driven reporting and third-party ERP and accounts links; that does not establish the same for the US build. Note also that Mitek Systems (NASDAQ: MITK) is an unrelated company whose API documentation is easily mistaken for MiTek's. Production · Management

[8] SmartSuite — Developer documentation

Public REST API, header-based token auth, 5 requests/second, plan-based monthly transaction caps, beta webhooks. Note a discrepancy between SmartSuite's pricing page and help centre on the monthly transaction allowance — confirm against your own plan. developers.smartsuite.com · Rate limits

[9] Intuit — QuickBooks Online API

OAuth 2.0 endpoints confirmed from Intuit's OpenID discovery document; production and sandbox base URLs confirmed live. Free Builder tier read allowance confirmed from Intuit's App Partner Program guide. Per-minute throttles are not published by Intuit — commonly cited figures are third-party — but monthly caps by tier are published in the programme guide, and it is reads rather than writes that are metered. The page previously cited here renders client-side and returns no readable content, so it has been replaced by the two sources the claims actually rest on: OpenID discovery document · App Partner Program guide

[10] Intuit — QuickBooks Desktop SDK, Web Connector, and stop-sell notice

Confirms there is no cloud REST API for Desktop; integration is via local SDK or the Web Connector (programmer's guide dated May 2009, SOAP, pull model). Intuit stopped selling new US Desktop subscriptions after 30 September 2024; existing subscribers may renew, and Enterprise was never part of the stop-sell. Separately, Desktop 2023 and Enterprise 23.0 reached service discontinuation after 31 May 2026. Web Connector guide · Stop-sell notice

[11] Sage — Intacct Web Services and Sage 100

Intacct XML gateway confirmed, including the paid developer-licence requirement and the concurrency limit; Sage now recommends its REST API, whose base URL and auth could not be read (client-side rendered portal). Sage 100 SData retirement confirmed from Sage's own release notes. developer.intacct.com · Sage 100 retired features

[12] Federal Reserve Bank of St. Louis — FRED API

Free key; documented 120 requests per minute limit; required attribution notice; some series carry third-party copyright (the BLS and Census series used here do not). API documentation · Terms of use

[13] U.S. Energy Information Administration — Open Data API

Free key; petroleum price route confirmed; PADD 3 (Gulf Coast) diesel series identified as the correct regional series for the Gulf Coast district, which EIA defines as Alabama, Arkansas, Louisiana, Mississippi, New Mexico and Texas; documented throughput and row limits; keyless bulk download available. Documentation · PADD 3 diesel series

[14] Fastmarkets — Random Lengths

Weekly subscription report covering 1,600+ items and 14 composite price groups. Pricing not public. Fastmarkets operates a market-data API, but its documented coverage is metals and exchange settlements; forest-products coverage is not verified and requires vendor confirmation, as do redistribution terms. Weekly report

[15] Regional southern timber and lumber pricing

TimberMart-South (organised under the Frank W. Norris Foundation, a 501(c)(3) — not, as an earlier draft stated, the University of Georgia; quarterly; all 11 TMS states; pricing not public; no API found) is the upstream source for the free Arkansas and Mississippi extension reports. Forest2Market/ResourceWise publishes a southern yellow pine lumber benchmark; API and pricing not public. TimberMart-South · Forest2Market

[16] U.S. Census Bureau — construction statistics

There is no Building Permits Survey API. Confirmed by enumerating the Census time-series dataset index: eits/bps does not exist, and the commonly cited developer page returns 404. eits/resconst covers national and Census-region New Residential Construction; sub-national permit data is bulk Excel download. An API key is now required for every request. resconst dataset · Building Permits Survey

[17] NOAA NCEI — Access Data Service, and ACIS

Keyless historical weather service confirmed working; Shreveport Regional station identified (ISD 72248013957 / WBAN 13957 / KSHV) with records retrievable from 1973. The hourly archive was found to be approximately a year stale in September 2026 — last observation 27 August 2025 — while daily summaries remained current, indicating an ingest issue rather than a service outage. Re-verify before relying on it. ACIS confirmed current as a live daily source. Access Data Service · ACIS

[18] SBCA — Truss Technician Training

Certification program at three levels with formal assessment; relevant as a cleaner workforce variable than pay. Training programs

[19] Company background

Founding in 1960 as Gang Nail Truss, renaming in 1980, site and facility scale, product lines and service area, and the family leadership succession are from the Shreveport Chamber of Commerce company profile and Southern Components' own website. A chamber profile is promotional material, not an audited record. socomp.com · Chamber profile

[20] Southern Components — SCI Process Flows, 15 April 2025

Company-produced swimlane maps of the sales, design-to-production and shopfloor workstreams, prepared with The Sharpen Group and supplied to Talon AI. The source for every statement in this guide about which systems SCI uses, how work moves between roles, which statuses exist, how job numbers convert from Q to J, and which steps are annotated as gaps. It is a process document, not data: it contains no job, quote, invoice, cost or personnel record. It is also seventeen months old, which is long enough for a system or a step to have changed.

[21] Cost-structure benchmarks outside SBCA

Two sources contradict the claim, made in an earlier draft of this guide, that no public truss cost benchmark exists. The Census Bureau publishes cost of materials, payroll and selected operating expenses at six-digit NAICS free of charge; note that under the 2022 classification code 321215 merges trusses with other engineered wood members, so it is an industry frame rather than a truss figure. Commercial publishers also sell truss-specific operating-expense breakdowns at the retired 321214 code for a few hundred dollars; we have not purchased one and cannot vouch for its contents. Census AIES · 2022 NAICS manual

Evidence boundary

No internal Southern Components record was accessed in preparing this guide. One company document was: the SCI process flows of 15 April 2025, which describe the workflow and the systems but contain no job, quote, invoice or personnel data. Everything this guide says about how SCI operates comes from that document and remains subject to your confirmation, because it is seventeen months old. No savings, margin uplift, capacity increase or revenue forecast has been established anywhere in this document, and no figure in it describes your plant. Suggested sample sizes and timings are planning choices, not guarantees of data readiness or pilot success.

What we could not verify, and you should not assume. We have put no number on lumber's share of your cost of goods, and this guide does not depend on one. A truss-specific, peer-company cost structure is only available through SBCA's participant-only survey; broader industry cost detail is published free by the Census Bureau at six-digit NAICS, though under the 2022 classification that code blends trusses with other engineered wood members. There is no published industry benchmark for board feet per man-hour, first-pass quality, on-time delivery, setup time or quote conversion. We found no truss-specific published norm for quote validity periods or escalation-clause practice. Any figure you encounter for these should be treated as an assertion until its source is shown.

Scope of work. Documentation review and public-data analysis only. Nothing was connected, no personnel data was processed, no service was purchased, and no ongoing cost was incurred. Public-source claims were re-checked against provider documentation in September 2026; where an earlier draft of this guide was wrong, the correction is stated in the text rather than quietly applied.