# A part’s tracking type

A part’s tracking type (serial, lot, or untracked) is set through the **Tracking** field on the part. For what each type means and how to choose, see [Parts](https://docs.firstresonance.io/build-hardware/parts). This page covers how each type behaves downstream, how serial and lot numbers are generated, and the rules for switching a part’s tracking type.

## What each tracking type changes downstream

| Surface         | Serial                                          | Lot                                          | Untracked                                   |
|------------------|------------------------------------------------|----------------------------------------------|---------------------------------------------|
| **Receiving**    | Each unit gets a serial; ION generates labels per unit. | Receive against a lot number; one label per lot. | Receive a count; no per-unit identifier.   |
| **Inventory**    | One inventory row per unit.                   | One inventory row per location and lot.     | One inventory row per location, with quantity. |
| **BOM install**  | Operator scans the specific serial being installed. | Operator scans the lot; quantity counts down. | Operator confirms count.                    |
| **Run history**  | Per-unit history: scan the serial to see every run it touched. | Per-lot history, with a lot-level rollup.    | Aggregate counts only.                      |
| **Issues**       | Issues can attach to a specific serialized unit. | Issues attach to a lot.                      | Issues attach to a part inventory row at a location. |
| **Traceability report** | Full chain of custody per unit.              | Lot-level genealogy.                         | Quantity-level only.                        |

## Serial number generation

When a part is serial-tracked, ION generates serial numbers in one of two ways:

- **Automatically** from the part’s revision scheme, recommended for in-house manufactured parts.
- **From the supplier** at receive time, for purchased serialized components. Scan or enter the vendor’s serial.

Serial numbers are unique within the org. ION rejects a duplicate serial scan during install or receive, which protects against a common operator error.

## Lot number generation

Lot numbers come from one of three sources:

- **Generated** by ION at receive time using a configured pattern.
- **Entered** from the supplier’s lot label.
- **Captured** from your manufacturing batch identifier when you produce a lot internally.

Lots are scoped to the part. `LOT-2026-0123` on part A is different from `LOT-2026-0123` on part B.

## Switch tracking type

Switching tracking type after inventory exists is constrained:

- **Serial to Lot or Untracked** is blocked while serialized inventory rows exist. Consume or archive every serial unit first.
- **Lot to Serial or Untracked** is blocked while lot-tracked inventory rows exist.
- **Untracked to Serial or Lot** is allowed, but existing untracked inventory stays untracked. New receipts use the new tracking type.

## Made on Assembly and tracking

When a serialized sub-assembly is installed onto a parent assembly through Made on Assembly (see [Editing build requirements](https://docs.firstresonance.io/build-hardware/bills-of-materials/editing-build-requirements)), ION still tracks the sub-assembly’s serial. The Made on Assembly flag changes the workflow, so the sub-assembly is built into the parent rather than as a separate run, but it doesn’t change the identity. The serial trail is preserved.

Every serial scan is an operator action. If your downstream traceability doesn’t need per-unit identity, lot tracking is faster on the floor and is a reasonable middle ground. To catch inventory drift early, schedule cycle counts through [inventory adjustments](https://docs.firstresonance.io/manage-supply-chain/inventory).
