Skip to content

Air at the Veles 2 Gradinka station

Veles, North Macedonia

Network: Ministry of Environment and Physical Planning · Station code: MK0040A

This year, up to yesterday (October 6)

at least

36 days

with a daily average of particulate matter PM10 above the EU limit of 50 µg/m³.

35 days are allowed in the whole year.

The number allowed for the whole year has been exceeded.

at least 1 day more than allowed

In 2025: 77 days above the limit, 35 allowed.

Worst day: January 15, 2026, PM10 120 µg/m³ as a daily average, 2.4 times the limit.

Daily average for 203 of 279 days · data for 2026 not yet finally verified · Yardstick: EU limits (Directive 2008/50/EC)

All figures by year and month

Moderate

Air now · Measured at 22:00

Latest values

Latest value: 22:00

Readings
PollutantValueLevel
PM1082.5 µg/m³Moderate
O₃8.8 µg/m³Good
SO₂7 µg/m³Good

How the air is changing

Over the last seven days there was more PM10, PM2.5, and O₃ in the air than the week before.

  • PM10: average 28.5 µg/m³, week before 24.1 µg/m³
  • PM2.5: average 9.5 µg/m³, week before 7.8 µg/m³
  • NO₂: too few readings to compare
  • O₃: average 35.6 µg/m³, week before 29.6 µg/m³
  • SO₂: average 3.7 µg/m³, week before 3 µg/m³

There are not enough readings to compare with the month before.

  • PM10: too few readings to compare
  • PM2.5: too few readings to compare
  • NO₂: too few readings to compare
  • O₃: too few readings to compare
  • SO₂: too few readings to compare

Show

Particulate matter PM10

82.5

Nowµg/m³

Measured at 22:00

31.8

Last 24 hoursµg/m³

measured in 92 % of hours · provisional

28.5

Last 7 daysµg/m³

measured in 100 % of hours · provisional

25.8

Last 30 daysµg/m³

measured in 100 % of hours · provisional

too few readings

Last 12 months

measured in 81 % of hours · 1 month with too few readings · provisional

Days in 2023: PM10, daily average above 50 µg/m³

55 days above the limit. 2 days without any reading from the station.

1102031JanJan 3: 57 µg/m³, above the limitJan 4: 73 µg/m³, above the limitJan 5: 115 µg/m³, above the limitJan 6: 86 µg/m³, above the limitJan 7: 81 µg/m³, above the limitJan 8: 93 µg/m³, above the limitJan 9: 52 µg/m³, above the limitJan 13: 74 µg/m³, above the limitJan 14: 73 µg/m³, above the limitJan 15: 79 µg/m³, above the limitJan 18: 59 µg/m³, above the limitJan 19: 80 µg/m³, above the limitJan 20: 54 µg/m³, above the limitJan 21: 60 µg/m³, above the limitJan 22: 99 µg/m³, above the limitJan 30: 99 µg/m³, above the limitJan 31: 54 µg/m³, above the limitFebMarAprMayMay 16: 55 µg/m³, above the limitJunJulJul 8: no data from the stationJul 9: no data from the stationJul 22: 56 µg/m³, above the limitAugSepSep 23: 53 µg/m³, above the limitSep 24: 55 µg/m³, above the limitOctOct 5: 53 µg/m³, above the limitOct 11: 54 µg/m³, above the limitOct 18: 54 µg/m³, above the limitOct 23: 66 µg/m³, above the limitOct 24: 53 µg/m³, above the limitOct 25: 59 µg/m³, above the limitNovNov 9: 59 µg/m³, above the limitNov 13: 53 µg/m³, above the limitNov 14: 63 µg/m³, above the limitNov 20: 53 µg/m³, above the limitNov 21: 83 µg/m³, above the limitNov 30: 62 µg/m³, above the limitDecDec 5: 75 µg/m³, above the limitDec 6: 55 µg/m³, above the limitDec 9: 60 µg/m³, above the limitDec 10: 78 µg/m³, above the limitDec 11: 94 µg/m³, above the limitDec 12: 94 µg/m³, above the limitDec 13: 70 µg/m³, above the limitDec 17: 54 µg/m³, above the limitDec 18: 111 µg/m³, above the limitDec 19: 115 µg/m³, above the limitDec 20: 99 µg/m³, above the limitDec 21: 81 µg/m³, above the limitDec 22: 60 µg/m³, above the limitDec 23: 70 µg/m³, above the limitDec 24: 73 µg/m³, above the limitDec 25: 92 µg/m³, above the limitDec 26: 85 µg/m³, above the limitDec 27: 53 µg/m³, above the limitDec 28: 75 µg/m³, above the limitDec 29: 86 µg/m³, above the limitDec 30: 137 µg/m³, above the limitDec 31: 125 µg/m³, above the limit
  • above the limit
  • below the limit
  • too few readings for the day
  • no PM10 data in the EEA database
  • no data from the station
