I understand this hasn’t been your experience. I am just providing an explanation for what you experienced. There is nothing to “fix” here, this is just the way the BMS works from time to time.
I don’t suppose it is easy for the BMS to estimate exactly what battery percentage and range is left. It can’t just add up charges and discharges. These are relative measurements, and small errors will gradually integrate up to large ones. It can’t just look at battery voltage either, since this is affected by recent battery charge/discharge, temperature, and I’m sure a lot of other factors. Furthermore, battery degradation affects the calibration, so it will constantly need to recalibrate over days, weeks, months.
If you are also only charging to 90% and have the same driving pattern every day, you are giving the BMS a very limited set of data to work with, so the calibration may be fairly stable when it sees only a small amount of data. It may need to take larger recalibration steps when it sees something different. I’m just speculating here. What I can tell you for certain is that this is normal behavior, even if you haven’t seen this before.