air quality root cause analysis

A Software Tester’s Guide to Fixing a System That’s Killing Its Users

As a software tester, I have learned one crucial thing: when a system isn’t working correctly, the biggest problem is almost never the malfunction itself. The real problem is that we haven’t properly defined the question we are trying to solve.

In testing, when a critical bug occurs in production, we don’t start from assumptions or offer quick fixes. First, we gather data, observe trends, and ask ourselves: what is the system actually telling us?

In December 2025, Banja Luka recorded an AQI index of 418 – the “hazardous” category, with a PM2.5 concentration of 476 µg/m³, which is more than 30 times higher than WHO recommendations. This is not an exception nor an incident limited to a single day. Viewed from a tester’s perspective, this is a clear trend of system degradation: an AQI of around 180 in 2021, 286 in November 2024, and a record 418 in December 2025. This is not a coincidence; it is a repeatable scenario.

In software testing, we don’t call such a pattern a “problem of the day.” We call it a critical, systemic defect. And then we perform root cause analysis. We ask the question “Why?” over and over again — not once or twice, but as many times as needed to get from the symptoms to the cause.

Only when we understand the cause does the conversation about solutions make sense.

That is why the goal of this article is not to offer quick solutions or popular measures. The goal is to define a set of key questions that decision-makers — at the level of the City of Banja Luka and the Republic of Srpska — must ask themselves honestly if they want to understand what is truly happening. Without those answers, any “solution” will be just a temporary patch, while the underlying systemic problem continues.

Let’s approach air pollution as we would approach a critical bug in a system that directly endangers users’ lives. Because that is precisely what it is.

What We Know: Context of the Problem (Bug Description)

Before we start with the questions, let’s set the basics, what exactly happened and what the data shows:

Symptoms:

  • 11.12.2025: AQI 418 (category “hazardous”), PM2.5: 476 µg/m³
  • Entire December: consistently high concentrations of PM10 and PM2.5
  • Trend: deterioration over three years, not improvement
  • Comparative context: Banja Luka often worse than Tuzla, Sarajevo, even first in Europe!

Suspected Causes (according to available data):

  • 95% of households use solid fuel for heating (coal, wood…)
  • Vehicle fleet: 76.8% diesel, average age 17 years, 38% of vehicles older than 23 years
  • City’s topographic bowl position: “bowl” effect with temperature inversion up to 15 days
  • Unplanned construction of residential buildings
  • Average salary: 1,559 BAM (covers only 55% of the consumer basket)
  • Coal the cheapest option: ~940-1,140 BAM per season vs 1,960-2,450 BAM for pellets

Institutional Response:

  • Banja Luka has no emergency measures plan (Sarajevo has one since 2023.)
  • No subsidies for switching to cleaner heating (Sarajevo offers up to 7,000 BAM)
  • Air quality monitoring interrupted/partially suspended due to budget
  • Local Environmental Action Plan (LEAP) adopted in 2023, but without more concrete urgent measures

Now that we know what we see on the surface, it’s time to go deeper.

I: Questions for the City of Banja Luka

A. Monitoring and Transparency

  1. Why was air quality monitoring interrupted or partially suspended due to budgetary reasons?
  2. How much exactly does it cost annually to maintain air quality monitoring stations and what percentage is that of the total city budget?
  3. Are there data on how many citizens accessed air quality information daily before the monitoring interruption?
  4. Why are air quality data delayed in publication and what is the exact workflow from measurement to publication?
  5. Does the City have a plan to establish real-time monitoring with publicly available data?
  6. Who specifically makes the decision about which information will be published to citizens and when?
  7. Why do citizens have to use private platforms (PurpleAir, IQAir, Ekoakcija) to find out the air quality in their own city?