Days above the limit with values (55)
  1. Jan 3 57
  2. Jan 4 73
  3. Jan 5 115
  4. Jan 6 86
  5. Jan 7 81
  6. Jan 8 93
  7. Jan 9 52
  8. Jan 13 74
  9. Jan 14 73
  10. Jan 15 79
  11. Jan 18 59
  12. Jan 19 80
  13. Jan 20 54
  14. Jan 21 60
  15. Jan 22 99
  16. Jan 30 99
  17. Jan 31 54
  18. May 16 55
  19. Jul 22 56
  20. Sep 23 53
  21. Sep 24 55
  22. Oct 5 53
  23. Oct 11 54
  24. Oct 18 54
  25. Oct 23 66
  26. Oct 24 53
  27. Oct 25 59
  28. Nov 9 59
  29. Nov 13 53
  30. Nov 14 63
  31. Nov 20 53
  32. Nov 21 83
  33. Nov 30 62
  34. Dec 5 75
  35. Dec 6 55
  36. Dec 9 60
  37. Dec 10 78
  38. Dec 11 94
  39. Dec 12 94
  40. Dec 13 70
  41. Dec 17 54
  42. Dec 18 111
  43. Dec 19 115
  44. Dec 20 99
  45. Dec 21 81
  46. Dec 22 60
  47. Dec 23 70
  48. Dec 24 73
  49. Dec 25 92
  50. Dec 26 85
  51. Dec 27 53
  52. Dec 28 75
  53. Dec 29 86
  54. Dec 30 137
  55. Dec 31 125

Values in µg/m³, limit 50 µg/m³.

Months of 2023

MonthDays above 50Highest dayNo readings
January17 above the number allowed1150
February00
March0
April0
May1 above the number allowed550
June0460
July1 above the number allowed562
August0350
September2 above the number allowed550
October6 above the number allowed660
November6 above the number allowed830
December22 above the number allowed1370

Values in µg/m³. ■ marks a month with at least one day above the limit; the number allowed applies to the whole year. “No readings”: days on which not a single reading came from the station.

