In addition to
@MP3Mike's notes above, the issue is balance.
Multiple variables need to match in every module and cell group in order for the pack to be safe and usable. Otherwise it gets to the point where it's not safe to charge or discharge, and you're stuck.
The core ones are voltage balance, CAC (calculated total capacity) balance, and SoC balance. These are NOT the same things, and this is not an exhaustive list of things that need to match up for a module replacement to viable.
When replacing modules, you usually end up with a "pick one or two but not all three" situation where it's possible to get one or two of these variables close to what's needed to match the rest of the pack, but getting all three is virtually impossible when dealing with existing used battery packs.
You can't put in new cells/modules (even if it were practical to build them new), because these would immediately fail the "CAC" variable vs the rest of the pack, since they're new cells. The pack would quickly go out of balance on the remaining core variables as a result.
You can't put used modules into an existing pack, because used modules will already have their variables setup and built up over their existing life, and they're not going to match up with modules in a pack that lived an entirely different life. If you get one or two variables right, the inevitable result is a feedback loop that amplifies the error over time, eventually resulting in a deviation further and further from the rest of the pack.
I may have useful analogy for understanding how modules that have lived different lives could have some of their parameters (like kWh in/out or CAC) match while other parameters are different:
Take two buckets (or tubs, or dams with reservoirs), fill them with very hard water or muddy water, then drain the water. A residue/sediment line will remain. Do this repeatedly to the buckets, but treat each of the buckets slightly differently. Change things up by leaving the water in for different lengths of time (vary from hours to days to weeks). Sometimes also fill to different levels. Vary the temperatures between the buckets (maybe ice will build up on one). In the end, regardless of when you stop, the residue/sediment lines/bathtub ring lines probably will be different, even if the total water that was passed through the buckets is the same.
Modules from the same set lived the same lives and were always filled/drained the same way, and should have 'bathtub rings' that are really similar. Their differences are small enough to be handled by a passive BMS.
So I've been wondering on this. If the imbalance between various bricks is this severe a problem, how do people use them aftermarket when packs get parted out and people buy some to build a solar backup storage kind of thing? Can you get by with this level of imbalance if you're intentionally narrowing the usable band, like only using it from 20-80%? It doesn't need as much precision then, I guess, if it doesn't need to be accurate down to the bottom of the battery level.
That is probably part of it, but it is also a matter of power. The car usage varies from +250kW to -600kW. For solar storage you are likely looking at +15kW to -20kW. So you aren't putting anywhere near the stress on the cells, and you have much more time for a BMS system to keep things in balance.
My interpretation of the matter, from reading
@wk057's posts and other discussions, is that the Tesla BMS is not designed to handle the amount of mismatch that is seen in failed packs, or in module-swapped packs, especially when coupled with a lot of heavy discharge/recharge usage without sufficient rebalancing time in between the heavy usage periods. This is the result of a design decision that reduces BMS parts, complexity, and cost. It appears to work well for a matched set of modules that are not quickly drifting apart.
In contrast, a fancier active BMS (with charging shuttling capability), can tolerate higher levels of mismatch. Such a BMS might be selected for a custom pack (possibly with a translator to whatever the car expects to see) or for a module reuse application like backup storage. These BMSes are more expensive, need more components, and take more space, but are more tolerant of imperfect cells/modules (whichever level of the design they balance at).
A passive BMS has fewer potential failure points within the BMS, but is less able to manage a failing pack with cells/modules that are drifting apart. It also wastefully burns off excess energy.
An active BMS has more potential failure points within the BMS, but is more able to manage a failing pack with cells/modules that are drifting apart. It moves energy instead of burning it off, but it has more overhead to run.
I think active BMSes show more value later in a pack's life, as they can allow for a more gradual degradation in pack usability. This is especially so if the cost of an active BMS can (somehow) be kept low enough, and reliability high enough, to justify their usage vs forcing otherwise avoidable pack swaps. (Devices exist for Toyota Prius batteries than can balance aging Prius NiMH packs.)
Here is some info and examples of such active BMS equipment:
Wond3r if anybody has experience with this, and is it any good, sounds pretty good ?7.03 32%OFF | 1.2A Balance Li-ion Lipo Lifepo4 LTO Lithium Battery Active Equalizer Balancer Energy Transfer BMS 3S 4S 5S 6S 7S 10S 12S 13S 16 https://s.click.aliexpress.com/e/M5JnhTAY Thanks
secondlifestorage.com
BMS talk: Active vs Passive part 1
www.rec-bms.com
www.jkbms.com
This brings up a question for me, as I am on my 3rd 100kwh pack in my 2018 S 100D. What is Tesla doing when they "remanufacture" the packs? The reason I ask is because the first time the pack was replaced, the EPA rated range-o-meter stayed the same at 313 range at 100% SOC. (took 2 months to get the car back from Tesla). The latest replacement (last week) took 3-4 days and the range-o-meter is definitely under 300, I believe 290 ish at 100% SOC. I am probably going to demand another pack under the terms of the warranty, but its obvious they aren't replacing the cells with new ones, unless my car is being software locked? Not sure how to tell..
3x unlucky? On a 100 pack? What kind of mileage and errors were you seeing? That really seems like an unlucky streak. Most things I hear are that the 100 packs are quite reliable.
Edit: typo