B. Emergency Measures Plan

  1. Why does Banja Luka not have an Emergency Measures Plan when the AQI index exceeds certain thresholds?
  2. Sarajevo has had such a plan since 2023, has anyone from the City Administration contacted Sarajevo to see how it works?
  3. What are the thresholds (AQI numbers) at which certain measures should be activated (free public transport, education, traffic restrictions)?
  4. Who is responsible for defining those thresholds, the City Assembly, the Mayor, an expert working group?
  5. If there is no plan, did at least someone try to write it and what stopped them?
  6. How much would it cost to introduce free public transport for all citizens during critical pollution days?
  7. Is there an estimate of how much that would reduce the number of vehicles on the streets?

C. Subsidies and Economic Issues

  1. Why does Banja Luka not offer subsidies to citizens for replacing old boilers and stoves?
  2. Sarajevo offers up to 7,000 BAM. What are the specific reasons why Banja Luka does not do this?
  3. How much would a subsidy program cost that would help 1,000 households annually to switch to cleaner heating?
  4. How much would a subsidy program cost for all households using individual stoves (estimated 50,000+)?
  5. Has the City at least analyzed how much “doing nothing” costs in terms of citizens’ health expenses?
  6. Why is central heating not extended to a larger part of the city and what are the specific technical or financial obstacles?
  7. How many households in Banja Luka currently have access to central heating?
  8. What is the plan to expand the heating plant’s capacity in the next 5 years?

D. Traffic

  1. How many vehicles are exactly registered in Banja Luka (not an estimate, but real data from the Ministry of Interior)?
  2. Does the City have data on the number of vehicles entering the city daily and how many of them are in transit?
  3. Why are there no incentives for using electric vehicles or public transport?
  4. Has anyone analyzed what effect restricting entry into the city for vehicles older than 15 years during critical days would have?
  5. How much would it cost to expand the public transport network and increase the frequency of lines?
  6. Why are there not even symbolic incentives (free parking, registration discounts) for green vehicles?

E. Industrial Facilities

  1. How many industrial facilities in Banja Luka report emissions to the polluters register and does such a register exist?
  2. Data shows that only 7% of ~400 facilities report, why is that percentage so small?
  3. Who controls whether concrete plants, asphalt bases (e.g., Razboj), construction sites comply with emission standards?
  4. How often are inspection checks conducted and how many fines for air pollution were issued in 2024 and 2025?
  5. Is there a list of all active construction sites and their planned work regime during winter months?

F. Local Environmental Action Plan (LEAP)

  1. The Local Environmental Action Plan (LEAP) was adopted in August 2023. What exactly has been done since then?
  2. What are the specific KPIs and goals of that plan and have they been achieved?
  3. Why does LEAP not include emergency intervention measures and financial incentives?
  4. Who is responsible for implementing LEAP and how often do they report on progress?
  5. Did the plan foresee such an escalation of the problem or was it underestimated how quickly the situation would deteriorate?

II: Questions for the Ministry of Spatial Planning, Construction and Ecology of the Republic of Srpska

A. Legal Framework

  1. What are the specific obligations of the Republic in accordance with EU Directive 2008/50/EC on air quality?
  2. New EU standards require a PM2.5 limit of 10 µg/m³ by 2030. Does the Republic have a plan on how to achieve this?
  3. What penalties or sanctions exist for cities that constantly exceed permissible limits?
  4. Why do these sanctions obviously not work as motivation for action?

B. Financing and Budget

  1. How much money has the Republic allocated for air quality programs in the last three years?
  2. How much of that budget went specifically to Banja Luka?
  3. Why is there no systematic subsidy program for replacing individual heating systems at the level of the entire Republic?
  4. What would be the necessary budget for such a program if it covered, say, 50,000 households in the Republic?
  5. Has the Government considered international loans or EU funds to finance such programs?

C. Cooperation with International Organizations

  1. The Republic is in contact with the World Bank regarding digitization. Have air quality topics been considered?
  2. Has the Republic applied for any EU funds intended for combating air pollution?
  3. What are the reasons for not using the experiences of cities in the region – Ljubljana (Eko Fund), Belgrade or Sarajevo?

