A method of storing data relating to a parameter of a vehicle, wherein the data is provided by a vehicle sensor, the method comprising the steps of: receiving, at time intervals, a series of first and second values from the vehicle sensor, wherein each first value represents a parameter that is sensed by the vehicle sensor, and each second value relates to the functioning of the vehicle sensor; for each new first value that is received: (a) comparing the new first value to the immediately preceding first value that was received; (b) if the difference between the new first value and the immediately preceding first value is below a difference threshold, storing the difference in a memory ; or (c) if the difference between the new first value and the immediately preceding first value is above a difference threshold, storing the new first value in the memory , maintaining a counter recording the number of consecutive second values that have been received that have had the same value; and for each new second value that is received: (a) comparing the new second value to the immediately preceding second value that was received; (b) if the new second value is the same as the immediately preceding second value, incrementing the counter , and if the counter has reached a counter threshold value, recording the new second value in the memory , along with the counter threshold value, and resetting the counter ; or (c) if the new second value is different from the immediately preceding second value, recording the immediately preceding second value in the memory , along with the current counter value, and then resetting the counter . for each new first value that is received: (a) comparing the new first value to the immediately preceding first value that was received; (b) if the difference between the new first value and the immediately preceding first value is below a difference threshold, storing the difference in a memory ; or (c) if the difference between the new first value and the immediately preceding first value is above a difference threshold, storing the new first value in the memory , (a) comparing the new first value to the immediately preceding first value that was received; (b) if the difference between the new first value and the immediately preceding first value is below a difference threshold, storing the difference in a memory ; or (c) if the difference between the new first value and the immediately preceding first value is above a difference threshold, storing the new first value in the memory , maintaining a counter recording the number of consecutive second values that have been received that have had the same value; and for each new second value that is received: (a) comparing the new second value to the immediately preceding second value that was received; (b) if the new second value is the same as the immediately preceding second value, incrementing the counter , and if the counter has reached a counter threshold value, recording the new second value in the memory , along with the counter threshold value, and resetting the counter ; or (c) if the new second value is different from the immediately preceding second value, recording the immediately preceding second value in the memory , along with the current counter value, and then resetting the counter . (a) comparing the new second value to the immediately preceding second value that was received; (b) if the new second value is the same as the immediately preceding second value, incrementing the counter , and if the counter has reached a counter threshold value, recording the new second value in the memory , along with the counter threshold value, and resetting the counter ; or (c) if the new second value is different from the immediately preceding second value, recording the immediately preceding second value in the memory , along with the current counter value, and then resetting the counter . <EOS>