Last 7 days, every hour: PM10 in µg/m³highest 88 µg/m³, latest 36 µg/m³ (21:00)050100ThuFriSatSunMonTueWedhighest 88latest 36 (21:00)
measuredmodel estimate, not counted
Last 7 days, every hour: PM10 in µg/m³
Values as a table
Hour toµg/m³Note
Wednesday, 10/7
22:0021model estimate, not counted
21:0036.2
20:0026.3
19:0021.7
18:0016.9
17:0019.5
16:0019.8
15:0029
14:0051.2
13:0032.5
12:0027.9
11:0039
10:0071.9
09:0061.9
08:0036.5
07:0018.6
06:0016.4
05:0012.2
04:0024.9
03:0022.4
02:0034.8
01:0040.5
Tuesday, 10/6
00:0040.1
23:0041.5
22:0063
21:0050.6
20:0026.7
19:0020.3
18:0031
17:0032.5
16:0030.6
15:0037.6
14:0039.2
13:0040.5
12:0035.8
11:0029.1
10:0068.3
09:0057.7
08:0031
07:0015.2
06:0010.6
05:0014.2
04:009.3
03:0019.7
02:0027.7
01:0028.1
Monday, 10/5
00:0022.3
23:0042.9
22:0044.1
21:0053.6
20:008.7
19:0027.9
18:0021.3
17:0017.4
16:0027.9
15:0061.7
14:0036
13:0039.3
12:0036.5
11:0030.8
10:0088.1
09:0083.9
08:0047.2
07:0035.2
06:0012
05:0017.2
04:0018
03:0012.3
02:009.7
01:0010.4
Sunday, 10/4
00:0023.4
23:0029.1
22:0040.6
21:0069.4
20:0021.1
19:0013.3
18:0015.5
17:0010.6
16:0015.4
15:0013
14:0015.5
13:0023.1
12:0037.4
11:0022.1
10:0018.3
09:0017
08:0012
07:007.3
06:009.3
05:0010.7
04:0015.6
03:0022.3
02:0025.8
01:0032.8
Saturday, 10/3
00:0025.8
23:0034.1
22:0049.6
21:0047.3
20:0018.5
19:0015.9
18:0022.4
17:0023.8
16:0017.2
15:0021.7
14:0022
13:0022.1
12:0032.9
11:0045.3
10:0059.4
09:0037.6
08:0029
07:0022.5
06:0019.2
05:0019.1
04:0023.1
03:0022.2
02:0020.3
01:0014.3
Friday, 10/2
00:0014.5
23:0015.5
22:0013.8
21:0022
20:0018.2
19:0017.3
18:0013.7
17:0019.1
16:0020.1
15:0019.5
14:0023.6
13:0021.2
12:0032.2
11:0044.9
10:0077.9
09:0052
08:0028.4
07:0018.6
06:007.9
05:0012.1
04:0013.8
03:0017.4
02:0038.4
01:0045.6
Thursday, 10/1
00:0035.4
23:0053.4
22:0052
21:0039.2
20:0025.7
19:0015.3
18:0015.8
17:0015.2
16:0012.8
15:0021.4
14:0014.2
13:0016.8
12:0049.6
11:0047.6
10:0074.8
09:0055.2
08:0029.4
07:0030.6
06:0010.5
05:0016
04:0020
03:0032.6
02:0028.7
01:0045
Last 30 days, daily average: PM10 in µg/m³highest 34 µg/m³, latest 33 µg/m³02040609/99/169/239/30latest 33
EU daily limit, 50 µg/m³
Last 30 days, daily average: PM10 in µg/m³
Values as a table
Dayµg/m³Note
Tue, 10/633.3provisional
Mon, 10/533.5provisional
Sun, 10/421.7provisional
Sat, 10/327.7provisional
Fri, 10/225.3provisional
Thu, 10/131.5provisional
Wed, 9/3026.7provisional
Tue, 9/2930.6provisional
Mon, 9/2833.7provisional
Sun, 9/2714.6provisional
Sat, 9/2620.4provisional
Fri, 9/2528.6provisional
Thu, 9/2423.4provisional
Wed, 9/2317.8provisional
Tue, 9/2219.7provisional
Mon, 9/2126.4provisional
Sun, 9/2021.6provisional
Sat, 9/1923.5provisional
Fri, 9/1828.1provisional
Thu, 9/1724.9provisional
Wed, 9/1621.4provisional
Tue, 9/1524.4provisional
Mon, 9/1424.8provisional
Sun, 9/1316.9provisional
Sat, 9/1224.9provisional
Fri, 9/1130.2provisional
Thu, 9/1031.4provisional
Wed, 9/930.7provisional
Tue, 9/829.4provisional
Mon, 9/726.6provisional
Last 12 months, monthly average: PM10 in µg/m³highest 75 µg/m³, latest 29 µg/m³0255075DecFebAprJunAugOcthighest 75latest 29
Last 12 monthsthis month so fara year earlierEU annual limit, 40 µg/m³month with days without data from the station
Last 12 months, monthly average: PM10 in µg/m³
Values as a table
Monthµg/m³a year earlierNote
October 2026 so far28.8too few readingsmeasured in 100 % of hours · provisional · year before: same days
September 202625.730.5measured in 99 % of hours · provisional
August 2026too few readings31.2measured in 55 % of hours · provisional · 13 days without data from the station
July 2026too few readings32.5measured in 1 % of hours · provisional · 30 days without data from the station
June 2026too few readings35.1measured in 50 % of hours · provisional · 11 days without data from the station
May 202628.826measured in 90 % of hours · provisional · 2 days without data from the station
April 202632.324.9measured in 95 % of hours · provisional
March 202642.134.5measured in 100 % of hours · provisional
February 202647.951.1measured in 92 % of hours · provisional · 1 day without data from the station
January 202657.363measured in 90 % of hours · provisional
December 202574.7too few readingsmeasured in 100 % of hours · verified
November 202547.7too few readingsmeasured in 100 % of hours · verified