D. Studies and Research

  1. Does an updated IMPAQ study exist that quantifies the exact sources of pollution in Banja Luka?
  2. If not, why hasn’t it been commissioned given that the problem has been known for years?
  3. How much would such research cost and how much time would it take to complete?
  4. Why are there no studies linking air pollution with health statistics in the Republic?

E. Traffic and Energy

  1. What is the plan for modernizing the vehicle fleet in the Republic? Are there incentives for replacing old vehicles?
  2. Why hasn’t stricter vehicle technical inspection or a registration ban for vehicles older than 20 years been introduced?
  3. What is the plan for the gasification of Banja Luka and when is its realization expected?
  4. Why are there no incentives for heat pumps or solar panels for heating?

III: Questions for the Republic Hydrometeorological Institute (RHMZ RS)

  1. How many air quality monitoring stations are currently functional in Banja Luka?
  2. How often are measurements taken and why is there a delay in publishing data?
  3. Does RHMZ issue public warnings to citizens when critical pollution levels are expected?
  4. If not, why not and what is missing to establish this?
  5. Does RHMZ cooperate with the City on defining emergency measures that would be activated based on forecasts?
  6. Exactly how many days of temperature inversion were there in December 2025 compared to 2024 and 2023?
  7. Are there historical data on the movement of inversion and pollution that could help in planning?

IV: Questions for the University Clinical Center and Health Institutions

  1. How many patients with respiratory problems were admitted to the UKC Banja Luka during December 2025?
  2. How does that compare to December 2024 and December 2023?
  3. Is there statistics on the number of acute exacerbations in patients with COPD and asthma?
  4. Have doctors noticed an increase in the number of children with respiratory infections?
  5. How many hospitalizations were directly linked to complications from air pollution?
  6. Why are these statistics not publicly available and regularly published?
  7. Is there an estimate of how much the health system costs for treating diseases caused by air pollution?
  8. Have health institutions requested from city and republic authorities to take emergency measures?

V: Questions for the Ministry of Health and Social Protection

A. Public Health and Monitoring

  1. Does the Ministry systematically monitor the health consequences of air pollution in the Republic?
  2. Is there a system for collecting data on the number of respiratory diseases during winter months?
  3. Why are these statistics not publicly available and regularly published monthly or quarterly?
  4. Does the Ministry issue public health warnings when air quality reaches dangerous levels?
  5. If it does not issue them, why not and who is responsible for that communication to citizens?
  6. Is there a cooperation protocol between the Ministry of Health and RHMZ for data exchange and early warning?

B. Health Statistics and Estimates

  1. How many people in the Republic die annually from diseases directly related to air pollution?
  2. Is there an estimate of how many cases of COPD, asthma, and cardiovascular diseases are caused or exacerbated by pollution?
  3. What percentage of hospitalizations in winter months are directly related to respiratory problems?
  4. How many children in the Republic have diagnosed asthma and is that number increasing?
  5. Does the Ministry monitor the increase in allergic reactions and chronic respiratory problems in the population?
  6. Why is there no public database where citizens could see health statistics by region?

C. Studies and Research

  1. Has the Ministry commissioned or financed any study on the impact of air pollution on citizens’ health in Banja Luka?
  2. If not, why not, given that the problem has lasted for years?
  3. How much would a comprehensive health study mapping the link between the AQI index and the number of hospitalizations cost?
  4. Does the Ministry cooperate with international organizations (WHO, EEA) on mapping health risks?
  5. Are there comparative studies between the Republic and other regions with similar problems?

