The reporting chain, and the two conventions under it
An analyser gives a reading. A permit wants something else entirely, and getting from one to the other is a chain of three conversions — each of them simple, and each of them resting on a convention that has to be stated or the whole report is meaningless.
ppm to mg/m³: . is the pollutant's molar mass in g/mol (64.06 for SO₂, 46.01 for NO₂, 28.01 for CO), and 24.45 is the molar volume of an ideal gas in L/mol at 25 °C and 101.325 kPa. The moles cancel and a mass in a volume survives. Memorise one number and the rest follow: 1 ppm of SO₂ is 2.62 mg/m³. And state the reference state, always — European limits are written at 0 °C where the molar volume is 22.414, and every number carried across without saying so is 9 % out.
Correction to reference oxygen: — C-corrected equals C-measured, twenty point nine minus O-two reference, over twenty point nine minus O-two measured. Subscript meas is what the analyser saw; subscript ref is what the permit is written at (3 % for boilers, 11 % for incinerators, 15 % for turbines). 20.9 is the oxygen in dry ambient air — not 21, which is what the EPA convention is built on. The factor is a bare ratio, so it works identically on a ppm reading and a mg/m³ one, and it exists for exactly one reason: so that opening a damper cannot make a source look cleaner.
Excess air: , the same oxygen reading asked a different question — how much air beyond stoichiometric is going through the burner. The denominator is the oxygen that was CONSUMED, which is what makes it a ratio of leftover air to working air. Natural gas normally runs 10–15 % excess air, oil 15–25 %, coal 20–40 %; far above the band means a bad air-fuel setting or tramp air leaking into the casing.
Emission rate: , a concentration times the exhaust flow. In mg/m³ and m³/s the cubic metres cancel and the answer is mg/s, so ÷1000 gives the g/s a dispersion model asks for. One warning, and it is the one that costs real money: concentration and flow must be on the same basis. A dry, oxygen-corrected concentration multiplied by a wet actual flow can be out by a factor of two and look entirely reasonable on the page.