A method for use by at least one processor, at least one memory, and an associated sensor (104, 106, 108), wherein computer-executable instructions are stored in the at least one memory which, when executed by the at least one processor, perform a method comprising: receiving multiple requests from respective multiple applications (112, 114, 116) for sensor data from the associated sensor, the multiple requests indicating preferred sensor sample intervals for the multiple applications and wherein at least some of the preferred sample intervals of the multiple applications are different; the method being characterised in that it further comprises: receiving at a sensor stack, from the multiple applications, respective requests for report interval modes for the sensor data to be provided by the associated sensor to the multiple applications, wherein the report interval mode for each application is chosen by the application between a strict mode, an opportunistic mode, and an automatic mode, wherein in the strict mode the sensor stack provides sensor data as close as possible to the requested preferred sensor sample interval to the application that has chosen this mode, wherein in the opportunistic mode the sensor stack provides data at the highest rate requested by the multiple applications to the application that has chosen this mode, wherein in the automatic mode the sensor stack provides data at a rate determined by the sensor stack to the application that has chosen this mode; and sending the sensor data to the multiple applications based on the chosen report interval modes and the preferred sample intervals. receiving multiple requests from respective multiple applications (112, 114, 116) for sensor data from the associated sensor, the multiple requests indicating preferred sensor sample intervals for the multiple applications and wherein at least some of the preferred sample intervals of the multiple applications are different; the method being characterised in that it further comprises: receiving at a sensor stack, from the multiple applications, respective requests for report interval modes for the sensor data to be provided by the associated sensor to the multiple applications, wherein the report interval mode for each application is chosen by the application between a strict mode, an opportunistic mode, and an automatic mode, wherein in the strict mode the sensor stack provides sensor data as close as possible to the requested preferred sensor sample interval to the application that has chosen this mode, wherein in the opportunistic mode the sensor stack provides data at the highest rate requested by the multiple applications to the application that has chosen this mode, wherein in the automatic mode the sensor stack provides data at a rate determined by the sensor stack to the application that has chosen this mode; and sending the sensor data to the multiple applications based on the chosen report interval modes and the preferred sample intervals. receiving at a sensor stack, from the multiple applications, respective requests for report interval modes for the sensor data to be provided by the associated sensor to the multiple applications, wherein the report interval mode for each application is chosen by the application between a strict mode, an opportunistic mode, and an automatic mode, wherein in the strict mode the sensor stack provides sensor data as close as possible to the requested preferred sensor sample interval to the application that has chosen this mode, wherein in the opportunistic mode the sensor stack provides data at the highest rate requested by the multiple applications to the application that has chosen this mode, wherein in the automatic mode the sensor stack provides data at a rate determined by the sensor stack to the application that has chosen this mode; and sending the sensor data to the multiple applications based on the chosen report interval modes and the preferred sample intervals.