Calibration of PurpleAir monitors

For the last few years, I’ve been analyzing the performance of the PurpleAir monitors. Last week the Sensors journal published my detailed comparison of the Plantower CF_1 algorithm with an alternative algorithm called ALT-CF3.

This is Open Access. There is also a link within the pdf that takes you to the Supplemental Information (pictures of the PurpleAir and SidePak research-grade monitors, for example.)

ALT-CF3 is a based on a method that has been used for decades to calculate PM2.5 from monitors providing estimates of particle numbers in several size categories. 33 PurpleAir monitors within 500 m of 27 Federal Reference monitors in California supplied the data over 18 months resulting in the choice of 3.0 as the calibration factor (CF) (Wallace et al., 2021).

Some good news from the new paper in Sensors is that the ALT-CF3 algorithm produces extremely good precision, averaging 4-8%, compared to about 10-15% for the CRF_1 algorithm.

More good news is that the Limit of Detection (LOD) of the ALT-CF3 algorithm is below 1 ug/m3, compared to the CF_1 LOD of 3-5 ug/m3. Since outdoor PM2.5 is often below 3-5 ug/m3, this means that a rather high percentage (sometimes more than half) of outdoor measurements using the CF_1 algorithm are below the LOD.

Even more good news is that the monitors showed sustained high performance for the entire 3 years of the study.
A great advantage of the PurpleAir monitors is that they can be used indoors to provide the first actually measured long-term exposures to PM2.5 that we have. However, indoor concentrations are usually lower than outdoors, meaning that an even higher percentage of CF_1 measurements will fall below the LOD.

A drawback to using the CF_1 or CF_ATM algorithms is that concentrations falling below a certain value are all given a value of zero. Statisticians do not agree with this approach, preferring that the reported concentrations not be altered. At low concentrations, zeros often predominate. The ALT-CF3 algorithm NEVER reports zeros, since there are always some particles in the 0.3-0.5 um size category.
In the Map page, there are five alternative conversions offered, such as ALT-CF3, LRAPA, EPA, etc. However, four of these depend on the CF_1 algorithm, and thus have the same problems with the poor precision, prevalence of zeros at low concentrations, etc. due to the CF_1 algorithm. The only conversion that does not depend on CF_1 is the ALT-CF3 version.

Fortunately, the ALT-CF3 version is available for downloading on the PurpleAir API website. There it is named PM2.5 alt.
Lance Wallace


The link to the paper on calibration of PurpleAir monitors referred to above is

The calibration discussed above is only for the PA-II monitors with PMS 5003 sensors. Also, it is only for outdoor air in California. This leaves us with some unfinished business:

  1. Do we need a separate calibration for outdoor air in other areas of the country?
  2. Do we need a separate calibration for wildfire smoke?
  3. Do we need a calibration for indoor air?
  4. Do we need a calibration for the PA-I monitor with the PMS 1003 sensor.

My colleagues at Stanford and I actually made a start on 3) above-- the calibration for indoor air. We published a study of the source strength of vaping marijuana in 2020

We found that a single puff of marijuana vapor had about 2-6 times as much PM2.5 as a single puff of a tobacco cigarette. We also found, by comparing the PurpleAir monitors used in the study to co-located SidePak research monitors, (and then to gravimetric pump-filter-microbalance methods) that the best calibration factor for the marijuana vapor (mixed with outdoor air penetrating the exposure chamber (a room in my house)) was again 3.0. So we have one estimate of the calibration factor for a single indoor source. Once we go through another thousand or so sources we might have a useful indoor air calibration factor. This study required 124 6-hour experiments over the course of one year. We have our work cut out for us and our descendants!

REgarding other unfinished business, for problem 1) above the EPA studied about 6 geographci areas in the US and came up with a single “nationwide” calibration,with a correction for RH. However, their correction factor depends ultimately on the CF_1 system and therefore has the same faults as the CF_1 system.

A recent study by Liang found a new calibration factor for wildfires, but again it depended on the CF_1 method.

However, in this case, the concentrations were so high that we need not worry about zeros appearing very often, so their calibration factor (0.52) is probably pretty good. It suggests that the normal overestimate of 50% or so by the CF_1 method increases to nearly a factor of 2 overestimate for wildfire smoke.

1 Like

Here is an easy way to calculate the ALT cf=3 PM2.5 value from the particle numbers given in the first four size categories in the “Secondary” part of the download using the widget in the Map page and selecting the “No” conversion. Recall that these categories are the numbers (per deciliter but that won’t matter) of all the particles greater than the given category. Therefore the first category 0.3-0.5 um is all particles greater than 0.3 um To get the number of particles in that category alone, you must subtract the number of particles >0.5 um (given in the next larger category of 0.5-1 um) from the number greater than 0.3 um. This is the number of particles in the smallest size category 0.3-0.5 um. By repeating this for the next two size categories you get the number of particles in each of the first three categories. There are also some steps putting in the density and calculating the masses of the particles in each size category, but all that is contained in the three coefficients shown below. Suppose N1 is the number of particles/dl in the smallest size category (0.3-0.5 um), and N2 and N3 are the number in the next two categories up to 1-2.5 um. Now the total mass will be given by the following equation:

PM2.5 = 3 (0.00030418*N1 + 0.0018512 *N2 + 0.02069706 * N3)

The factor of 3 is the calibration factor.

For those persons using the API site, you should get exactly the same values using the PM2.5 alt variable.