D. Preventive Measures and Campaigns

  1. What specific preventive campaigns has the Ministry launched to educate citizens about the risks of air pollution?
  2. Are general practitioners trained to recognize symptoms that may be related to pollution and to advise patients?
  3. Are there protocols for protecting the most vulnerable groups (children, the elderly, chronic patients, pregnant women)?
  4. Why are there no free preventive check-ups for residents of the most endangered areas?
  5. Does the Ministry plan to distribute masks or filters for the most vulnerable populations during critical days?

E. Coordination with Other Institutions

  1. Who is responsible for coordination between the Ministry of Health, the Ministry of Ecology, and local authorities?
  2. Are there regular meetings and joint action plans?
  3. Why has the Ministry of Health not been louder in its demands to the Government of the Republic of Srpska for emergency measures?
  4. Has the Ministry proposed that air pollution be declared a public health problem?

F. Budget and Costs

  1. How much money from the Republic’s health budget goes annually to treating diseases caused by air pollution?
  2. Is there an estimate of how much money would be saved if the pollution problem were solved?
  3. Why are these figures not publicly available and not used as an argument for investing in clean air?
  4. How much would it cost to equip all health centers in Banja Luka with sprays and medicines for acute respiratory problems?

G. Long-term Strategy

  1. Does the Ministry of Health have a long-term strategy for dealing with the health consequences of climate change and pollution?
  2. What is the plan to increase the health system’s capacity if the problem continues to worsen?
  3. Are there plans for specialized clinics or departments for treating pollution-related diseases?

VI: Questions for Educational Institutions

  1. Do schools and kindergartens in Banja Luka have HEPA filters in classrooms?
  2. If not, why not and how much would it cost to equip all schools with such filters?
  3. Are there protocols on when classes or physical education should be suspended due to air pollution?
  4. Are parents informed about the risks and do they receive daily information about air quality?
  5. How many children were on sick leave due to respiratory problems during December 2025?

VII: Questions for Citizens (Self-criticism)

This section is not about shifting blame, but about exploring our own role in the system. Often, we are also part of the problem.

  1. How many citizens actually know what the AQI index is and what the number 418 means?
  2. How many citizens regularly check air quality before deciding whether to go outside with children?
  3. How many households burn waste, plastic, or low-quality coal instead of proper fuel?
  4. How many citizens use cars for short distances instead of walking or using public transport?
  5. How many citizens are willing to pay more for cleaner heating or to lower the temperature in their apartment by 1-2 degrees (as is done in China)?
  6. Are we willing to accept restrictions (e.g., traffic restrictions) if it will significantly reduce pollution?
  7. How many citizens have contacted their councilor or city authorities with a complaint or proposal?
  8. Why are citizens not organizing pressure on the authorities to take emergency measures?

VIII: Systemic Questions (for everyone together)

These questions cannot be answered by one institution; they require coordination of all levels of government and society.

  1. Why is there no integrated early warning system that would automatically notify citizens when critical levels are expected?
  2. Why is there no single web platform or mobile app where all information would be available in one place?
  3. Who is responsible for coordination between the City, Ministry, RHMZ and health institutions?
  4. Why is there no public database where all indicators, from AQI index to the number of hospitalizations, could be seen?
  5. Why did no institution activate emergency measures when AQI reached 418, who was supposed to do it and why didn’t it happen?
  6. How much would completely solving the problem cost (monitoring + subsidies + infrastructure + education)?
  7. What is the critical component that, if solved, would yield the most results? Is it individual heating, traffic, or something else?
  8. Why is there no public debate on this topic with the participation of experts, politicians, and citizens?
  9. How many people will have to get sick or die before it is understood that this is a priority?

IX: Seven Levels of “Why?” Root Cause Analysis of Key Topics

In software testing, when we want to get to the real cause of a problem, we ask the question “Why?” seven times. Let’s apply this to three key topics.

