The pattern is lopsided. A small group of parts eats up most of the budget, whereas many others represent only a small share.
Class A — 21 parts, 78% of spend. (Monthly review, tighter ordering)
Class B — 18 parts, 16%. (Quarterly review)
Class C — 38 parts, 5%. (Annual bulk buy)
The build rate is an assumption, but it doesn't affect the classification. Annual usage is quantity per build times builds per year, so every part scales by the same factor and the cumulative percentages hold.
Each bar is one part, ranked by annual dollar volume.
The orange line tracks the cumulative percentage of total spend.
The curve rises steeply through the first 21 parts, then flattens for the remaining 56 parts.
The M2.5 standoff costs $4.34 a unit, but eight go into every build.
That puts it at $416.64 a year, 10.8% of total spend, against $192 for the Pi Zero 2.
Clearest case on this BOM of annual dollar volume ranking parts differently from unit price.
All 38 Class C parts come from Digikey, totaling roughly $204 a year.
The annual bulk buy is therefore one purchase order, not 38 transactions.
That is what makes the C policy worth implementing at this scale.
The GPIO 20x2 stacking header appears on three separate lines at $60, $30, and $30. All three land in Class B.
If they are one part, the combined $120 would rank it tenth and put it in Class A.
The published BOM doesn't say if these are duplicates or distinct variants, so I left them as listed rather than merging them on an assumption.
The QWICC connector and the 1x4 breakaway header also repeat, but consolidating them wouldn't change their class.
The BOM is the published parts list for the AMSAT CubeSatSim v2.1, an open-source educational satellite kit.
AMSAT publishes it openly, with part descriptions, quantity per build, unit cost, and supplier for all 77 line items.
I chose it because everything is real and verifiable, with real part numbers, real suppliers, and real prices. Nothing here is invented sample data.
What it lacks is demand history. It is a parts list, not a production record, so the build rate has to be assumed.
I assumed 12 builds per year, which is plausible for a small-batch kit producer.
Annual usage is quantity per build times builds per year, so the assumption scales every part by the same factor.
The dollar totals depend on it, but the classification does not; both the rank order and cumulative percentages remain the same.
Annual dollar volume = quantity per build × builds per year × unit cost.
This is the only computed field feeding the classification. Everything downstream is a sort and a running total.
I sorted the parts in descending order by annual dollar volume, then ran a cumulative total against the total annual spend of $3,866.50.
Each part's cumulative percentage covers its own spend plus everything ranked above it.
I used the standard 80% and 95% cut points, which are common practice and not specific to this dataset.
The boundaries fall between parts rather than exactly on the cut points. Class A ends at 78.3% because including the 22nd part would raise cumulative spend to 80.1%.
The A/B break is clean, with a 1.8-point gap. The B/C break is tighter: Class B closes at 94.7%, and the next part lands at 95.1%, so that part's class is sensitive to where the line is drawn.
Built entirely in Excel.
Annual dollar volume, cumulative percentage, and class assignment are formula-driven. The class is an IF statement that reads the cumulative percentage, so changing a cut point reclassifies the table.
The class summary table uses COUNTIF and SUMIF, so item counts and dollar totals update automatically.
The classification is based solely on the product of unit cost and annual usage.
The M2.5 standoff is classified as Class A and costs $416.64 annually. The M3 nylon frame screws are classified as Class C and cost $12.48. Both fasteners serve a structural purpose and hold the satellite together.
If those screws come from a single supplier with a long lead time, this classification doesn't capture that, and a stockout will stop the build regardless of the part's cost.
Criticality and lead time would require a second dimension, which classic ABC classification lacks.
Roughly two-thirds of the BOM is sourced from Digikey, including all 38 Class C parts.
That is convenient for ordering, and it is also a concentration risk.
ABC classifies parts, not suppliers, so it can't show that risk.
There is no demand history, order history, or lead time data.
Quantities are per build, so I had to assume the build rate rather than observe it.
Three rows also carry an identical description, which is covered in Finding 3.
ABC classification sorts parts by how much control effort each deserves. That is all it does.
It does not set order quantities, reorder points, or safety stock levels.
These calculations require lead time and demand variability. Since the BOM lacks these, I considered them out of scope from the beginning.