{
  "id": "cfm",
  "version": "668d2b13c15d",
  "status": "published",
  "name": "CFM Calculator",
  "question": "How much CFM does my room need?",
  "summary": "Works out the airflow in cubic feet per minute (CFM) a room needs for a number of air changes per hour (ACH), or the air changes a fan’s CFM gives, from the room’s length, width and height.",
  "category": "construction",
  "url": "https://www.acalculator.org/construction/cfm-calculator",
  "markdown": "https://www.acalculator.org/construction/cfm-calculator.md",
  "kind": "function",
  "method": "Volume = length × width × height (ft³); CFM = volume × ACH ÷ 60; ACH = CFM × 60 ÷ volume; minutes to remove 99% = ln(100) ÷ ACH × 60.",
  "assumptions": [
    "The room is a box: length × width × height. Subtract large built-in volumes yourself.",
    "ACH counts clean air (outdoor air or filtered air), and the air in the room is well mixed.",
    "1 ft = 0.3048 m exactly, so 1 CFM = 1.699 m³/h = 0.4719 L/s."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "find": {
        "title": "Find",
        "description": "What to work out: the CFM for a number of air changes, or the air changes from a CFM.",
        "type": "string",
        "enum": [
          "cfm",
          "ach"
        ]
      },
      "l": {
        "title": "Room length",
        "description": "The length of the room.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 10000
      },
      "w": {
        "title": "Room width",
        "description": "The width of the room.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 10000
      },
      "h": {
        "title": "Ceiling height",
        "description": "The height of the ceiling.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 10000
      },
      "ach": {
        "title": "Air changes per hour (ACH)",
        "description": "How many times an hour the room’s whole volume of air is replaced. CDC suggests 5 or more.",
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 1000
      },
      "cfm": {
        "title": "Airflow (CFM)",
        "description": "The clean airflow into the room in cubic feet per minute, from a fan, air cleaner or HVAC system.",
        "type": "number",
        "exclusiveMinimum": 0,
        "maximum": 1000000000
      }
    }
  },
  "outputs": {
    "airflow": {
      "label": "Airflow (CFM)",
      "description": "Cubic feet of air per minute: room volume in ft³ × ACH ÷ 60.",
      "format": "number"
    },
    "m3h": {
      "label": "Airflow (m³/h)",
      "description": "The same airflow in cubic meters per hour.",
      "format": "number"
    },
    "ls": {
      "label": "Airflow (L/s)",
      "description": "The same airflow in liters per second.",
      "format": "number"
    },
    "changes": {
      "label": "Air changes per hour",
      "description": "How many times an hour the room’s air is replaced: CFM × 60 ÷ volume in ft³.",
      "format": "number"
    },
    "volume": {
      "label": "Room volume",
      "description": "Length × width × height.",
      "format": "quantity",
      "unit": "ft3"
    },
    "clear99": {
      "label": "Minutes to remove 99% of airborne particles",
      "description": "In a well-mixed room with no new source: ln(100) ÷ ACH × 60 minutes.",
      "format": "number"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "find": "cfm",
      "l": 4.572,
      "w": 3.6576000000000004,
      "h": 2.4384,
      "ach": 5,
      "cfm": 150
    },
    "outputs": {
      "airflow": 120,
      "m3h": 203.88129546240003,
      "ls": 56.63369318400001,
      "changes": 5,
      "volume": 40.776259092480004,
      "clear99": 55.2620422318571
    },
    "text": "A 1,440 ft³ room needs 120 CFM for 5 air changes per hour."
  },
  "examples": [
    {
      "given": {
        "find": "cfm",
        "l": 4.572,
        "w": 3.6576000000000004,
        "h": 2.4384,
        "ach": 5
      },
      "expect": {
        "airflow": 120,
        "changes": 5,
        "clear99": 55.2620422318571
      },
      "source": "hand calculation in content.mdx: 15 × 12 × 8 = 1,440 ft³; 1,440 × 5 ÷ 60 = 120 CFM; CDC NIOSH, Aim for 5 or More Air Changes per Hour (ACH = CFM × 60 ÷ (area × height)). https://www.cdc.gov/niosh/ventilation/prevention/Aim-for-5.html, retrieved 2026-10-02",
      "tolerance": 1e-12
    },
    {
      "given": {
        "find": "ach",
        "l": 6.096,
        "w": 4.572,
        "h": 3.048,
        "cfm": 300
      },
      "expect": {
        "changes": 6,
        "airflow": 300,
        "clear99": 46.05170185988092
      },
      "source": "hand calculation in content.mdx: 300 × 60 ÷ 3,000 = 6 ACH; ln(100) ÷ 6 × 60 = 46 minutes, as in CDC, Guidelines for Environmental Infection Control in Health-Care Facilities, Appendix B: Air (ACH = Q ÷ V; Table B.1: 6 ACH removes 99% in 46 minutes). https://www.cdc.gov/infection-control/hcp/environmental-control/appendix-b-air.html, retrieved 2026-10-02",
      "tolerance": 1e-12
    },
    {
      "given": {
        "find": "cfm",
        "l": 5,
        "w": 4,
        "h": 2.5,
        "ach": 12
      },
      "expect": {
        "m3h": 600,
        "airflow": 353.14666721488584,
        "ls": 166.66666666666666
      },
      "source": "hand calculation in content.mdx: 50 m³ × 12 = 600 m³/h = 353.15 CFM = 166.67 L/s; CDC, Guidelines for Environmental Infection Control in Health-Care Facilities, Appendix B: Air (ACH = Q ÷ V; Table B.1: 6 ACH removes 99% in 46 minutes). https://www.cdc.gov/infection-control/hcp/environmental-control/appendix-b-air.html, retrieved 2026-10-02",
      "tolerance": 1e-12
    }
  ],
  "sources": [
    "CDC NIOSH, Aim for 5 or More Air Changes per Hour (ACH = CFM × 60 ÷ (floor area × ceiling height); aim for 5 or more air changes per hour of clean air). https://www.cdc.gov/niosh/ventilation/prevention/Aim-for-5.html (retrieved 2026-10-02)",
    "CDC, Guidelines for Environmental Infection Control in Health-Care Facilities, Appendix B: Air (ACH = Q ÷ V with Q in ft³ per hour; removal time t = −ln(C₂ ÷ C₁) ÷ (Q ÷ V) × 60; Table B.1: 6 ACH removes 99% in 46 minutes; Table B.2 room minimums). https://www.cdc.gov/infection-control/hcp/environmental-control/appendix-b-air.html (retrieved 2026-10-02)"
  ],
  "related": [
    "btu",
    "cubic-feet",
    "square-footage"
  ],
  "changelog": []
}
