Air changes are the answer, not the question
Ventilation for a room with something living in it is a dilution problem. There is a source rate, there is a level you want to hold, and there is the level of the air you are bringing in. The flow follows from those three and nothing else:
fresh air flow = CO2 production rate ÷ (setpoint − incoming level)
The units have to be made consistent, which is where parts per million earns its keep. A room producing 3 cubic feet of CO2 an hour, held at 1,000 ppm against incoming air at 430 ppm, has 570 parts per million of dilution capacity — 0.00057 as a fraction. Three divided by 0.00057 is about 5,260 cubic feet an hour, or 88 CFM.
Air changes per hour never appears in that sum. It comes out at the end, as a description of the answer: 88 CFM in a 1,728 cubic foot room is 3.06 changes an hour. Picking an ACH first and computing CFM from it, which is what the CFM and air changes calculator does, is the right approach for a bathroom or a workshop where there is no measurable source. Here there is one, so you can do better.
Measuring the source instead of looking it up
The production rate is the only hard input, and it is easy to measure and hard to find. Shut the fresh air off, note the meter reading, wait a known time and read it again. The room volume converts the ppm rise into a volume of gas:
production rate = room volume × ppm rise ÷ 1,000,000 ÷ minutes
A 1,728 cubic foot room that goes from 800 to 2,400 ppm in 30 minutes is producing 1,728 × 0.0016 ÷ 30, or 0.0922 cubic feet a minute — 5.5 cubic feet an hour.
Two things spoil the measurement, and both spoil it in the same direction. Leakage means some of the CO2 left the room during the test, so the measured rise understates production and the fan you size from it is too small. A person standing in the room is a substantial source in their own right and pushes the reading the other way. Do the test with the room shut and empty of people, and keep it short enough that the room has not changed much between the two readings.
What the incoming air does to the whole thing
The denominator is the difference between the setpoint and the air you are feeding in, and it is unforgiving. Outdoor air is somewhere around 420 to 450 ppm and drifts upward year by year. Air drawn from a corridor, a basement or another occupied room can be far higher.
If the setpoint is 800 ppm and the make-up air is at 430, the working difference is 370 and the fan is one size. If the same air is actually being pulled from a room sitting at 700 ppm, the working difference is 100 and the fan needs to be 3.7 times bigger for the same result. If the make-up air is at or above the setpoint, no fan reaches it at all, which is a genuinely common situation in a converted basement and one the calculator will tell you about in plain terms.
| Setpoint | Incoming air | Working difference | Flow for 3 cu ft/h of CO2 |
|---|---|---|---|
| 800 ppm | 430 ppm | 370 ppm | 135 CFM |
| 1,000 ppm | 430 ppm | 570 ppm | 88 CFM |
| 1,500 ppm | 430 ppm | 1,070 ppm | 47 CFM |
| 800 ppm | 700 ppm | 100 ppm | 500 CFM |
The air you bring in has to be paid for
Every cubic foot of outdoor air arrives at outdoor temperature and has to be moved to room temperature. The sensible part of that load is 1.08 multiplied by the CFM multiplied by the temperature difference, in BTU per hour. At 88 CFM and a 25 degree difference that is about 2,376 BTU/h, running continuously. The moisture load is separate and is not in that figure; the humidifier sizing calculator and the drying chamber airflow calculator both deal with the water side of ventilation air.
This is the reason fresh air and room conditioning are the same argument rather than two separate ones. Doubling the fresh air roughly doubles the tempering load, and in a small room that load can exceed everything else put together. The greenhouse heat loss and heater sizing calculator handles the envelope side of the same balance.
What this page has no view on
It supplies no CO2 target, for any species and any stage of growth, and it makes no claim that any level is right or wrong. The setpoint is a number you bring from your own process or a cultivation reference. A closed room holding a crop that is producing CO2 is a confined space, and that is worth stating plainly and leaving there. So is the fact that spores in quantity are a respiratory sensitiser that growers do react to over years of exposure. This page describes no procedure for either and specifies no equipment.
Questions people ask
How do I work out how much fresh air a fruiting room needs?
Divide the CO2 production rate by the difference between the level you want to hold and the level of the air you are bringing in. Air changes per hour is the result of that sum, not an input to it. Picking an ACH figure first and sizing from it ignores how much CO2 is actually being produced, which is the only thing that decides the answer.
How do I measure the CO2 production rate?
Shut the fresh air off with the room empty of people, note the meter, wait a known time and read again. Room volume times the ppm rise divided by a million divided by the minutes gives cubic feet per minute of CO2. Leakage makes the measured rise smaller than the true production, so a leaky room produces a fan size that is too small rather than too large.
What CO2 level should I hold?
This page does not say, for any species or any stage. The setpoint is an input you supply from your own tested process or a cultivation reference, and the calculator has no view on it. What it will tell you is what flow holds whatever number you give it, and when that number is unreachable because of the air you are feeding in.
Why does the calculator care what the incoming air reads?
Because ventilation dilutes the room towards the level of the air you feed it and can never go below it. Outdoor air near 430 ppm and a setpoint of 800 gives 370 ppm of working difference; make-up air pulled from a corridor at 700 ppm leaves only 100, and needs nearly four times the fan. If the incoming air is at or above the setpoint, no fan reaches it.
Does more fresh air cost anything besides the fan?
The tempering load, which is often the larger cost. Sensible load is 1.08 times CFM times the temperature difference in BTU per hour, running whenever the fan runs, and the moisture load is on top of that. Doubling the fresh air roughly doubles both.