A system for determining an estimated weight of a vehicle, the system comprising: at least one data storage configured to store vehicle data associated with the vehicle, the vehicle data comprising a plurality of vehicle parameters collected during operation of the vehicle; and at least one processor in communication with the at least one data storage, characterized in that the at least one processor configured to: identify a plurality of vehicle maneuvers based on the vehicle data, each vehicle maneuver being associated with a portion of the vehicle data, each portion of the vehicle data comprising a measured torque profile, each measured torque profile comprising a time series of measured torque values; generate a plurality of simulated torque profiles for each vehicle maneuver, each simulated torque profile being generated using a vehicle dynamics model based on at least some of the portion of the vehicle data associated with the corresponding vehicle maneuver and a candidate vehicle weight, each simulated torque profile comprising a time series of simulated torque values; generate a plurality of error profiles, an error profile being generated for each vehicle maneuver based on differences between the plurality of simulated torque profiles and the measured torque profile corresponding to that vehicle maneuver; and determine the estimated weight of the vehicle by minimizing the plurality of error profiles. at least one data storage configured to store vehicle data associated with the vehicle, the vehicle data comprising a plurality of vehicle parameters collected during operation of the vehicle; and at least one processor in communication with the at least one data storage, characterized in that the at least one processor configured to: identify a plurality of vehicle maneuvers based on the vehicle data, each vehicle maneuver being associated with a portion of the vehicle data, each portion of the vehicle data comprising a measured torque profile, each measured torque profile comprising a time series of measured torque values; generate a plurality of simulated torque profiles for each vehicle maneuver, each simulated torque profile being generated using a vehicle dynamics model based on at least some of the portion of the vehicle data associated with the corresponding vehicle maneuver and a candidate vehicle weight, each simulated torque profile comprising a time series of simulated torque values; generate a plurality of error profiles, an error profile being generated for each vehicle maneuver based on differences between the plurality of simulated torque profiles and the measured torque profile corresponding to that vehicle maneuver; and determine the estimated weight of the vehicle by minimizing the plurality of error profiles. identify a plurality of vehicle maneuvers based on the vehicle data, each vehicle maneuver being associated with a portion of the vehicle data, each portion of the vehicle data comprising a measured torque profile, each measured torque profile comprising a time series of measured torque values; generate a plurality of simulated torque profiles for each vehicle maneuver, each simulated torque profile being generated using a vehicle dynamics model based on at least some of the portion of the vehicle data associated with the corresponding vehicle maneuver and a candidate vehicle weight, each simulated torque profile comprising a time series of simulated torque values; generate a plurality of error profiles, an error profile being generated for each vehicle maneuver based on differences between the plurality of simulated torque profiles and the measured torque profile corresponding to that vehicle maneuver; and determine the estimated weight of the vehicle by minimizing the plurality of error profiles.