Topic 1: Why are there no subsidies for cleaner heating?

  • Level 1: Why doesn’t the City give subsidies for replacing old boilers?
    → Because there is no budget for it.
  • Level 2: Why is there no budget?
    → Because it is not a priority in the city budget.
  • Level 3: Why is it not a priority?
    → Because there are other “more important” items (roads, infrastructure, employee salaries…).
  • Level 4: Why is that considered more important than citizens’ health?
    → Because there is not enough pressure from citizens or strong political incentives to change it.
  • Level 5: Why is there no pressure from citizens?
    → Because citizens may not understand the seriousness of the problem or think they can’t change anything.
  • Level 6: Why don’t they understand the seriousness?
    → Because there is not enough transparent data, education, and dramatic examples (hospitalizations, deaths) that would trigger civic action.
  • Level 7: Why is there no transparent data and education?
    → Because institutions do not feel a political or social obligation to be transparent and proactive until the problem explodes.

Root cause: Lack of political will, which stems from a lack of civic mobilization, which stems from a lack of transparency and awareness.

Topic 2: Why is air quality monitoring not continuous?

  • Level 1: Why is monitoring not continuous?
    → Because the contract was not concluded due to the budget not being voted on.
  • Level 2: Why was the budget not voted on time?
    → Because political priorities were elsewhere or there was a deadlock in decision-making.
  • Level 3: Why wasn’t political will strong enough?
    → Because air quality monitoring is not visible to citizens as something that directly affects their lives.
  • Level 4: Why don’t citizens see it as a priority?
    → Because they haven’t seen a direct link between air quality data and their health problems.
  • Level 5: Why don’t they see that link?
    → Because there is no systematic education and because health statistics are not publicly available and linked to pollution.
  • Level 6: Why is there no systematic education?
    → Because schools and media do not cover this topic enough or institutions do not create campaigns.
  • Level 7: Why don’t institutions create campaigns?
    → Because that requires additional resources and political courage to admit that the problem is serious — and admitting the problem can mean taking responsibility.

Root cause: Lack of transparency and courage to publicly acknowledge the problem, which then leads to uninformed citizens and political passivity.

Topic 3: Why do citizens massively burn coal even though they know it’s harmful?

  • Level 1: Why do citizens burn coal?
    → Because it is the cheapest.
  • Level 2: Why is it the cheapest?
    → Because there are no subsidies or alternative options that are affordable.
  • Level 3: Why are there no subsidies?
    → Because neither the City nor the Republic allocates funds for it (we already asked).
  • Level 4: Why aren’t citizens pressuring for it to be introduced?
    → Because the average salary in the Republic covers only 55% of the consumer basket.
  • Level 5: Why does the economic situation not allow a switch to cleaner heating?
    → Because the economic system does not function in a way that supports healthy living conditions.
  • Level 6: Why doesn’t the system function?
    → Because there is a combination of high living costs, low salaries, lack of investments, and the absence of a social policy that would protect the most vulnerable.
  • Level 7: Why are there no systemic solutions?
    → Because solving these problems requires long-term planning, political courage, international cooperation, and the willingness to exert pressure on existing power structures, and that is difficult and carries risks.

Root cause: Economic insecurity and poverty, which are the result of broader systemic problems in society, combined with a lack of political will to prioritize health over short-term political stability.

Topic 4: Why isn’t the Ministry of Health louder about the problem?

  • Level 1: Why doesn’t the Ministry of Health publicly publish health statistics on the consequences of pollution?
    → Because there is no systematic collection of that data at the Ministry level.
  • Level 2: Why is there no systematic collection?
    → Because that requires coordination with all health institutions, additional resources, and IT systems.
  • Level 3: Why isn’t there investment in those systems?
    → Because the health budget is prioritized for emergency interventions and treatment, not for preventive monitoring.
  • Level 4: Why is prevention not a priority?
    → Because the results of prevention are not seen immediately, while the lack of medicines or medical equipment causes immediate political consequences.
  • Level 5: Why is political calculation more important than long-term health?
    → Because voters react to what is visible and immediate (e.g., “the hospital has no equipment”), and not to long-term preventive programs.
  • Level 6: Why don’t citizens value preventive programs?
    → Because education about public health is not sufficiently developed, and because people don’t see the direct link between air quality and their illnesses.
  • Level 7: Why is that link not obvious?
    → Because unlike a traffic accident or an acute infection where the cause and effect are clear, air pollution causes “slow” diseases that develop over years, making the problem invisible until it becomes critical.

