Data Sources and Methodology
Purpose of this page
This page explains where AirQuality.city data come from, how they are processed, and how the air-quality index is calculated.
Its purpose is to clearly distinguish between:
- measurements from AirQuality.city's own Sensorbox stations
- external official data
- weather data
- calculated values and interpretations produced by the website
Last updated: 23 July 2026.
Types of monitoring stations
AirQuality.city Sensorbox stations
The project's own stations generally use:
- an SDS011 sensor for PM2.5 and PM10 concentrations
- a BME280 sensor for temperature, relative humidity, and atmospheric pressure
- a Raspberry Pi or comparable controller to read, check, and transmit data
Measurements from the project's own stations are normally taken approximately every two to three minutes. Multiple readings are collected in each cycle, a basic transmission-integrity check is performed, and the cycle average is stored.
Sensorbox stations are not official regulatory stations and do not use the reference analysers required for official air-quality assessment. Their purpose is to monitor local trends, provide early indications of a possible issue, and improve spatial measurement coverage.
External official stations
The website displays publicly available data from national and local monitoring networks.
The main sources are:
- current measurements and station information available through public Croatian air-protection services, including the AŽO WFS service
- historical data available through the Croatian Air Quality Information System, ISZZ
- EEA Air Quality e-Reporting and Datahub, where used for metadata, verification, or supplementary data
- other sources clearly identified alongside a particular station or data item
Real-time or near-real-time data are not necessarily final or validated. The competent institution may later correct or invalidate them.
Weather data
Weather data may come from:
- AirQuality.city's own BME280 sensors
- meteorological sensors associated with official air-quality stations
- other publicly available sources clearly identified alongside the data
Weather data shown alongside an air-quality station may not have been measured at exactly the same location. Where a different location is used, this should be indicated in the station description or source label.
Timestamps and freshness
The website displays the time of the most recent available measurement or processing event.
Times are shown in the website's local time zone, normally Europe/Zagreb, unless stated otherwise.
Station status and freshness labels depend on the time elapsed since the last successful measurement. A temporary transmission outage does not necessarily mean that the monitoring instrument itself has failed.
A missing or unavailable value is not the same as a value of zero. Missing data are displayed as “no data”, “unavailable”, or an equivalent empty state, not as a concentration of 0 µg/m³.
Air Quality Index
Scale
AirQuality.city uses a 0 to 500 AQI scale based on the methodology of the U.S. Environmental Protection Agency, U.S. EPA.
The website's display categories use the following integer ranges:
| AQI | Category |
|---|---|
| 0-49 | Good |
| 50-99 | Moderate |
| 100-149 | Unhealthy for sensitive groups |
| 150-199 | Unhealthy |
| 200-299 | Very unhealthy |
| 300-500 | Hazardous |
A higher AQI value indicates a higher level of pollution and greater potential health concern.
A general explanation of the U.S. EPA scale is available on the U.S. EPA AirNow: AQI Basics page.
Pollutants included in the website's AQI
AirQuality.city calculates a separate index for:
- PM2.5
- PM10
The website's overall AQI is the higher of those two values:
overall AQI = max(PM2.5 AQI, PM10 AQI)
NO₂, O₃, SO₂, and CO values may be displayed where they are available from external official stations, but they do not affect the AirQuality.city overall AQI.
The website's overall AQI is therefore a particulate-matter indicator based on PM2.5 and PM10, not a complete index of every possible air pollutant.
Individual index calculation
A pollutant concentration is converted into AQI by linear interpolation between the applicable U.S. EPA concentration breakpoints:
I = ((I_high - I_low) / (C_high - C_low)) × (C - C_low) + I_low
Where:
Cis the measured or processed concentrationC_lowandC_highare the lower and upper concentration breakpoints for the applicable rangeI_lowandI_highare the lower and upper AQI bounds for that rangeIis the calculated AQI value
AirQuality.city applies the U.S. EPA PM2.5 and PM10 concentration breakpoints listed in the official U.S. EPA AQI Breakpoints table. The calculated value is rounded to an integer and assigned to the display ranges shown above.
Current display and official daily AQI
The AQI shown by AirQuality.city is calculated from the latest processed PM2.5 and PM10 values available to the website, unless a different averaging period is explicitly stated for a station.
It is a near-current indicator and is not necessarily the same as an official daily AQI. Official particulate-matter methodologies commonly use 24-hour averages or specialised methods such as NowCast.
Because averaging periods, breakpoints, validation rules, and included pollutants may differ, the AirQuality.city result may differ from indices shown by Croatian or European official services.
Processing of AirQuality.city measurements
For its own stations, the website may perform:
- record and format validation
- rejection of incomplete or technically invalid messages
- averaging of multiple readings within a measurement cycle
- stale or unavailable station detection
- correction and validation rules documented for the relevant sensor type
Automated processing does not turn a lower-cost sensor into a regulatory reference instrument. The results should be treated as indicative.
Limitations of lower-cost sensors
PM readings may be affected by:
- high relative humidity and condensation
- temperature and airflow
- sensor position, height, and shielding
- proximity to chimneys, roads, construction sites, or other local sources
- contamination and sensor ageing
- differences between individual units of the same model
- maintenance and calibration
A short local spike may not represent conditions across a wider area. A single station cannot describe an entire city.
Official and preliminary data
Official-station data transmitted in real time may be unvalidated. Final validated reports issued by competent institutions should be used for regulatory, legal, professional, and long-term analysis.
AirQuality.city is not a source of an official compliance assessment against statutory air-quality limit or target values.
Sources, licences, and attribution
We aim to identify the source alongside each external station or dataset.
Data remain subject to the terms and licences of the original provider. Reusing data from the website does not remove the user's obligation to check and comply with the terms of the original source.
Map data are used with the attribution: © OpenStreetMap contributors.
Corrections and problem reports
If you notice:
- an incorrect source
- an incorrect location
- an obviously impossible value
- a stale station
- a wrongly identified pollutant
- a mismatch between the source and the website display
send the station link, measurement time, and a description of the issue through the contact page or to contact@airquality.city.
We may correct the data, flag them as unreliable, or temporarily remove them from display while they are being reviewed.