Appearance
Inventory
Table of Contents
Inventory in Factorial is a digital record of the physical inventory in the factory. Every build task, test result, piece of equipment, quality issue, and operator that comes into contact with an inventory is tracked and the data is easily accessible.
Inventory can be created, installed, uninstalled, consumed, merged, split, and scrapped and every step of the process is controlled and auditable.
Creating inventory
Inventory can be created in the following ways:
- CSV import
- Bulk loading APIs
- Produced from work order
- Purchased
- Created manually
When Factorial is first implemented, typically inventory is imported using CSVs or in bulk through the API.
From there, new inventory is generally produced in house or purchased externally. Right now, Factorial doesn't have a full featured purchasing system (with quoting, purchase orders, etc), but it supports creating inventory through a purchase, and marking it's cost and supplier.
Inventory created in-house can be produced by executing a work order that produces inventory. Work orders that produce inventory automatically create an inventory line for the inventory that they produce.
Install/Uninstall
Inventory can be installed and uninstalled onto other inventory lines. Tracking installs is usually done automatically during the process of executing work orders. The task, operator, equipment used, location, and any other custom metadata is tracked along with the install operation. Install tracking helps Factorial maintain a digital twin of complex assemblies, enabling quality containment, root cause analysis, rolled up costs per unit, and more.
Consume
Some inventory cannot be uninstalled once it's used. For example glue or paint is consumed, and not installed. Inventory can be consumed and attached to a parent inventory, or simply consumed. Consumed inventory cannot be used anymore and the system will not show it as available. Consuming inventory is distinct from scrapping, scrapped inventory is intended to be viewed as waste, while consumed inventory had a productive use.
Split
Splitting an inventory line creates two new inventory lines allowing their ongoing histories to diverge, while maintaining shared history from before they were split. An example use case is if a batch of ten car doors are being made, and 3 of them don't pass an inspection. The 7 good ones can be split off and continue on, while the 3 bad ones can be scrapped or reworked. The inventory can later be merged, if applicable, or can remain separate indefinitely.
Lot tracked or untracked assemblies can also be split, and Factorial will maintain a record of what is installed where. If installations are ambiguous, Factorial will represent that with a deterministic confidence score about where something is installed. For example if 6 screws from Lot A and 4 from Lot B are used on a batch of 10 car doors, and that batch is split into two inventory lines, qty 5 and 5, Factorial will be clear that Lot A and B of screws could be installed on one or both inventory lines, and each line will show it expects there to be 3 screws from Lot A and 2 from Lot B. This is just an expected value estimate, and the real installations are ambiguous.
Serial tracked inventory cannot be split, since serials are indivisible, so ambiguous installs are not an issue.
Merge
Untracked inventory lines are automatically merged when they enter the same location. This keeps digital records clean by default. Lot tracked inventory can be merged manually if they have the same lot number.
Scrapping
Scrapping inventory makes that inventory unavailable, and indicates that the inventory was wasted. Inventory can be partially scrapped by splitting and then scrapping.
History
Inventory history tracks and displays everything that happens to an inventory line. The exact task something was installed on, which work station, which piece of equipement was used, who did it, when the action was done, is all stored in inventory history. History for a lot, serial, or individual inventory line are all accessible and performant to query, allowing in depth analysis at historical trends or pinpoint root cause analysis. Time travel features allow exploring entire assemblies as they changed over time.
Create and consume: a useful pattern
A common procedure pattern is to create a new inventory item and then consume existing inventory into it. For example, when stamping a metal sheet into a body panel, a work order can first create the body panel with a WIP status and then consume the specific metal sheet used to produce it. This preserves traceability by recording which source material was used and which processes the resulting part has undergone.
The same pattern can represent multi-step manufacturing requirements. Suppose a metal sheet must be chemically coated before stamping. A coating procedure can create a new Metal Sheet (coated) inventory item and consume the original Metal Sheet into it. The stamping procedure can then require Metal Sheet (coated) as a material, create a Body Panel, and consume the coated sheet into the body panel.
By modeling each transformation as a create-and-consume step, Factorial preserves material lineage while enforcing the process invariant that a metal sheet must be coated before it can be stamped.
Further reading
- Units of measure (link)
- ABOMs (link)
- Kits (link)
- Barcodes/Scanning (link)
- Custom fields