The VOC is not the easiest thing to interpret. You can read more on how a VOC sensor works: https://www.uradmonitor.com/metal-oxide-voc-sensors/
When Bosch manufactured their VOC capable BME680, they also provided a library that would compute a score 1 to 500 to do some estimations on the raw VOC levels. Sadly, this library was never integrated in the uRADMonitor products, it was too big for these embedded systems. On the other hand, current uRADMonitor devices are not using the BME680 anymore, it was too susceptible to failure.
The way that lib worked was that it kept a given interval of raw VOC history data. It then used it to compute a baseline and have a reference point to any upcoming raw VOC reading.
I implemented a similar mechanism for the VOC AQI . The last 24 hours of VOC raw data is analysed and the interval min and max are kept. Any new VOC value is compared against the two, and scaled across a 1-500 interval.
This approach worked amazingly well, and generated perfect alignments with other sensors, like the formaldehyde one. This was impressive as we are talking about two separated sensing elements, based on completely different detection technologies. See it here: https://twitter.com/RaduMotisan/status/1067894752027312128
There is a university in Canada currently using several A3 devices for research on how the VOC can be better used.