Root cause: Lack of political courage to prioritize long-term public health over short-term political results, combined with poor citizen education about preventive medicine.

X: What Next?

This article did not write solutions. It wrote questions.
Questions that demand answers.
But who will answer?

  • If you are a city councilor, ask these questions at the next City Assembly session. Demand concrete answers with numbers, plans, deadlines.
  • If you work at a Ministry, ask your boss if there is a plan, budget, and will to solve this. If there isn’t, ask why.
  • If you work at the Ministry of Health, request the establishment of systematic collection of health data and that this information be publicly released. Let it be seen how many people are suffering.
  • If you are a journalist, use these questions for interviews with responsible persons. Do not accept general answers like “we are working on it,” demand concrete data.
  • If you are a citizen, start asking these questions publicly. On social media. In letters to local media. At community meetings.
  • If you are a parent, ask your child’s school principal if there are protocols for protecting children when the air is hazardous. If there aren’t, demand they be introduced.
  • If you are a doctor, publish the statistics. Let it be known how many people are suffering. Contact the Ministry of Health and request that the health consequences of pollution be systematically monitored and published.
  • And most importantly, if you are someone with decision-making power, know that you are responsible. Not to give a general promise. But to give concrete answers to concrete questions. Because your children are also breathing this air!

XI: The Bug That Doesn’t Fix Itself

When a software tester identifies a critical bug, they do not wait for the problem to solve itself. They document the problem. They ask questions. They seek the root cause. And then they don’t let up until those responsible give answers and an action plan.

Air pollution in Banja Luka is a critical bug in the system called our society.

And like any bug, it will not disappear by ignoring it. It will not disappear if we hide it. It will not disappear if we say “we are working on it” without concrete actions.

It will disappear only when we ask the right questions, get honest answers, and initiate systemic changes.

These questions are on the table.
Now it’s up to those who decide to answer them.

And you thought I’d miss the media:

Questions for media and TV stations:

If you host a TV or radio program, if you are an editor of a portal or newspaper, here are questions you need to ask yourself and your teams:

  1. How many times in the last 12 months have we published a story about air quality in Banja Luka?
  2. Do our morning shows display the AQI index daily as they display the weather forecast?
  3. How often do we invite responsible persons from the City, Ministry, and health institutions to the studio to answer concrete questions live?
  4. Do we have an expert or journalist specialized in environmental topics who systematically follows this problem?
  5. How often do we publish investigative stories with concrete data instead of just relaying statements?
  6. Why don’t we make shows where citizens can directly ask questions to the mayor or ministers about pollution?
  7. Do we follow what responsible persons said last year and do we confront them with their unfulfilled promises?
  8. How many times have we asked the UKC Banja Luka for health statistics and published them?
  9. Do we have a documentary format or series of shows dedicated to air quality?
  10. How many of our news items on pollution were “breaking news” and how many were systemic analyses?
  11. Does our editorial have a policy that every time the AQI exceeds 200, it is the top news of the day?
  12. Why don’t we make comparative analyses with Sarajevo, Tuzla, Belgrade to show where Banja Luka stands?
  13. How many times a year do we organize public debates or panel discussions on this topic?
  14. Do we have recorded interviews with citizens who are directly affected (parents of sick children, chronic patients)?
  15. Why don’t we do “follow-up” stories that check if anything changes after our publications?

PS

Share this article. Send it to councilors, ministers, journalists, friends.
Because change begins when questions can no longer be ignored.

Author: Dejan Majkić