Charging is generally the most important factor in accelerating battery degradation. Adaptive algorithms utilize charging to diagnose the internal properties of every battery in real time. The data provide continuous diagnostics of the battery's aging. Our algorithms then optimize the rate and degree of charging to reduce battery wear and maximize battery life. The adaptive charging algorithms repeat this process every time the battery is plugged into the charger.