Attention!
In order to detect thefts the processed data is used (it is done on the Data preparation and Filtration steps).
The next options are crucial while detecting thefts:
- Minimum fuel theft volume, liters;
- Idling;
- Detect fuel theft in motion;
- Ignore filtration when calculating theft volume.
Minimum fuel theft volume
'Unit properties' → 'Fuel consumption' → 'Fuel fillings/thefts detection' block → 'Minimum fuel theft volume, liters'
This option defines the required drop of the fuel level minus the fuel consumption for motion/idling, so that the theft is detected.
Idling
'Unit properties' → 'Fuel consumption' → 'Consumption math' block → 'Idling, liters per hour'
The option allows to detect thefts on stops/parkings. The system finds the difference between the spent fuel volume according to the sensors and a mathematically calculated one. In case of a non-zero difference, which is equal to or more than the value set in the minimum fuel theft volume option, the fuel theft is detected.
Detect fuel theft in motion
'Unit properties' → 'Sensors' → Sensor type 'Engine ignition' → 'Consumption, liters per hour' 'Unit properties' → 'Sensors' → Sensor type 'Absolute engine hours' → 'Consumption, liters per hour' 'Unit properties' → 'Sensors' → Sensor type 'Relative engine hours' → 'Consumption, liters per hour'
By default this option is unchecked. In case there is a necessity to control thefts in motion a user may use the option. But if sharp fuel level drop takes place then false theft may be detected.
Calculate theft volume by raw data
'Unit properties' → 'Fuel consumption' → 'Fuel Fillings/Thefts Detection' block → 'Calculate theft volume by raw data'
Similar to fillings, the filtration may deviate the start and the end fuel level values of thefts. To ignore such deviations, the system uses unfiltered data while calculating the volume of theft.
Special Case: How a fuel theft is detected?
Time frame of a theft and its volume
A theft is being performed.
Let us suppose that the fuel volume in the current message is Vcurr, the fuel volume in the previous message is Vprev. If the difference d for the current message (d = Vcurr – Vprev) is negative, the message is considered the initial message of the theft.
Time passes. When the value d is positive for some message (that is the fuel volume in the current message is higher than in the previous one), the message is considered as the final message of the theft. If the fuel level does not change during the time indicated in the Timeout to separate consecutive thefts parameter on the Fuel Consumption tab of the unit properties, the theft is considered finished as well.
The theft volume equals to Vfinal – Vinit (the difference of fuel levels between the final and the initial messages).
Theft timestamp calculation algorithm
Now we are looking for the timestamp of the theft.
The system seeks a delta with the following message (d = Vnext – Vcurr) for every message within the theft interval. The delta shows the decrease in the fuel level between the current and the future messages.
The message timestamp that has the highest delta is considered to be the theft timestamp (in other words, the left message with the biggest delta is selected from the pair of messages).
It is worth emphasizing that the timestamp of a fuel theft is calculated dynamically depending on the values of the sensors in every particular situation.