A new bridge weigh-in-motion (WIM) algorithm is developed which makes use of strain sensors at multiple longitudinal locations of a bridge to calculate axle weights. The optimisation procedure at the core of the proposed algorithm seeks to minimise the difference between static theory and measurement, a procedure common in the majority of bridge WIM algorithms. In contrast to the single unique value calculated for each axle weight in common Bridge WIM algorithms, the new algorithm provides a time history for each axle based on a set of equations formulated for each sensor at each scan. Studying the determinant of this system of equations, those portions of the time history of calculated axle weights for which the equations are poorly conditioned are removed from the final reckoning of results. The accuracy of the algorithm is related to the ability to remove dynamics and the use of a precise influence line. These issues are addressed through the use of a robust moving average filter and a calibration procedure based on using trucks from ambient traffic. The influence of additional longitudinal sensor locations on the determinant of the system of equations is discussed. Sensitivity analyses are carried out to analyse the effect of a misread axle spacing or velocity on the predictions, and as a result, the algorithm reveals an ability to identify potentially erroneous predictions. The improvement in accuracy of the calculated axle weights with respect to common approaches is shown, first using numerical simulations based on a vehicle-bridge interaction finite-element model, and second using experimental data from a beam-and-slab bridge in Slovenia.