Eagle Multilevel BOM
If the intent is for personal use, many text-based lists can be used.

But when I was Operations Mgr for an R&amp;D company of 50 with 15 H/W designers we CREATED an INTERNAL part number system ( called the Master Registry, aka database ), where the p/n’s had commodity codes &amp; sometimes values &amp; tolerance codes.  Thus only the internal part number were used on BOMs as an index to the qualified parts list (QPL).

These p/n were controlled by Design Engineers and only qualified OEM p/n’s could be added.  Then I created a Foxbase relational database, for;    

BOM pick lists,
where used lists,
Purchasing stock quotes to distributors,
Inventory control,
Costed BOM analysis,
Exports to spreadsheets for least cost quotes from supplier feedback

For a database with >1k part numbers and up to 6 suppliers of any part so we could get at least 3 quotes to get best 1k~10k unit pricing on multiple assy.

Essentially this was an MRP system that didn’t cost $xxk and didn’t require 6 mos training for all staff to use.

This is essential when the cost-saving benefits of having these features are greater than the cost of implementing it.

Here is a snapshot of 1 page of my Master Register used by Design Engineers also showing, bin location and quantity of the Iris part number.