Skip to content

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 recording its cost. Recording the supplier of purchased inventory is planned.

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.

Work in progress ​

Inventory is WIP (work in progress) while a work order attached to it is open. An open work order is one that is to do or in progress. Inventory produced by a work order starts as WIP, and existing inventory becomes WIP when a work order is created for it, such as a rework or inspection.

The rule also follows inventory through splits and merges: a piece split off WIP inventory stays WIP while the work order on the original line is open. When every work order on the inventory is completed or canceled, it returns to available. Reopening one of those work orders makes it WIP again.

Installed, consumed, and scrapped inventory is not affected. Uninstalled inventory returns to WIP rather than available if a work order on it is still open.

WIP inventory may be installed and consumed like available inventory. Clear to build counts only available inventory as stock, so a unit that is still being built or reworked is not counted as on hand.

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.

Inventory installed by a work order task can be uninstalled from that task's page, which records the task on the uninstall. See fulfilling part requirements.

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. Scrapped inventory can never be installed, consumed, merged, or used again.

Inventory that receives a Scrap disposition on an NCR is scrapped when the disposition is applied. Inventory that receives a Return to vendor disposition is marked Returned, which, like scrapped, can never be used again.

Scrapping, the Returned status, and dispositions are planned and not yet available. See issues.

Holds ​

An issue places a hold on each inventory line it affects. Held inventory is quarantined in the system, not only labeled:

  • It cannot be installed, consumed, merged, or split, except by its own issue.
  • Nothing can be installed into it, or into inventory it is installed in at any depth. Inventory with held inventory installed in it cannot be installed or consumed.
  • A new work order cannot be created on it, except as remedy work for its issue.
  • Clear to build does not count it as stock.
  • A work order cannot be completed while held inventory is anywhere in the as-built structure of the unit it builds.

Held inventory may be uninstalled, and the hold stays on it. When held inventory is split by its issue, each resulting line carries its own hold.

The hold is released when the issue applies a disposition to the inventory or completes its remedy. See issue holds for the full rules.

Inventory that was accepted with a Use as is disposition keeps a permanent Used as is flag, including on pieces split from it later.

Issue holds ship with dispositions and are not yet available. Until then, inventory linked to an issue is not held, but it cannot be merged while the issue is open. See issues.

History ​

Inventory history tracks and displays everything that happens to an inventory line. The exact task something was installed on, which work station, who did it, and when the action was done are all stored in inventory history. Recording which tool was used is planned. 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