Battery state-of-charge estimation is an important component in battery management system design. Many known issues with lithium ion batteries such as performance decay, accelerated aging and even hazardous incidents were associated with faulty state-of-charge estimation. Different estimation algorithms can be summarized in a nutshell as: 1) modeless approaches, i.e. columbic counting; 2). model based observers, i.e. extended Kalman filter; and 3). data driven nonlinear models, i.e. neural networks, and learning machines. This paper adopts the third approach, and proposes a new architecture for SoC estimation using a load-classifying neural network. This approach pre-processes battery inputs and categorizes battery operation modes as idle, charge and discharge, with three neural networks trained in parallel. Using a vehicle drive cycle load profile for model training and a pulse test duty cycle for validation, the proposed method yields a 3.8% average estimation error. This result demonstrates that data driven machine learning approach can deliver estimation performance comparable with other advanced observer designs. The neural network however has a simpler model training procedure, boarder choice of training data, and smaller computational cost. In addition, with simple filtering and output constraints, estimation error spikes associated with ‘uncharted’ inputs can be effectively suppressed.