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.
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.
- 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.
- 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.
- 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.
- 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
Why quote age and price discipline, rather than something else. Public price data, with the method so you can check it.
The margin questionYour April 2025 maps, read for where the data already is and where three decisions leave no record.
Your process, as mappedThree candidates compared on value, readiness, effort and speed — with the scoring shown so you can disagree.
Where to startA request you can forward as written, one block per recipient, with the columns named.
The data requestHow to get from two exports to an answer in a spreadsheet, step by step, including the join that goes wrong.
The analysisWhat can actually be connected, what it costs, what the limits are — and every source behind every claim.
ReferenceWhat 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.
| Label | Means | What you should do with it |
|---|---|---|
| Public | Established from a public source we fetched and cite. | Check the source if it matters. It is not about your plant. |
| Your map | Stated in SCI's own process maps of 15 April 2025. | Confirm it is still true — the maps are seventeen months old. |
| Hypothesis | Our reasoning about a plant like yours. Not a finding. | Test it or discard it. Do not act on it as fact. |
| Open | A 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.
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.
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.
| Identifier | What your map says | Why 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.
- 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
- 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
- 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
- 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
- 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.
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
| Month | Softwood lumber | Truss manufacturing |
|---|---|---|
| Jan 2020 | 100 | 100 |
| Feb 2020 | 104 | 100 |
| Mar 2020 | 109 | 100 |
| Apr 2020 | 96 | 100 |
| May 2020 | 101 | 101 |
| Jun 2020 | 111 | 101 |
| Jul 2020 | 123 | 107 |
| Aug 2020 | 143 | 119 |
| Sep 2020 | 180 | 137 |
| Oct 2020 | 165 | 141 |
| Nov 2020 | 135 | 139 |
| Dec 2020 | 154 | 144 |
| Jan 2021 | 179 | 149 |
| Feb 2021 | 187 | 151 |
| Mar 2021 | 200 | 154 |
| Apr 2021 | 214 | 167 |
| May 2021 | 263 | 185 |
| Jun 2021 | 249 | 189 |
| Jul 2021 | 167 | 181 |
| Aug 2021 | 130 | 165 |
| Sep 2021 | 124 | 156 |
| Oct 2021 | 132 | 152 |
| Nov 2021 | 140 | 153 |
| Dec 2021 | 174 | 165 |
| Jan 2022 | 217 | 187 |
| Feb 2022 | 228 | 194 |
| Mar 2022 | 244 | 200 |
| Apr 2022 | 201 | 200 |
| May 2022 | 205 | 198 |
| Jun 2022 | 153 | 190 |
| Jul 2022 | 153 | 186 |
| Aug 2022 | 147 | 180 |
| Sep 2022 | 140 | 175 |
| Oct 2022 | 137 | 171 |
| Nov 2022 | 135 | 162 |
| Dec 2022 | 128 | 157 |
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 decision | Evidence it needs | What improving it is worth | Readiness |
|---|---|---|---|
| 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.
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.
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.
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 integrity | B · Lost-quote loop | C · 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Please export every quote created between [date] and [date], whatever happened to it — won, lost, still open. One row per quote.
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.
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.
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.
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.
Only after the session, and only if Pilot C is going ahead.
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.
-
Put each export on its own tab, untouched.
Name the tabs
quotesandinvoices, and add two empty tabs calledbyjobandwork. 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. -
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 separatelyPaste the result into
byjobas 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. -
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.
-
Build one row per accepted job on the
worktab.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!$Ais the job number column of your pivot andbyjob!$Bis the summed amount. If you only haveVLOOKUP, give itFALSEas 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.
-
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.
-
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.
-
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.
-
Reconcile to the books before you show anyone.
Total the invoiced amounts on
workand 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. -
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.
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.
| Identifier | Must be stable across | Why it matters |
|---|---|---|
job_id | Quote, design release, production, QC, delivery, invoice | The spine. If only one identifier is fixed, make it this one. |
quote_id + version | CRM, estimating, accepted job | Without the version you cannot tell an original price from a revision — which kills Pilot A. |
customer_id | iTruss quotes and jobs, Sage invoices, delivery records | Never match customers on name. Trading names, branches and typos will silently merge or split accounts. |
component_id (truss ID) | Design, cut list, production, QC | The only way to attach a defect to the thing that was built and the design that specified it. |
asset_id | Production events, maintenance, QC line field | Must survive machine moves, upgrades and replacements, or trend analysis compares two different machines. |
shift + crew | Timekeeping, production, QC | Aggregated, 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
| Decision | Refresh | Why not more often |
|---|---|---|
| Quote validity / re-pricing rule | Weekly during the pilot, then monthly | Lumber indexes publish monthly; your own purchase prices move faster, so watch those weekly if the pilot shows sensitivity. |
| Realised margin by job type | Monthly, on closed jobs only | Open jobs have incomplete cost. Monthly matches the accounting close. |
| First-pass quality | Weekly | Fast enough to act on a crew or line issue while people still remember the week. |
| Delivery reliability | Weekly | Same reason. Also the measure most visible to customers. |
| Purchasing & supplier performance | Monthly | Enough volume to be meaningful; matches supplier review cycles. |
| Capacity and constraint | Quarterly, or on mix change | The 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.
| Field | Worked example — Pilot A |
|---|---|
| Decision | Whether to shorten quote validity, or add a material re-pricing trigger, for this product family. |
| Owner | Named person who can change the quoting rule — not the analyst. |
| Inputs | Quote header and lines with original costed detail; acceptance dates; purchase receipts with landed cost; final invoices; agreed margin definition. |
| Method | Group accepted jobs by days between quote and acceptance. Compare realised material margin across bands. Control for job complexity and customer mix before concluding. |
| Output | One chart, one table of margin by quote-age band, and a list of the jobs in the worst band with their record IDs. |
| Action | A stated validity period, or a rule that re-prices material above a defined index or purchase-price move. |
| Metric | Realised material margin on comparable jobs, measured on closed jobs for the following quarter. |
| Limitations | Quote age correlates with job size and customer type; the estimate is associative, not causal. Small samples in the long-age band. |
| Next validation | Re-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.
| Phase | Scope and deliverable | Advance 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.
| Measure | Definition — agree this first | Source | Cadence | Value |
|---|---|---|---|---|
| Realised material margin | Net job revenue after credits, less actual material and freight, on closed jobs only. State whether rework is in or out. | Accounting + purchasing | Monthly | |
| Estimate-to-actual variance | Quoted material cost minus actual material cost, per job, as a percentage of quoted. Report the distribution, not the mean. | Estimating + purchasing | Monthly | |
| Quote age at acceptance | Days between quote issue and acceptance. Median and 90th percentile — the tail is the exposure. | iTruss | Monthly | |
| Quote acceptance rate | Accepted ÷ decided quotes. Exclude still-pending quotes from the denominator, and count response separately from acceptance. | iTruss | Monthly | |
| First-pass quality | Units 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 sheets | Weekly | |
| Rework and callback cost | Labour plus material on recuts, repairs and post-shipment callbacks. Split in-plant from after-shipment. | Production + accounting | Monthly | |
| On-time and complete delivery | Loads delivered on the promised date with nothing outstanding. A partial load is not on-time. | Dispatch | Weekly | |
| Good output per staffed hour | Acceptable output ÷ hours actually staffed, within one comparable job family. Never compare across families without adjusting for complexity. | Production + timekeeping | Weekly |
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.
| Measure | Definition | Waits on |
|---|---|---|
| Days sales outstanding | Average 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 variance | What 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 hours | Hours 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 shipped | Backlog 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.
| System | What it holds for you | Getting data out | Join keys | Phase |
|---|---|---|---|---|
| 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
| Source | Decision it improves & what it gives | Access, auth & limits | Resolution & coverage | Phase |
|---|---|---|---|---|
| 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]
| Source | What it gives | Access | Coverage |
|---|---|---|---|
| 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.
| Source | What it gives | Can a direct customer get access? | Phase |
|---|---|---|---|
| Paychex | Employee, payroll and time data | Yes — 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 |
| ADP | Worker demographics, timecards, schedules, time-off | Yes, 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 |
| Paylocity | Employee, payroll, time and labour | On approval. Submit an access request; credentials and sandbox follow approval. Add lead time. | Phase 2 |
| Gusto | Employee, payroll, time tracking | No. 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 / Fiix | Maintenance events, asset downtime, work orders, parts — the missing input to any equipment-reliability question | All 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 Connect | GPS breadcrumbs, engine state, driver hours; delivery timing and dwell | Samsara: 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.
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.
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.
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.
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
| Measure | Definition and the trap in it |
|---|---|
| Availability | Run time ÷ planned production time, with setup and planned stops defined consistently. Keep downtime reasons visible rather than netting them out. |
| Processing performance | Good 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 yield | First-pass acceptable ÷ inspected or produced, with the denominator stated; recuts, scrap and material yield in consistent units. |
| System contribution | Assembly-ready kits, queues, work in process and completed shipments. Faster cutting at a non-constraining station builds inventory, not revenue. |
| Reliability over time | Unplanned-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
- 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.
- 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.
- Then tenure bands, aggregated. Group into bands, never individuals. Compare on like work only.
- 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 group | What the row should show |
|---|---|
| Identity and timing | Date; local start and end; shift; line or asset ID; job and batch IDs; whether the event was observed or inferred. |
| Actual performance | Good output; run, setup and stop minutes; labour hours; recuts; queues; delivery outcome where linked. |
| Expected comparison | Comparable jobs or baseline; expected range; deviation; sample size; uncertainty; why the period was flagged. |
| Conditions | Observed temperature, dew point, rain, wind; source station and distance; matched time window; missing-data flags. |
| Operating context | Job mix; staffing coverage; maintenance and blade changes; material availability; design release; staging constraints. |
| Assessment | Verified 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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Certification program at three levels with formal assessment; relevant as a cleaner workforce variable than pay. Training programs
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
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.
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.