Shop Floor Intelligence — Vision
What PSI could build on top of 2.83 million timecard rows. Written 2026-08-03 after proving out what the data actually supports (see Weld Shop Utilization and
psi-analytics/eto/scripts/shop_labor_intel.py). This is a direction document, not a spec — but every idea in it is checked against data that exists today, and each one says so.
The asset
PSI has something almost no machine builder has digitized: a 30-year, per-person, per-day, per-operation, per-job record of how work actually moved through a factory.
| Source | What it is | Scale |
|---|---|---|
tslabor2.csv | Every timecard line — person, date, department, operation, job, hours, direct and indirect | 2.83M rows, 1990→now |
wiprouteline.csv | Per-operation QueDate / PlanStart / PlanComp / ActStart / ActComp | 950k rows |
capacity.csv | Required hours per department per open work order, forward to 2027 | 46k rows |
wiplabor.csv | Routed (standard) vs actual hours per operation | 105k dept-104 rows |
employeecount.csv | Monthly headcount by department | since 1989 |
openwo.csv, work_orders | WO lifecycle dates | 446k |
Most manufacturers have some of this for a few years. The combination — labor at person-grain, plans at operation-grain, demand forward-looking, and three decades of depth — is what makes the ideas below possible rather than aspirational.
The thing to internalize: this is a longitudinal behavioural dataset about a complex adaptive system. The right reference disciplines are therefore epidemiology, sports science, air-traffic control and fluid dynamics — not “manufacturing dashboards.”
The questions worth answering
Four questions, from the CEO, that the existing reporting cannot answer:
- How long does it take to onboard someone?
- Are we waiting on work, or overloaded?
- Is the department getting its work done on time?
- How do we compare people fairly when a team lead is legitimately mostly indirect?
All four are now answered in shop_labor_intel.py. What follows is how they become an instrument rather than a CSV.
What the data already says
Onboarding is department-specific because the hiring model is:
| Department | Weeks to core-op plateau | What that means |
|---|---|---|
| 104 Welding | 0–2 | PSI buys skill — hires certified welders who produce immediately |
| 102 Machining | 2–7 | Short familiarization |
| 106 Mechanical Assembly | 4–14 | PSI builds skill in-house |
| 108 Electrical Assembly | 3–16 (one 2024 hire: 46) | Longest and most variable ramp |
⚠️ Retracted: WO-date “departmental on-time”
An earlier version of this page reported core-operation on-time from wiprouteline PlanComp vs ActComp — weld 40.7% in 2026, mechanical assembly 9.1%, electrical assembly 9.3% — as a finding. That metric does not mean what it appears to mean, and the numbers should not be used. Two independent reasons, both from people who know how the shop is actually run:
- Dispatch-level scheduling used PRIORITY, not dates, until ~July 2024. Before that change, an operation’s planned completion date was not a commitment anyone was dispatching to. Comparing pre- and post-2024 “on-time” compares two different systems, and the pre-2024 series is measuring a field nobody was managing.
- Assembly does not close work orders to signal that work is finished. Assembly is judged at a higher level — did the built machine turn over to MVI by the scheduled date (see the LDS scheduling workbook). WOs may be closed long after the work is done, or auto-close. So an assembly “on-time” figure computed from WO dates is measuring record-keeping behaviour, not delivery.
The sub-10% assembly figure was therefore an artifact, and the live “late work pile” (1,514 open past-plan operations in mechanical assembly, 1,390 never started) is very likely the same artifact — unclosed WOs, not untouched work.
What would actually measure assembly delivery: machine turnover to MVI vs the LDS scheduled date. That lives in the LDS scheduling workbook and ganttJOB, not in operation records. Until it is wired up, PSI has no trustworthy departmental delivery metric for assembly — which is itself worth knowing.
Confirmed and elevated to a standing rule (CEO, 2026-08-31): assembly does not close WOs when they complete that stage of assembly work, so assembly on-time cannot be looked at at all at this stage — the actual side is as broken as the plan side. The rule, with the full table of which fields are invalid and why, is documented in Analytics Methodology. Any instrument touching assembly operation dates (including the psi-dispatch floor view’s slack for assembly stations) must either use the LDS turnover date or explicitly mark assembly as untrusted.
The transferable lesson, and the reason this retraction is on the page rather than deleted: every date field in an ERP encodes a process, and when the process changes or was never real, the field silently stops meaning what its name says. No amount of data hygiene catches this — only asking someone who runs the shop. Ask before building the metric, not after.
Quarterly weld hours, normalized — testing the “dates broke weld” hypothesis
A chart of quarterly weld hours (OP 70+71, 1992→present) was circulated as evidence that the mid-2024 move from priority to dates starved the weld department: “we are struggling to get work to our weld department while also outsourcing weld work… the weld work is delayed because we are working on so many jobs at one time.” The chart is raw hours; the unanswered question in that thread — “is it normalized versus total demand?” — is the right one. weld_hours_in_context.py answers it.
Staffing is measured only from timesheet fingerprints, never from the roster, because department transfers are not reliably back-ported in AFTEC:
WeldFTEEquivalent= OP 70/71 hours ÷ 40, per weekFullTimeWeldProfile= people with ≥30 weld hours in the week — “how many people have a full-time weld profile”
| Era | Weld hrs/qtr | Weld FTE-eq | Full-time weld profiles | Machines in build | Weld hrs per machine | Weld % of shop hrs |
|---|---|---|---|---|---|---|
| late 90s (1997–2000) | 2,582 | 5.2 | 4.5 | 35 | 86.6 | 17.3% |
| 2005–2009 | 2,304 | 4.2 | 4.0 | 28.5 | 81.3 | 15.8% |
| 2013–2019 | 3,046 | 6.1 | 5.0 | 40 | 70.2 | 15.2% |
| covid 2020–2021 | 2,329 | 4.0 | 2.5 | 39 | 54.8 | 13.0% |
| 2022–2024H1 (priority) | 3,425 | 6.5 | 4.2 | 83.5 | 37.5 | 11.6% |
| 2024H2+ (dates) | 2,351 | 5.5 | 3.0 | 71 | 29.2 | 12.4% |
Three findings, and they do not all point the same way.
1. The “we have more welders than average” premise does not survive the timesheet. Full-time weld profiles are at 3, against 4.2 in the immediately preceding priority era, 5.0 in 2013–19 and 4.5 in the late 90s. Department 104’s roster is 12 people, but only about 3 have a week that is welding. Headcount in the department went up while the number of people actually welding went down — see role vs trade, where two “Saw Operator” titles and a Manufacturing Engineer sit on the same department code. If weld capacity feels like it should be higher than the output, this is why.
2. The fragmentation hypothesis is contradicted — weld work got more concentrated under dates, not less. The claim predicts active jobs and jobs-per-welder rising while hours-per-job and focus fall. Every one of the four moved the opposite way:
| Fragmentation measure | Priority (2022→2024Q2) | Dates (2024Q3→) | Change | Hypothesis predicted |
|---|---|---|---|---|
| Active jobs in weld / week | 20.0 | 14 | −30% | rise |
| Jobs per welder / week | 4.0 | 3.5 | −13% | rise |
| Hours per active job | 13.2 | 13.6 | +3% | fall |
| Focus — % of week on top job | 56.9% | 64.4% | +13% | fall |
| Top-3 job share of hours | 66.3% | 73.7% | +11% | fall |
Weld hours per week did fall 22% (259 → 201), and full-time profiles fell 40% — the starvation is real. But it is not visible as task-switching inside the weld department. The nuance: shop-level concurrency genuinely is at an all-time high — 112 machines in build now vs 35 in the late 90s — so “working on many jobs at once” is true of PSI; it just is not what weld’s own timesheets are doing.
3. The dominant trend is 30 years old and predates dates by 25 of them. Weld hours per machine in build has fallen 86.6 → 29.2, a 66% decline, monotonically, through every scheduling regime. The date era continues that line; it did not create it. Weld’s share of total shop hours tells the same story (17.3% → 12.4%) and actually rose slightly under dates.
The honest open question — and the highest-value next analysis. This measures hours charged, so outsourced weld is invisible by construction. A 66% fall in weld content per machine is most plausibly explained by outsourcing and design change (fewer weldments, more purchased fabrication), not by scheduling. Leadership’s own note mentions outsourcing in the same breath. Quantifying it means going to purchase-order history (pohist.csv, purchaseorders.csv) for bought-in fabrication and plotting insourced-vs-outsourced weld content per machine on one axis. Until that exists, nobody can say whether weld is starved or simply smaller by design.
The reframe
Stop building dashboards that report the past. Build instruments that show the factory’s current state and its near future, in the language of the shop.
A dashboard answers “what happened.” An instrument answers “what is happening, what is about to happen, and what should I do.” The difference is not visual polish — it is whether the thing is consulted on a schedule (dashboard) or watched continuously (instrument).
Inspiration from far afield
Each idea below names the discipline it is stolen from, the PSI view it becomes, and whether the data exists today.
1. Air traffic control → The Constraint Radar
Discipline: ATC / Flightradar24.
Departments are sectors. Work orders are aircraft, each with a planned arrival (PlanComp). Operations queued but not started are aircraft in holding patterns — and PSI has 1,390 of them stacked over mechanical assembly right now. Borrowed labour is a diversion. Congestion is visible forming, upstream, before it lands.
Controllers do not read tables. They read a spatial field with time-to-conflict encoded. The equivalent: a shop map where each department’s queue depth, load and on-time health are one glance, and where you can see that weld finishing on time in September only matters if assembly can take the work in October.
Data: exists today (wiprouteline + capacity + tslabor2).
2. Sports science → Shop Load Ratio (acute:chronic)
Discipline: athletic workload management.
Sports medicine established that injury risk spikes when acute load (7-day) exceeds chronic load (28-day) by more than ~1.5×. It is a validated, published methodology for exactly the question “is this person or unit being overloaded in a way that will break something later.”
Applied to a shop: sustained overtime spikes should predict turnover, quality escapes and rework. There is already a signal in the data — 3 of the 4 welders who left in the last two years carried elevated indirect shares in their final months. Disengagement may be legible in a timecard before it is legible in a conversation.
Data: exists today. Needs validation against actual attrition and redbook dates before anyone acts on it. This is the single highest-value analysis in this document and also the one with the most ethical care required — see Guardrails.
3. Epidemiology → Survival curves for ramp and retention
Discipline: Kaplan-Meier survival analysis.
“Weeks to productive” is a time-to-event problem with censoring — some people are still ramping, some left before plateauing. Taking a median of those who made it (which is what the current script does) is exactly the bias survival analysis was invented to fix. Kaplan-Meier gives the honest curve plus confidence intervals, and lets cohorts be compared: did onboarding get better or worse after 2022?
The same math answers retention: “what fraction of welders are still here at 2 years, and has that changed?”
Data: exists today. Straightforward, high-value, and genuinely not done in manufacturing.
4. Genomics → Career trajectory alignment
Discipline: sequence alignment.
Treat each person’s month-by-month op-mix as a sequence. Align sequences to find the reference ramp for a trade, then measure divergence — who is ramping ahead, who stalled, and at which operation they stalled. Cluster the trajectories and you discover career paths that exist in practice but were never designed: saw operator → welder → team lead is visibly present in the data.
That matters for succession. PSI can see who has historically become a lead, and what their trajectory looked like at year one.
Data: exists today.
5. Music production → The 30-Year Scrub
Discipline: DAW multitrack timeline.
Each department is a track. Each week is a bar. Direct and indirect hours are waveform amplitude. Scrub through three decades and you see the 2021 collapse, the 2023 all-time peak, the 2015 indirect-coding change appearing as a step.
The insight worth stealing is that in a DAW time is the primary navigation axis, not a filter dropdown. Nearly every manufacturing dashboard buries time in a date picker. PSI has 30 years — time should be the interface.
Data: exists today.
6. Meteorology → The Labor Pressure Map
Discipline: weather maps and fluid dynamics.
Backlog is pressure. Capacity is permeability. WIP pools where pressure exceeds throughput. The forward order book plus capacity.csv gives an actual forecast: given what is booked, where will pressure build in eight weeks?
Weather maps are the most successfully democratized complex-system visualization ever built — everyone reads them without training, including uncertainty (cone of probability). A shop-floor pressure map with a forecast cone would be immediately legible to people who would never open a Power BI report.
Data: exists today for the nowcast; the forecast needs the backlog model from quarterly metrics joined in.
7. Alluvial diagrams → Labor Migration, 30 years
Discipline: Sankey / alluvial flow.
Who moved between shops, year over year. This surfaces the informal flexibility network that appears on no org chart — weld borrows from Machining (102), Administration (101) and Mechanical Assembly (106) at ~2.3 people/month, and that cross-training is a real, valuable, undocumented asset. It also shows which departments are net lenders and which are net borrowers, which is a staffing-strategy input.
Data: exists today.
8. Formula 1 pit wall → The single-screen wall
Discipline: race strategy displays.
Not a dashboard you visit — a screen that is always on in the shop office. It shows only what is actionable now, escalates rather than invites exploration, and is designed to be read at 3 metres in peripheral vision. The pit wall’s discipline is ruthless: if it isn’t decision-relevant this lap, it isn’t on the screen.
9. Medical imaging → Orthogonal slices
Discipline: MRI / CT planes.
The same factory-week, sliced four ways: by person, by department, by job, by operation. Radiologists navigate by switching planes on identical data. Most dashboards force one hierarchy; the shop needs all four because a supervisor, a project manager and a scheduler are looking for different things in the same week.
10. Game engines → Fog of war for data gaps
Discipline: RTS minimaps.
Render what we don’t know as fog: there are no PTO/holiday op codes, so absence is invisible; the assembly op schedule may be unmaintained; wiplabor covers only recent WIP. Most dashboards imply omniscience and thereby earn distrust the first time someone finds a hole. An instrument that shows its own blind spots is trusted more, not less.
The two genuinely novel syntheses
Operational provenance
Every number traces to the rows that produced it, in one click, down to the individual timecard line — with an LLM layer that explains why a number moved, in shop language, citing those rows.
This is the fix for the failure mode that kills most manufacturing analytics: “I don’t trust that number.” At PSI specifically, this analysis has already produced four numbers that were wrong for subtle reasons — a roster join broken by zero-padding, a benchmark depressed by senior people’s indirect duties, 1990s records posing as late work, a peer median that was the person’s own value. Provenance is not a nicety here; it is the difference between an instrument and a liability.
The counterfactual shop
With 30 years of per-operation plan-vs-actual, hours-per-part, and labour availability, PSI can simulate: “If we hire two welders in September, what happens to assembly on-time in Q1?” A digital twin of the labour system — not the machines, which is where everyone else points digital-twin effort.
This is the vanguard idea. It is also the one that requires the other work to be right first, because a simulation built on a fictional schedule forecasts fiction.
Guardrails
This must find system problems, not police people. Per-person rows exist because averages hide mechanism — the department’s ~37% indirect blends a lead at 42% (correct), an engineer at 100% (not a welder), and trainees at 45–50% (learning). Acting on the average pushes exactly the wrong behaviour.
Three rules:
- Residuals prompt questions, never scores. The answer to a high residual is almost always structural: no work released, no mentor assigned, wrong trade sitting on the wrong department code.
- Never rank individuals on a shared screen. Role-normalized residuals belong in a supervisor’s one-on-one context, not on the pit wall.
- Attrition prediction, if built, is a retention tool. It is used to ask “does this person need support” — never as an input to any adverse decision. If that cannot be guaranteed, do not build it.
Where to start
| Phase | What | Data readiness |
|---|---|---|
| 1 | Constraint Radar — 4 departments: on-time, load vs capacity, late-op pile, borrowed labour. The pit-wall screen. | All data exists. Build now. |
| 2 | Time as the interface — the 30-year scrub, plus labour migration alluvial | Exists |
| 3 | Survival curves for ramp + retention; acute:chronic load ratio validated against attrition and redbooks | Exists; needs statistical work |
| 4 | Forecast — labour pressure map with a forward cone | Needs the backlog model joined |
| 5 | Counterfactual simulation | Needs 1–4 to be trusted first |
Before Phase 1 ships, one question needs a human answer: is the assembly operation schedule maintained? If those PlanComp dates are auto-generated and never revised, the 9% on-time figure is measuring the plan, not the shop — and fixing the scheduling process outranks building any instrument on top of it.
Related
- Weld Shop Utilization — the proving ground; direct vs indirect, roster validation, identity join chain
- Quarterly Business Metrics — backlog and revenue side; the forecast input for Phase 4
- Lead Time Analysis 2026 — independently identified engineering / purchasing / electrical assembly as the systemic bottlenecks
- PSI Data Brain — full source map and department code table
- PSI Explorer — the most likely host for the Constraint Radar
Created: 2026-08-03
Source: psi-analytics/eto/scripts/shop_labor_intel.py, welder_utilization.py, welder_people.py