ShopFloor - Glossary
Glossary
Section titled “Glossary”Domain vocabulary used throughout CTLShopFloor. Read this first — every other document assumes these terms.
Items marked ⚠️ Assumption are inferred from code and need confirmation by someone with operational/business knowledge.
Lifecycle phases (StationCategoryEnum)
Section titled “Lifecycle phases (StationCategoryEnum)”These are the seven coarse-grained phases a unit moves through. Every StationType belongs to exactly one. Defined in CTLShopFloor.Core.Domain/StationCategoryEnum.cs.
| Phase | ID | Meaning |
|---|---|---|
| Forecast | 6 | Planning / expected inbound; unit not yet physically present. ⚠️ Assumption — usage in code is sparse. |
| Receiving | 7 | Truck arrival, dock check-in, debox, initial sort. |
| WIP (Work-In-Progress) | 8 | Active processing — cleaning, grading, imaging, testing, kitting. |
| Pre-FGI | 9 | Pre-packaged, ready to be palletized for finished-goods inventory. |
| FGI (Finished Goods Inventory) | 10 | Sealed and on a closed outbound pallet, ready for sale. |
| Post-FGI | 11 | Sold, picked, shipped, fulfilled. |
| Outside-Process | 12 | Off the main happy path — Repair Center, Quarantine, BER, Harvesting, Scrap. |
Core unit-tracking entities
Section titled “Core unit-tracking entities”| Term | Definition |
|---|---|
| WorkTracking | The per-serial-number system of record. One row per physical unit, from receiving until it leaves the building. Tracks current StationID, grade, pallet membership, dates, sales status, and a JSON blob of captured system specs. Effectively the unit’s state machine row. |
| WorkOrder | A batch of units expected together — usually one inbound BOL / pre-alert / RMA shipment. Carries a RouteID (which defines what stations its units must pass through) and a BOLFileIdentifier. Marked IsRMA=true for returns. |
| WorkTrackingOperations | Audit log of station-to-station movements per unit. ⚠️ Assumption — actual write path not fully verified. |
| WorkTrackingDetails | Per-scan supplementary data tied to a WorkTracking row at a specific Station. ⚠️ Assumption — exact usage varies by station service. |
Workflow / routing entities
Section titled “Workflow / routing entities”| Term | Definition |
|---|---|
| Route | An ordered template defining which StationTypes a unit must visit. Scoped to a ProductLineCategory. |
| RouteFlow | A single ordered step inside a Route — (RouteID, StationTypeID, ScanOrder). The scan dispatcher uses ScanOrder to determine “what station can come next.” |
| ProductionFlow | A physical instantiation of a Route inside a Project. Multiple ProductionFlows can share a Route. Stations belong to ProductionFlows. |
| Station | A physical workstation (a scanner + a person + a screen). Has a StationTypeID (its role) and a ProductionFlowID (which line it sits on). |
| StationType | The kind of station (Dock, Triage, Grading, Packing, etc.) — defines behavior. Has a StationCategoryID mapping it to one of the seven lifecycle phases. |
| StationCategory | One of the seven phases above (Forecast, Receiving, WIP, etc.). |
| Project | A logical “tenant within a tenant” — a customer program or business unit. Most entities are scoped to a ProjectID. |
| ProductLineCategory | Classification of product families (e.g., laptops vs. desktops vs. monitors). Routes are scoped to it. |
SKU variants on WorkTracking
Section titled “SKU variants on WorkTracking”The codebase distinguishes several SKU fields. This is a frequent source of confusion.
| Field | Meaning |
|---|---|
| ArrivedSKU | SKU as printed on the unit / pre-alert when it arrived. Immutable. |
| SKU | The current “working” SKU — may change as the unit is regraded, reconfigured, or relabeled. |
| LabelSKU | The SKU printed on the final outbound label. May differ from SKU for BER/RMA marker suffixes (e.g., a BER unit gets a BER marker appended — see RepairCenterStationControllerService.sendToBER lines 955–999). |
| RegionalSKU | Region-specific variant (US/EU/etc.). ⚠️ Assumption — exact derivation rule unclear. |
| SKUCTO | Configure-To-Order SKU. ⚠️ Assumption — used when the unit is reconfigured (e.g., RAM swap, drive replacement) into a different sellable spec. |
Bill of Materials (BOM)
Section titled “Bill of Materials (BOM)”| Term | Definition |
|---|---|
| BOMHeader | The product model definition — one row per laptop/desktop model the facility processes. Holds default specs, manufacturer, etc. |
| BOMHeaderDetails | Spec breakdown for a BOMHeader. ⚠️ Assumption — exact relationship with BOMHeaderCategory is not fully traced. |
| BOMHeaderByProject | Per-project availability/configuration of a BOMHeader. |
| BOMHeaderCategory | Classification of BOMHeaders. ⚠️ Assumption — relationship to ProductLineCategory unclear. |
| KittingBOM | What accessories (power adapter, dock, manual) ship with each BOMHeader. Used by the Kitting station. |
| PendingPartsCatalog | Not a “parts to order” list, despite the name — it’s a BOMHeader-linked reference catalog of keyparts required for a product family. ⚠️ Refactor finding: name is misleading. |
Stations / processes
Section titled “Stations / processes”| Term | Definition |
|---|---|
| Dock | Receiving entry station. Unit’s serial is scanned, matched against pre-alert / inbound pallet, and a WorkTracking row is created (or reset, for RMA). |
| Triage | Quality assessment station. Two evaluations are submitted per unit: Cosmetic and Functional. Each gets a 0–100 score that maps to a letter grade (A–D) via TriageEvaluationGradesScore. Outcome routes the unit to Imaging, Repair Center, Quarantine, or marks it ineligible. See TriageEvaluationService.cs. |
| Debox | Unboxing / segregation. |
| Sorting | Routes units by destination type (normal vs AS-IS vs IMC vs FLIP). |
| Cleaning | Physical wipe / inspection. Verifies test-result uploads exist before allowing advance. |
| Imaging / Image Download | Windows OS is installed and a Digital Product Key is injected. Performed off the shop floor on a separate “Windows Test System.” See Windows Test System below. |
| Windows Test System | External (not shop-floor-station) system that installs Windows, captures system specs into the SystemInformation + Engineering* tables, and uploads results via WindowsTestResultsUpload. |
| MoveFromWindowsTestSystem | The re-entry station after Imaging completes; brings the unit back into shop-floor flow with embedded test results. |
| PromoteImageDownloadUnit | The “release from Image Download queue” station. ⚠️ Refactor finding: name is misleading — it’s really just ReintegrateFromImaging. |
| Grading | Operator assigns a GradingTypeID (Grade A, B, C, AS-IS, IMC, FLIP, etc.). Optional SubGradingID adds a sub-classification. |
| Kitting | Accessories from the unit’s KittingBOM are scanned and matched. A KittingLog row is created per scan. |
| Packing | Unit is sealed in its outbound box. Validates that GradingID is set if Project.GradingValidation == true. |
| QA | Final inspection before pallet placement. ⚠️ Assumption — exact rules per project not traced. |
| Pallet Station | Assigns the unit to an OutboundPallet. |
| Finished Good (FG) | Closes the outbound pallet (IsOpen=false, CloseDate set). The unit is now FGI. |
| Sales Inventory | Post-FGI staging for sale. |
| Repair Center (RC) | Off-route diagnostic + repair station. Technician logs errors to RepairCenterError and RepairCenter, swaps parts (logged in RCReplacementParts), and either marks the unit repaired or re-attempts. After 3 failed attempts on the same error, the unit is auto-sent to BER. |
| BER (Beyond Economical Repair) | Terminal repair outcome. Unit is graded “TYPE BER,” the LabelSKU is marked, and the unit moves to the BER station. From here it typically goes to Harvesting or is scrapped (the latter handled outside this system). |
| Harvesting | Cannibalization station. Parts are extracted from a BER/scrap unit and added to Part inventory with Source="Harvesting". High-value parts get unique serials (format T{yyMMdd}A{00000}). |
| Recovery | ⚠️ Unclear — RecoveryEvent exists alongside HarvestingEvent with similar shape but ties to a WarehouseID instead of a HarvestingID. May be legacy or warehouse-level stock-in. Confirm before refactor. |
| Quarantine | Hold area for problem units (RTV flagged, suspect SKU mismatch, etc.). |
| As-Is Shipments | Path for units shipped without refurbishment. |
Pallets
Section titled “Pallets”| Term | Definition |
|---|---|
| BasePallet | Abstract base for the other pallet types. Holds Warehouse + WarehouseLocation. |
| InboundPallets | Truck arrival pallet. Has an InboundPalletIdentifier string referenced by every unit on it. |
| OutboundPallets | Finished-good shipping pallet. Auto-named via PalletPrefix (e.g., OB000001). Has IsOpen and CloseDate. |
| BoxPallet | A sub-pallet inside an OutboundPallet — used for 5M-style scenarios where one outbound pallet contains multiple labeled boxes (see ref SF-220). |
| StandByPallets | Per-ProductionFlow holding/buffer pallets — used to park units mid-flow (e.g., waiting for repair). The isPallet flag distinguishes a real pallet from a holding area. |
Returns (RMA) terminology
Section titled “Returns (RMA) terminology”| Term | Definition |
|---|---|
| RMA (Return Merchandise Authorization) | A return shipment from a customer. |
| RmaHeader | The shipment-level record (tracking number, LPN, RmaType, register date). |
| RmaItemsRelation | Per-serial link: RmaHeader ↔ WorkTracking. One row per returned unit. |
| RmaTypes | Per-project classification (e.g., “DOA”, “Warranty”). |
| In-system RMA | The returned unit’s serial is already in WorkTracking (previously shipped from this facility). WorkTracking.StationID is reset to Dock and dates are cleared; the unit re-enters the normal route. |
| Out-of-system RMA | The returned unit’s serial does not exist in WorkTracking. Pre-alert data is staged in RmaNotInsystemPreAlert, a new WorkOrder (with IsRMA=true) is created, and new WorkTracking rows are generated. |
| RmaNotInsystemPreAlert | Staging table for out-of-system RMA pre-alert rows pending validation. |
| RCImages / RCNotes / RCReplacementParts | Per-repair audit trail attached to a RepairCenter record. |
Parts inventory
Section titled “Parts inventory”| Term | Definition |
|---|---|
| KeypartsNumber | Master catalog of part types (specific RAM module, specific battery, etc.). |
| KeypartsCategory | Classification of keyparts. |
| Part | A physical unit of inventory. Has Source = "PO" (purchased) or "Harvesting". High-value parts get a PartSerialNumber; standard parts are aggregate-tracked. |
| PartLocation | Where a part currently is. |
| InventoryTransaction | Ledger entry: IN (receipt) or, by design, OUT (consumption). |
| InventoryTracker | Aggregate on-hand counts. ⚠️ Refactor finding: the OUT/consumption path appears incomplete — see refactor findings. |
| PurchaseOrder / PurchaseOrderItem | Procurement of parts from vendors. Receipt creates Part rows with Source="PO". |
| ConsumptionRequest / ConsumptionRequestItems | Mechanism for requesting parts for use in a repair. ⚠️ Refactor finding: write-down of inventory on consumption is not fully wired. |
| RCReplacementParts | Records which parts were used in which repair. ⚠️ Notable smell: HarvastingSN (sic) is a string, not an FK. |
| HarvestingEvent | A harvest operation — produces Part rows from a donor unit. |
| RecoveryEvent | ⚠️ Unclear distinction from HarvestingEvent — see Recovery in stations table above. |
Imaging / OS / licensing
Section titled “Imaging / OS / licensing”| Term | Definition |
|---|---|
| SystemInformation | The structured spec record for a unit (CPU, BIOS, RAM total, display res, OS, color, etc.). Populated by the Windows Test System. Has child rows in SystemInformationDisk and SystemInformationGraphic. |
| SystemInformationBlob | A JSON blob of the raw captured spec on WorkTracking. May be unsynced (IsSystemInformationBlobSynced=false) if it could not be parsed into the structured tables. |
| Engineering tables* | Per-component captured detail: EngineeringCpuData, EngineeringBatteryData, EngineeringDiskData, EngineeringDisplayData, EngineeringGpuData, EngineeringMemoryData, EngineeringNetworkData, EngineeringWebcamData. |
| SystemInformationVarianceCode / SystemVarianceCodeAssignment | Flags when a captured spec doesn’t match the expected SKU configuration. |
| TestSnResults / TestFilesResults | Test outcomes per serial. |
| WindowsTestResultsUpload | Upload record from the Windows Test System back into the database. |
| WindowsDeviceHash | Windows device hardware hash (for Autopilot enrollment). |
| ImagingAndTestingLog | Audit log of imaging/testing events. |
| DPK (Digital Product Key) | Microsoft Windows license key. Stored in DigitalProductKey with AssignedSerialNumber linking it to the unit it was injected into. Format validated as XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. |
| DpkSkusSpecifiedCatalog | Maps which SKUs require which Windows editions. |
Triage-specific terms
Section titled “Triage-specific terms”| Term | Definition |
|---|---|
| Cosmetic evaluation | Triage questionnaire scoring physical appearance defects. Score 0–100. |
| Functional evaluation | Triage questionnaire scoring operational defects. Score 0–100. |
| TriageEvaluationCategory → Question → Option | Hierarchy of the questionnaire. Each option has a ScoreValue and optional flags. |
| Auto-fail | An option flagged autoFail=true — selecting it forces the evaluation to a failure grade regardless of total score. |
| RTV (Return To Vendor) | An option flagged isRTV=true — triggers Quarantine routing instead of Repair Center. |
| TriageErrorRecords | Per-error rows written when a unit goes from Triage to Repair Center — captures the specific error codes that triggered the route. |
| TriageEvaluationGradesScore | The score-to-grade mapping (e.g., 0–9 → A, 10–20 → B, 21–45 → C, 46+ → D). Per evaluation type. |
| TriageEvaluationSubmission | The submitted questionnaire response — includes the full Q&A serialized as JSON, the final score, the grade, and flags like needRepair, needPaint, needRelam. |
Grading
Section titled “Grading”| Term | Definition |
|---|---|
| GradingTypes | The set of valid grades for a Project (e.g., “Grade A”, “Grade B”, “AS-IS”, “IMC”, “FLIP”). Each has a GradingTextOnLabel (e.g., “A”, “AS”). |
| SubGrading | Optional sub-classification under a GradingTypes. |
| AS-IS | Unit shipped without refurbishment. ⚠️ Assumption — auto-assigned at Dock for certain inbound types per DockStationControllerService lines 91–169. |
| IMC | ⚠️ Operational meaning not derivable from code. Need confirmation. |
| FLIP | ⚠️ Operational meaning not derivable from code. Need confirmation. |
| TYPE BER | The grade applied automatically when a unit reaches BER. |
External systems and integrations
Section titled “External systems and integrations”| Term | Definition |
|---|---|
| Fishbowl | External inventory ERP integrated via FishbowlDbContext (MySQL). Synced via FishBowlInventoryIntegrationService. |
| HPPCB API | HP-specific external service in CTLShopFloor.Services.HPPCBApi. ⚠️ Assumption — used for HP serial/warranty lookups. |
| BOL (Bill of Lading) | The shipping document. BOLFileIdentifier on WorkOrder ties units to the original truck-arrival document. |
| Pre-Alert | Advance shipping notice — a spreadsheet/file delivered before the truck arrives, used to seed expected receivables and BOMHeader entries. Both standard (PrealertBol, PreAlertBolDetails) and RMA-specific (KtyPrealertBol, KtyPreAlertBolDetails) variants exist. |
| LPN | License Plate Number — shipment tracking identifier on RmaHeader. |
| Tenant | Finbuckle multi-tenant identity (e.g., “Dallas SL”, “Mexicali”). Stored in TenantDbContext; many behaviors branch on tenant. |
| Hangfire | Background-job framework. Most jobs gated by JOBS:allowJobsExecution config flag. |
| Audit.NET → MongoDB | Audit log sink for entity changes. |
| Azure Blob Storage | Used for images and uploaded files (AzureBlobStorageContainers enumerates the containers). |
Acronyms quick-reference
Section titled “Acronyms quick-reference”| Acronym | Expansion |
|---|---|
| BER | Beyond Economical Repair |
| BOM | Bill of Materials |
| BOL | Bill of Lading |
| CTO | Configure To Order |
| DPK | Digital Product Key (Windows license) |
| FGI | Finished Goods Inventory |
| FG | Finished Good |
| LPN | License Plate Number |
| MES | Manufacturing Execution System |
| OEM | Original Equipment Manufacturer |
| PO | Purchase Order |
| QA | Quality Assurance |
| RC | Repair Center |
| RMA | Return Merchandise Authorization |
| RTV | Return To Vendor |
| SKU | Stock Keeping Unit |
| SN | Serial Number |
| WIP | Work In Progress |
| WMS | Warehouse Management System |