There are four types of parts: outsourced, in-house, generic and asset.

An outsourced part is sourced from an outside supplier while an in-house part is manufactured in-house. A generic part is not a physical part but it groups parts that can be used interchangeably - this is specially useful for resistors and capacitors for which you might not be concerned about their manufacturer as long as they have the same specs. An asset is everything else you might want to track (e.g. computers, keyboards, etc)

In-house parts and projects allow you to work with what's commonly called sub-assemblies. A project must have an in-house part associated to it. Essentially, an in-house part is used to track the part itself while a project is used to track, not only its revisions and bill of materials, but also every build of it. An in-house part doesn't need to have a project associated to it, though. This might be useful for parts that are manufactured in-house but that don't have a BOM, such as some mechanical parts.

All types of parts can be assigned to BOM items in projects.

Importing Parts

Parts can be imported through a CSV file. To learn how to import table-structured data, please refer to Import & Export.

Parts can also be imported through purchase orders.

Stock vs Inventory

Stock is a specific and quantitative measurement. Usually, you say "it's out of stock" or you ask "how many do we have in stock?". The response is a number. On the other hand, when we talk about inventory, we might be interested in knowing where it is located, if it's on-order or reserved for some projects. In essence, inventory is a broader concept than stock, but both are useful.

The stock is displayed on the Parts table. This is the sum of your in-house and on-order inventory. This way, if you had low stock on some parts but you ordered more in the meantime (and didn't receive it yet), you won't see a warning or a misleading low value that would make you think you'd have to purchase more inventory.

Inventory is displayed on its own table, on the Parts details area.

From here you can get the answers for where and how your inventory is being used. On-order and reserved inventory contain a reference to the corresponding purchase order, project and project build.

Adjusting Inventory Quantity


Through the inventory table, you can manually adjust inventory by pressing the button. You can increase or decrease the quantity by entering a positive or negative number, respectively.


Inventory, projects and purchasing are all related, as inventory of parts is increased and decreased through finished project builds (the resulting in-house part get its inventory increased, while all the parts assigned in the BOM get their inventory decreased) and purchase orders, once received, increase the inventory of all the parts listed there.

Moving Inventory and Changing the Storage Location

You can change the location of in-house inventory, or move a given quantity from one location to another. Bare in mind that, if you intend to move all the quantity available in one location to another one, it's normally better to just move that storage location instead (see Storage).

You can also use the Storage tab to move storage locations. Just right-click on a storage location and select Move to....

Alternate and Equivalent Parts

Part alternates are used to quickly replace parts in BOMs - this is useful if a currently used part went EOL so you'd be able to quickly replace it by another (alternate) one.

Similar parts share the same value and package but they aren't necessarily valid alternates of each other. Other specifications, such as tolerance and dielectric type might tell if it can be used as an alternate part or not. A listing of similar parts is provided by BOMIST but it's up to the user to define part alternates.

Two parts are equivalent if both are alternates of each other.

Generic Parts

Generic parts aren't physical ones. Instead, they represent, or group, parts that might be used interchangeably. This is specially useful for resistors and capacitors for which you might not be concerned about their manufacturer as long as they have the same specs.

They can also be used to postpone the decision of which part to use. For example, while creating a BOM you might assign generic parts to some items and only pick a real one by the time you go into production.

The parts that can be used in place of a generic one are defined through Part Alternates. When reserving inventory for a project build, you can either replace the generic part for a real one, or to pick inventory from multiple parts so they are used interchangeably.

When Purchasing a generic part, in case a Project requires a given quantity to be purchased so it can be assembled, the first Alternate Part will be picked to be purchased.

The Unit Cost of a generic part is the average unit cost of its alternate parts.


You can use the search box to search for text included in Man. Part Number, Manufacturer and Description. Using a fuzzy-search algorithm, the app return results even if your search term has typos. For example, if you write "Vsha" you'd get results for all parts that have "Vishay" as a Manufacturer. Similarly, if you search for "crstal" you'd get results for all parts that contain "Crystal" in their description.

Filtering by value

The format used in a Part's value field is somehow strict. This is so that the app is able to match equivalent values, by extracting and comparing their numeric values, prefixes and units. This way, filtering values by "0.1uF" or "100nF" yields the same results, as is expected.

This also means a Part's value field must not contain more than one value with prefix and/or unit (e.g. "250mA, 5V").

Supported prefixes:

  prefixes = ["G", "M", "K", "m", "u", "µ", "μ", "n", "p", "f"];

Supported units:

  units = ["Ω", "F", "Hz", "ohm", "A", "V", "W", "dB", "dBm", "B", "b"];

All prefixes and units are case-sensitive except for "K", "Ohm" and "Hz".

When searching for resistors, the unit can be omitted. So, if you want to search for a 100 Ohm resistor you'd write "100" or "100 ohm" or "100 Ohm". Similarly, when searching for capacitor values with a micro, nano, pico or fento prefix, the unit (F) can also be omitted. This way, if you'd want to search for a 0.1 uF capacitor then you'd simply write "0.1u" or "100n".

Text fields that have their own search box (e.g. Package) are case-sensitive and don't use the fuzzy-search algorithm.

Numeric fields have a search modifier that allows you to filter by "less than", "equal" or "greater than".