PM10 by year

Yardstick: EU limits (Directive 2008/50/EC)

Measure2026*20252024
Days above 50 µg/m³ (allowed 35)≥ 36 above the number allowed77 above the number allowed80 above the number allowed
Annual average, µg/m³ (EU limit 40)too few41.3 above the number allowed42.2 above the number allowed
Highest daily average, µg/m³120January 15138December 17133January 6
Highest hourly value, µg/m³376February 3305December 10447January 6
Hours measured75 %96 %90 %
Days without any reading from the station571033

* 2026 up to October 6; the average since the start of the year is not yet an annual average.

The monitoring networks have not yet finally verified this year’s data. The EEA publishes verified values once a year.

≥ means at least: more than a tenth of the days or hours are missing, so the real number may be higher.

Unverified hourly values of particulate matter from 975 µg/m³ up, and single spikes from 500 µg/m³ up between low values, count as missing. In the verified data for BiH from 2023 to 2025 no hour was above 600 µg/m³.

■ and a figure in red: more than is allowed for the whole year.

The column for 2023 is shown on wider screens.

Compared with the new EU rules and the WHO recommendation

This is not the yardstick for the verdict above, only a comparison. From 2030 the EU tightens its limits (Directive (EU) 2024/2881), and since 2021 the World Health Organization has recommended even lower values.

  • EU from 2030: daily 45 µg/m³, 18 days allowed. In 2023 there were 69 such days.
  • WHO 2021: daily 45 µg/m³, at most three to four days a year. In 2023 there were 69 such days.

Sources: Directive (EU) 2024/2881, Annex I; WHO global air quality guidelines 2021, table 0.1. Checked against the texts on 7 October 2026.

The worst days of 2023

DayAverageTimes the limit
Dec 30, 20231372.7 ×
Dec 31, 20231252.5 ×
Jan 5, 20231152.3 ×
Dec 19, 20231152.3 ×
Dec 18, 20231112.2 ×

Daily average in µg/m³, daily limit 50 µg/m³. Days with the same unverified value over many hours are not on this list.

Outages in the last 12 months

Every period of at least 24 hours in which no reading arrived from this station.

Days without a reading: 64

6 outages, 1,527 hours in total in the last 12 months.

Timeline of outages from October 7, 2025 to today

FromToDuration
Jul 1, 2026 08:00Aug 14, 2026 14:0044 days
Jun 22, 2026 15:00Jun 29, 2026 10:007 days
Jun 16, 2026 08:00Jun 18, 2026 08:002 days
May 29, 2026 03:00Jun 5, 2026 10:007 days
Apr 20, 2026 12:00Apr 21, 2026 14:0026 hours
Feb 22, 2026 04:00Feb 24, 2026 09:002 days

Calculated from the hourly values the EEA publishes. If late values arrive afterwards, an outage gets shorter or disappears.

Where the data comes from

Measured by Ministry of Environment and Physical Planning. We take the values from the European Environment Agency (EEA) under the CC BY 4.0 licence.

Values marked provisional have not been fully checked by the network yet. The EEA publishes verified data for the previous year once a year, usually by the end of September.

An hourly value is the average of one hour. We show the end of the hour: the value to 18:00 was measured from 17:00 to 18:00.

A day runs from midnight to midnight local time.

We only show an average when at least three out of four hours in the period have a reading. The EU air quality directive requires this for daily averages, and we apply the same rule to longer periods. We compare an annual average with the EU limit only once 90 % of hours are measured, as the directive requires. For 12 months and for a year we ask for more: if less than 90 % of hours are measured, every full calendar month needs readings for at least half of its hours. Otherwise a whole season could be missing from the average, such as summer, when ozone is highest.

We do not call a difference of up to 10 % a change, nor one of up to 1 µg/m³ at low levels, because weather and measurement uncertainty alone cause differences that size.

When a station sends no reading, the EEA sometimes fills the hour with a model estimate. We draw those hours dashed and leave them out of every average.

The EU limits come from Directive 2008/50/EC. Here they serve as a yardstick for comparison. When more than a tenth of the days or hours are missing, the number of exceedances can only be higher, so we write “at least” in front of it.

How we measure

samoEKO is a brand of samoLabs, Juelich.