Most people use a spreadsheet to manage their BOM and calculate costs. There are columns for manufacturer part numbers, distributor part numbers (SKU), quantity and pricing. Somebody searches for parts, finds distributor pricing for one or two vendors, selects the best price and enters it into the spreadsheet.
The biggest problem with this approach is that it doesn't scale. Even in a small project with 20-40 components, finding the pricing and entering into the spreadsheet is a lot of work.
The other issue is that spreadsheets were designed for simple tabular data. But distributor offers are anything but simple! Vendors use different price break structures, which can't easily be compared: one vendor will quote prices at quantities of 100, 500 and 1000, and another at 25, 250 and 500. There are also restrictions such as MOQ (Minimum Order Quantity) and order multiple.
On top of that, offers are often in multiple currencies. Especially for companies based in Europe, dealing in EUR, USD and a third local currency is often a source of problems.
As a result, Bill of Materials spreadsheets quickly become large and difficult to manage, and require a lot of effort to maintain. One ends up with BOMs that are obsolete days after they get created. And we haven't even gotten to issues related to choosing one of multiple equivalent parts (alternates)!
In PartsBox, a bill of materials (BOM) is called a Project. It contains a list of parts, some of which are linked to online identities (MPNs), and some of which are locally created. When you go to the "Price it" tab in a project, PartsBox will fetch the latest pricing and display your BOM with sourcing information.
For every BOM entry that is linked to an online identity (Manufacturer Part Number), PartsBox gathers online offers, and selects the best (least expensive) one. There are often as many as 20-40 offers for any given part. In the main BOM pricing table, only the best offer is displayed.
For meta-parts (generic parts that group several alternate parts that are interchangeable), offers for all member parts will be gathered together and compared.
For every part, the quantity required will be adjusted based on part attrition parameters.
The selection process is quite involved, as it has to handle:
PartsBox normally selects the best offer based on "Price Discarding Excess". That is the price paid for parts, assuming that any excess inventory that has been purchased will be thrown away. Why not just use the price from price breaks? Well, in case of restrictions such as MOQ or order-multiple, we do not want to discard offers just because the quantity we need is too small. It is sometimes better to buy more, because of price breaks: the price might be competitive even assuming we will discard anything we don't need. This is why quantities are rounded to order multiple, and if the quantity is below MOQ, PartsBox will round it up to MOQ, just to see how the offer ranks.
The ranking of offers changes based on your build quantity, and so does the best offer. One can often discover new, unexpected sources of parts that become attractive at certain quantities. As an example, not everybody knows that Texas Instruments sells directly and is very price-competitive at quantities above 500.
Every offer can be unrolled to show details like packaging, quantity on order, on order estimated time of arrival (ETA), factory lead time and factory order multiple.
It is possible to "lock" a particular offer by using the padlock icon. This locks the offer selection for this project entry, and that particular offer will be used to calculate BOM price.
While some components are bought from major distributors, one often deals with other suppliers, or gets custom offers for specific quantities, with discounts. This is why PartsBox allows for entering your own offers, which are then considered and ranked together with online offers.
A local offer can be added either from within a project, or directly to a part. Like every offer, it can have multiple price breaks at any quantities, as well as a minimum quantity (MOQ) and order multiple. These parameters will be used by the pricing algorithm.
Apart from additional info fields like order reference/number, date or comments, an expiration date can also be entered. An offer will not be considered if it has expired.
Any offer can use any of the supported currencies.
For a new project one needs to purchase all the parts. But more often the situation is different: local stock is already present, purchased at a certain price. PartsBox handles this transparently.
When pricing a project, one can choose how parts are sourced. Three options are available:
In all scenarios pricing will be correctly calculated, possibly using a mix of parts from various sources.
PartsBox takes care of multiple currencies for you. Just select your preferred currency in the settings, and it will be used to display every price. You can change the currency at any time.
European Central Bank (ECB) rates are used for currency conversion. The rates are updated regularly.
For offers which you entered yourself, you can pick any supported currency, and it will be handled correctly.
It's easy to consider various buying scenarios:
PartsBox project/BOM pricing solves many problems encountered every day when dealing with electronics production. It is useful for design houses, EMS manufacturing companies, and anyone else who needs up-to-date pricing information on electronic BOMs.
While simple spreadsheets, BOM Calculator or BOM Tool pages can be used to get pricing estimates, only PartsBox allows for efficient pricing management over a longer time period, without excessive effort.