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.