The coulomb counting with voltage compensation approach can still yield SoC estimate errors over 20% in LFP, even on brand-new batteries operating at normal temperatures. Open Circuit Voltage (OCV) is a measurement of a battery cell's voltage at a known state of charge when at resting equilibrium
...
I did read about the battery reading for the 3 taking significantly longer due to bigger resistors. So while the y and the s take like 20 minutes, the 3 takes 2+ hours.
Because Tesla wanted the Model 3 battery to be the most efficient it could be, Tesla decided to decrease the vampire drain as much as possible. One step they took to accomplish this was to increase the value of all of these resistors so that the vampire drain is minimized. The resistors in the Model 3 packs are apparently around 10x the value of the ones in the Model S/X packs. So what does this do to the BMS? Well, it makes the BMS wait a lot longer to take OCV readings, because the voltages take 10x longer to stabilize. Apparently, the voltages can stabilize enough to take OCV readings in the S/X packs within 15-20 minutes, but the Model 3 can take 3+ hours.
This means that the S/X BMS can run the calibration computations a lot easier and lot more often than the Model 3. 15-20 minutes with the contactor open is enough to get a set of OCV readings. This can happen while you're out shopping or at work, allowing the BMS to get OCV readings while the battery is at various states of charge, both high and low. This is great data for the BMS, and lets it run a good calibration fairly often.
On the Model 3, this doesn't happen. With frequent small trips, no OCV readings ever get taken because the voltage doesn't stabilize before you drive the car again. Also, many of us continuously run Sentry mode whenever we're not at home, and Sentry mode keeps the contactor engaged, thus no OCV readings can be taken no matter how long you wait. For many Model 3's, the only time OCV readings get taken is at home after a battery charge is completed, as that is the only time the car gets to open the contactor and sleep. Finally, 3 hours later, OCV readings get taken.
But that means that the OCV readings are ALWAYS at your battery charge level. If you always charge to 80%, then the only data the BMS is repeatedly collecting is 80% OCV readings. This isn't enough data to make the calibration computation accurate. So even though the readings are getting taken, and the calibration computation is being periodically run, the accuracy of the BMS never improves, and the estimated capacity vs. actual capacity continues to drift apart