With properly tested, matched and monitored cells ...
A BMS becomes more an expensive security blanket than a necessity.
1. Eliminate self discharging cells!
Charge cells to rated or anticipated charge voltage
Let set idle for several days and monitor for and eliminate all with a notable self discharge
(I bulk charge large numbers in parallel, then separate to diagnose self discharge)
2. Test IR
An IR meter is rather expensive ...
So I run a comparative IR test
With cells still of equal voltage, apply a measured drain to each cell or pair of cells etc.
Monitor voltage sag with the specific discharge amperage for a specific time
EG 1A or .5C for 1 minute ... ?
Label each cell or pair with the sag voltage for use as it's comparative IR (-.12V)
Cells with excessive IR should be eliminated, or separated for alternate use-project.
3. Test Capacity
Cells can be capacity tested individually
a. But I prefer to do a time and effort saving bulk capacity test
(Use self discharge and IR tests will eliminate most low capacity cells 1st)
I rig 28-30 cells, (typically paired cells = 56-60), in series for a 117.6-126VDC .
Then I attach 2 - 60w (120w) light bulbs for a 1Amp discharge. (1 - 60w for .5A discharge etc.)
(Quick check for any "bad" IR cells I might have missed)
Check-monitor voltages of every cell at specific intervals, 15min = .25Ah, 6min = .1Ah etc.
Monitor very closely as cells near 3.60V, as voltage will drop suddenly near that voltage!
You can end test when first cell hits 3.50V and label each cell with time expired (2 hours = 2000mAh) and residual voltage after discharge removed.
This will give you a reasonably accurate comparative capacity.
You can further, more accurately, test capacity by continuing test with matched cells from subsequent batches of cells.
b. I combine 20 cells (or cell pairs = 40 etc.) in series and discharge through a cheap 90V V-A-W-Ah meter - $12 (requires external battery connected for maintaining mAh reading when cells removed)
Add electrical discharge devices till desired discharge rate attained (2-3 bulb light fixture, various wattages - 50-100-150w 3-way bulb?)
As cells hit discharge voltage ( 3.50V?) remove cells and mark with mAh when cells removed from series.
(For ease, I, now, connect cells in series with small 8mm neodymium magnets, steel wire on end of strings to fold into shorter stings)
(Recharge all cells to identical voltage)
Build banks of equal capacity.
If IR varies noticeably and short of spare cells, distribute a similar sampling of differing IR cells to each bank.
Connect cells in series and parallel and perform a monitored discharge at near anticipated use.
Monitor banks for any sags or low final voltage.
If banks of equal voltages during deep discharge (3.50V?) and after discharge removed, pack is of equal capacity and IR.
Banks of equal voltage after deep discharge (~3.70V?) indicates banks of equal capacity.
If unequal, rated cells can be swapped to equalize.
If' when drain removed, bank voltages diverge, then IR can be adjusted by replacing individual cells with ones of higher or lower comparative IR.
Building banks of equal capacity and IR is more important than individual cells!
It may seem like a lot of effort!
But after many, many builds and 10s of thousands of eBike miles ...
Building it right to begin with saves much time and effort!!!
Banks of equal capacity and IR will discharge and recharge nicely to nearly identical voltages!
Bulk charging recommended with the occasional or scheduled balance charge.
Do monitor charged and discharged voltages for any problem or to determine when balance charge desirable.
Remove self discharging cells
Build banks of equal capacity and IR
Never over charge or discharge
Monitor bank voltages
Never need or want a BMS ... !
I have come to view a BMS as a band-aid for a defective pack!
See - Bulk Capacity Testing
Designed tests for recycled cells ... but
Test new cells too!
If nothing else ... test for self discharge! and demand replacements for these defective-dangerous cells!!!