A method comprising: receiving vehicle sensor data collected by vehicle sensors of a vehicle, the vehicle sensor data comprising accelerometer data collected by an accelerometer located at a fixed location on the vehicle; receiving mobile device sensor data collected by mobile device sensors of a mobile device located within the vehicle, the mobile device sensor data comprising first-axis accelerometer data, second-axis accelerometer data, and third-axis accelerometer data; translating the mobile device sensor data into X-axis accelerometer data, Y-axis accelerometer data, and Z-axis accelerometer data in a reference frame of the vehicle, resulting in translated mobile device sensor data; detect a first occurrence of a first event in the vehicle sensor data by determining that a first change in a magnitude of the accelerometer data exceeds a first predetermined threshold; calculating, based on the detected first occurrence of the first event in the vehicle sensor data, a first occurrence vector comprising a first occurrence magnitude and a first occurrence angle, wherein the first occurrence angle represents an angle created by acceleration along one or more of an X-axis, Y-axis, or Z-axis during the first occurrence of the first event detected in the vehicle sensor data; detecting a second occurrence of the first event in the translated mobile device sensor data by determining that a second change in magnitude of the Z-axis accelerometer data exceeds a second predetermined threshold; determining whether the first occurrence of the first event in the vehicle sensor data matches the second occurrence of the first event in the translated mobile device sensor data; in response to determining that the first occurrence of the first event in the vehicle sensor data matches the second occurrence of the first event in the translated mobile device sensor data, calculating, based on the detected second occurrence of the first event in the translated mobile device sensor data, a second occurrence vector comprising a second occurrence magnitude and a second occurrence angle, wherein the second occurrence angle represents an angle created by acceleration along one or more of an X-axis, Y-axis, or Z-axis during the second occurrence of the first event detected in the translated mobile device sensor data; and determining, using a heuristics engine and based on the difference between the calculated first occurrence vector and the calculated second occurrence vector, a position of the mobile device within the vehicle relative to the centre of gravity of the vehicle. receiving vehicle sensor data collected by vehicle sensors of a vehicle, the vehicle sensor data comprising accelerometer data collected by an accelerometer located at a fixed location on the vehicle; receiving mobile device sensor data collected by mobile device sensors of a mobile device located within the vehicle, the mobile device sensor data comprising first-axis accelerometer data, second-axis accelerometer data, and third-axis accelerometer data; translating the mobile device sensor data into X-axis accelerometer data, Y-axis accelerometer data, and Z-axis accelerometer data in a reference frame of the vehicle, resulting in translated mobile device sensor data; detect a first occurrence of a first event in the vehicle sensor data by determining that a first change in a magnitude of the accelerometer data exceeds a first predetermined threshold; calculating, based on the detected first occurrence of the first event in the vehicle sensor data, a first occurrence vector comprising a first occurrence magnitude and a first occurrence angle, wherein the first occurrence angle represents an angle created by acceleration along one or more of an X-axis, Y-axis, or Z-axis during the first occurrence of the first event detected in the vehicle sensor data; detecting a second occurrence of the first event in the translated mobile device sensor data by determining that a second change in magnitude of the Z-axis accelerometer data exceeds a second predetermined threshold; determining whether the first occurrence of the first event in the vehicle sensor data matches the second occurrence of the first event in the translated mobile device sensor data; in response to determining that the first occurrence of the first event in the vehicle sensor data matches the second occurrence of the first event in the translated mobile device sensor data, calculating, based on the detected second occurrence of the first event in the translated mobile device sensor data, a second occurrence vector comprising a second occurrence magnitude and a second occurrence angle, wherein the second occurrence angle represents an angle created by acceleration along one or more of an X-axis, Y-axis, or Z-axis during the second occurrence of the first event detected in the translated mobile device sensor data; and determining, using a heuristics engine and based on the difference between the calculated first occurrence vector and the calculated second occurrence vector, a position of the mobile device within the vehicle relative to the centre of gravity of the vehicle.