# Air Changes per Hour Calculator

> Computes the air changes per hour of a room from its volume (or dimensions) and the ventilation airflow in m³/h, L/s or CFM, converts the airflow between units, and gives the airflow needed to reach a target ACH, with typical design values from ASHRAE standards.

- Calculator id: `air-changes-per-hour` · Category: Home Energy & Electrical (`energy`) · Tool name: `calculate_air_changes_per_hour`
- Canonical page: https://tttkmbb.com/energy/air-changes-per-hour · This document: https://tttkmbb.com/energy/air-changes-per-hour.md · JSON definition: https://tttkmbb.com/energy/air-changes-per-hour.json

## Purpose

Computes the air changes per hour of a room from its volume (or dimensions) and the ventilation airflow in m³/h, L/s or CFM, converts the airflow between units, and gives the airflow needed to reach a target ACH, with typical design values from ASHRAE standards.

**Use when:** You are checking whether a fan, HRV/ERV, air purifier or HVAC supply provides enough air changes for a room, or sizing the airflow for a target ACH.

**Do not use when:** You need outdoor-air rates per person or per floor area (ASHRAE 62.1 tables), infiltration from a blower-door test, or the heat lost with ventilation air (use heat-loss for conduction only).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `room_volume_m3` | number | m³ | optional | Room volume in cubic metres; alternatively give room_length_m, room_width_m and room_height_m (which take precedence when all three are given). (> 0, max 10000000) |
| `room_length_m` | number | m | optional | Optional room length in metres (used with width and height instead of room_volume_m3). (> 0, max 1000) |
| `room_width_m` | number | m | optional | Optional room width in metres. (> 0, max 1000) |
| `room_height_m` | number | m | optional | Optional room height in metres. (> 0, max 100) |
| `airflow_value` | number |  | required | Ventilation or fan airflow in the unit given by airflow_unit. (min 0, max 100000000) |
| `airflow_unit` | enum: m3_per_h \| l_per_s \| cfm |  | required | Unit of airflow_value (1 CFM = 1.699 m³/h, 1 L/s = 3.6 m³/h). |
| `target_ach` | number | 1/h | optional | Optional target air changes per hour, to report the airflow needed to reach it. (> 0, max 200) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `ach` | number | 1/h | airflow_m3_per_h / room_volume_m3. |
| `room_volume_used_m3` | number | m³ | Volume used (given, or length × width × height). |
| `airflow_m3_per_h` | number | m³/h | Airflow converted to cubic metres per hour. |
| `airflow_l_per_s` | number | L/s | airflow_m3_per_h / 3.6. |
| `airflow_cfm` | number | CFM | airflow_m3_per_h / 1.699. |
| `required_airflow_for_target_m3_per_h` | number | m³/h | target_ach × room_volume_m3; only when target_ach is given. |
| `required_airflow_for_target_cfm` | number | CFM | required_airflow_for_target_m3_per_h / 1.699; only when target_ach is given. |
| `guidance` | string |  | Typical ACH design values from ASHRAE standards and where the result falls. |

## Formula

`airflow_m3_per_h = airflow_value × (1 for m³/h, 3.6 for L/s, 1.699 for CFM); ach = airflow_m3_per_h / room_volume_m3; airflow_cfm = airflow_m3_per_h / 1.699; airflow_l_per_s = airflow_m3_per_h / 3.6; required_airflow_for_target_m3_per_h = target_ach × room_volume_m3`

ACH = volumetric airflow / room volume, assuming fully mixed air. Reference values: ASHRAE 62.2 (residential) historically used 0.35 ACH of outdoor air as a minimum, offices typically run 4–6 total ACH, and ASHRAE 170 requires 6–12 ACH for hospital patient and treatment rooms; ASHRAE 62.1 itself specifies outdoor-air rates per person and per m², not ACH.

## Data Sources

- Wikipedia – Air changes per hour — https://en.wikipedia.org/wiki/Air_changes_per_hour (reference, retrieved 2026-09-24)
- ANSI/ASHRAE Standards 62.1 and 62.2 – Ventilation for Acceptable Indoor Air Quality — https://www.ashrae.org/technical-resources/bookstore/standards-62-1-62-2 (standard, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/air-changes-per-hour?airflow_value=…&airflow_unit=…`
- `POST https://tttkmbb.com/api/v1/calculate/air-changes-per-hour` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/air-changes-per-hour · OpenAPI operationId `calculate_air_changes_per_hour` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "air-changes-per-hour", "inputs": {…}}`

## Example

- 50 m³ room, 300 m³/h, target 8 ACH: inputs `{"room_volume_m3":50,"airflow_value":300,"airflow_unit":"m3_per_h","target_ach":8}` → `{"ach":6,"airflow_m3_per_h":300,"airflow_cfm":176.6,"airflow_l_per_s":83.3,"required_airflow_for_target_m3_per_h":400,"required_airflow_for_target_cfm":235.4}`
- 6 × 5 × 2.7 m room with a 500 CFM fan: inputs `{"room_length_m":6,"room_width_m":5,"room_height_m":2.7,"airflow_value":500,"airflow_unit":"cfm"}` → `{"room_volume_used_m3":81,"airflow_m3_per_h":849.5,"ach":10.49}`

```
GET https://tttkmbb.com/api/v1/calculate/air-changes-per-hour?room_volume_m3=50&airflow_value=300&airflow_unit=m3_per_h&target_ach=8
```

## Limitations

You need outdoor-air rates per person or per floor area (ASHRAE 62.1 tables), infiltration from a blower-door test, or the heat lost with ventilation air (use heat-loss for conduction only). ACH = volumetric airflow / room volume, assuming fully mixed air. Reference values: ASHRAE 62.2 (residential) historically used 0.35 ACH of outdoor air as a minimum, offices typically run 4–6 total ACH, and ASHRAE 170 requires 6–12 ACH for hospital patient and treatment rooms; ASHRAE 62.1 itself specifies outdoor-air rates per person and per m², not ACH. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**How many air changes does a room need?**

Homes: about 0.35 ACH of outdoor air as a minimum; offices 4–6 ACH of total supply air; hospital rooms 6–12 ACH; for airborne-infection risk reduction 4–6 ACH of clean (outdoor or HEPA-filtered) air is often recommended.

**Does an air purifier's CADR count as airflow?**

Yes for clean-air changes: CADR (in CFM or m³/h) divided by the room volume gives the equivalent clean air changes per hour, though it does not bring in outdoor air.

**What is the difference between L/s, m³/h and CFM?**

All are volumetric flow rates: 1 L/s = 3.6 m³/h = 2.119 CFM, and 1 CFM = 1.699 m³/h = 0.472 L/s.

## Related

- [HVAC BTU Sizing Calculator](https://tttkmbb.com/energy/hvac-btu-sizing.md) — Heating and cooling capacity of the same room.
- [Heat Loss Calculator](https://tttkmbb.com/energy/heat-loss.md) — Conductive losses through the room envelope.
- [Volume Converter](https://tttkmbb.com/conversion/volume.md) — Convert the room volume between m³ and ft³.
