AirQo Low-Cost Air Quality Monitor Calibration Challenge
Powering up low cost air quality monitors in Kampala, Uganda
$1 000 USD
Ended almost 2 years ago
161 active · 298 enrolled
Good for beginners

This challenge was orignally launch as a hackathon at DataFest Kampala. It is now open to the whole Zindi community.

Over the past few years AirQo has built up a network of over 50 low cost air quality monitoring devices in Kampala and a further 50 across Uganda. We have designed, refined and improved the devices over time and we think that they are awesome. But low cost devices are only indicative, they are not as accurate as ‘Reference monitors’ (although they only cost 1% of the price) and so to increase the validity of our work we need to calibrate our low cost monitors against the reference monitors to ‘power up’ our results and bring them as close as we can to international reference standards.

We have three locations: Makerere, Nakawa and US Embassy. Each contains a reference monitor collocated with a low cost monitor to allow a comparison over many months that can be used to train and test the model. Some supplementary and metadata has also been included to help things along

The objective of this challenge is to develop a model that will take low cost device data and other supplementary data and transform it as accurately as possible to the reference value.

This model will allow Airqo to ‘power up’ the accuracy of our measured results so they can be shared with the world as reference grade to ensure accurate insights are provided and decisions are made by citizens, government and industry that reflect the true air quality values.

About AirQo (

AirQo is a research project of the Makerere University College of Computing and Information Sciences. We are committed to using technology to solve social problems across Africa with a current focus on Air Quality. With support from Google we have developed a network of low cost devices across Uganda and are using ML/AI to build forecasting, spatial and now calibration data. We share our insights on our platform, app and website with the aim of raising awareness of the causes and consequences of poor air quality and to provide data driven, actionable insights to reduce air pollution across Uganda and to other African cities.

About DataFest Kampala (


Under the theme “Living with Data“, this year we examine the integral role that data plays in almost every aspect of our lives. Unmissable interaction with data in our day-to-day means that the importance of learning how to leverage that interaction for a better human experience cannot be overstated. From the professional experience to finance, from entertainment to healthcare, Data holds the answers to how to make our lives better.

About Pollicy (


Pollicy is a civic technology organisation working at the intersection of data, design and technology. We provide design consulting to re-engineer civic engagement and participatory processes, technology solutions for communication and research services to better understand what works within each local context. Through new technologies, we bridge data gaps from the grassroots level all the way up to the national level. Our passion is focused on influencing a culture of data use, promoting the use of shared data platforms, building analytical capacity, and advocating for digital rights and improved data governance within the private sector, civil society organisations, non-governmental organisations and government.


Teams and collaboration

You may participate in competitions as an individual or in a team of up to four people. When creating a team, the team must have a total submission count less than or equal to the maximum allowable submissions as of the formation date. A team will be allowed the maximum number of submissions for the competition, minus the total number of submissions among team members at team formation. Prizes are transferred only to the individual players or to the team leader.

Multiple accounts per user are not permitted, and neither is collaboration or membership across multiple teams. Individuals and their submissions originating from multiple accounts will be immediately disqualified from the platform.

Code must not be shared privately outside of a team. Any code that is shared, must be made available to all competition participants through the platform. (i.e. on the discussion boards).

The Zindi user who sets up a team is the default Team Leader. The Team Leader can invite other data scientists to their team. Invited data scientists can accept or reject invitations. Until a second data scientist accepts an invitation to join a team, the data scientist who initiated a team remains an individual on the leaderboard. No additional members may be added to teams within the final 5 days of the competition or the last hour of a hackathon, unless otherwise stated in the competition rules

A team can be disbanded if it has not yet made a submission. Once a submission is made individual members cannot leave the team.

All members in the team receive points associated with their ranking in the competition and there is no split or division of the points between team members.

Datasets and packages

The solution must use publicly-available, open-source packages only.

You may use only the datasets provided for this competition. Automated machine learning tools such as automl are not permitted.

You may use pretrained models as long as they are openly available to everyone.

The data used in this competition is the sole property of Zindi and the competition host. You may not transmit, duplicate, publish, redistribute or otherwise provide or make available any competition data to any party not participating in the Competition (this includes uploading the data to any public site such as Kaggle or GitHub). You may upload, store and work with the data on any cloud platform such as Google Colab, AWS or similar, as long as 1) the data remains private and 2) doing so does not contravene Zindi’s rules of use.

You must notify Zindi immediately upon learning of any unauthorised transmission of or unauthorised access to the competition data, and work with Zindi to rectify any unauthorised transmission or access.

Your solution must not infringe the rights of any third party and you must be legally entitled to assign ownership of all rights of copyright in and to the winning solution code to Zindi.

Submissions and winning

You may make a maximum of 10 submissions per day.

You may make a maximum of 300 submissions for this competition.

Before the end of the competition you need to choose 2 submissions to be judged on for the private leaderboard. If you do not make a selection your 2 best public leaderboard submissions will be used to score on the private leaderboard.

Zindi maintains a public leaderboard and a private leaderboard for each competition. The Public Leaderboard includes approximately 20% of the test dataset. While the competition is open, the Public Leaderboard will rank the submitted solutions by the accuracy score they achieve. Upon close of the competition, the Private Leaderboard, which covers the other 80% of the test dataset, will be made public and will constitute the final ranking for the competition.

Note that to count, your submission must first pass processing. If your submission fails during the processing step, it will not be counted and not receive a score; nor will it count against your daily submission limit. If you encounter problems with your submission file, your best course of action is to ask for advice on the Competition’s discussion forum.

If you are in the top 20 at the time the leaderboard closes, we will email you to request your code. On receipt of email, you will have 48 hours to respond and submit your code following the submission guidelines detailed below. Failure to respond will result in disqualification.

If your solution places 1st, 2nd, or 3rd on the final leaderboard, you will be required to submit your winning solution code to us for verification, and you thereby agree to assign all worldwide rights of copyright in and to such winning solution to Zindi.

If two solutions earn identical scores on the leaderboard, the tiebreaker will be the date and time in which the submission was made (the earlier solution will win).

If the error metric requires probabilities to be submitted, do not set thresholds (or round your probabilities) to improve your place on the leaderboard. In order to ensure that the client receives the best solution Zindi will need the raw probabilities. This will allow the clients to set thresholds to their own needs.

The winners will be paid via bank transfer, PayPal, or other international money transfer platform. International transfer fees will be deducted from the total prize amount, unless the prize money is under $500, in which case the international transfer fees will be covered by Zindi. In all cases, the winners are responsible for any other fees applied by their own bank or other institution for receiving the prize money. All taxes imposed on prizes are the sole responsibility of the winners. The top 3 winners or team leaders will be required to present Zindi with proof of identification, proof of residence and a letter from your bank confirming your banking details.Winners will be paid in USD or the currency of the competition. If your account cannot receive US Dollars or the currency of the competition then your bank will need to provide proof of this and Zindi will try to accommodate this.

You acknowledge and agree that Zindi may, without any obligation to do so, remove or disqualify an individual, team, or account if Zindi believes that such individual, team, or account is in violation of these rules. Entry into this competition constitutes your acceptance of these official competition rules.

Zindi is committed to providing solutions of value to our clients and partners. To this end, we reserve the right to disqualify your submission on the grounds of usability or value. This includes but is not limited to the use of data leaks or any other practices that we deem to compromise the inherent value of your solution.

Zindi also reserves the right to disqualify you and/or your submissions from any competition if we believe that you violated the rules or violated the spirit of the competition or the platform in any other way. The disqualifications are irrespective of your position on the leaderboard and completely at the discretion of Zindi.

Please refer to the FAQs and Terms of Use for additional rules that may apply to this competition. We reserve the right to update these rules at any time.

  • Reproducibility of submitted code
  • If your submitted code does not reproduce your score on the leaderboard, we reserve the right to adjust your rank to the score generated by the code you submitted.
  • If your code does not run you will be dropped from the top 10. Please make sure your code runs before submitting your solution.
  • Always set the seed. Rerunning your model should always place you at the same position on the leaderboard. When running your solution, if randomness shifts you down the leaderboard we reserve the right to adjust your rank to the closest score that your submission reproduces.
  • We expect full documentation. This includes:
  • All data used
  • Output data and where they are stored
  • Explanation of features used
  • A requirements file with all packages and versions used
  • Your solution must include the original data provided by Zindi and validated external data (if allowed)
  • All editing of data must be done in a notebook (i.e. not manually in Excel)
  • Environment code to be run. (e.g. Google Colab or the specifications of your local machine)
  • Expected run time for each notebook. This will be useful to the review team for time and resource allocation.

Data standards:

  • Your submitted code must run on the original train, test, and other datasets provided.
  • If external data is allowed, external data must be freely and publicly available, including pre-trained models with standard libraries. If external data is allowed, any data used should be shared with Zindi to be approved and then shared on the discussion forum. Zindi will also make note of the external data available on the data page.
  • Packages:
  • You must submit a requirements file with all packages and versions used.
  • If a requirements file is not provided, solutions will be run on the most recent packages available.
  • Custom packages in your submission notebook will not be accepted.
  • You may only use tools available to everyone i.e. no paid services or free trials that require a credit card.

Consequences of breaking any rules of the competition or submission guidelines:

  • First offence: No prizes or points for 6 months (probation period). If you are caught cheating, all individuals involved in cheating will be disqualified from the challenge(s) you were caught in and you will be disqualified from winning any competitions or Zindi points for the next six months.
  • Second offence: Banned from the platform. If you are caught for a second time your Zindi account will be disabled and you will be disqualified from winning any competitions or Zindi points using any other account.
  • Teams with individuals who are caught cheating will not be eligible to win prizes or points in the competition in which the cheating occurred, regardless of the individuals’ knowledge of or participation in the offence.
  • Teams with individuals who have previously committed an offence will not be eligible for any prizes for any competitions during the 6-month probation period.

Monitoring of submissions

  • We will review the top 20 solutions of every competition when the competition ends.
  • We reserve the right to request code from any user at any time during a challenge. You will have 24 hours to submit your code following the rules for code review (see above). Zindi reserves the right not to explain our reasons for requesting code. If you do not submit your code within 24 hours you will be disqualified from winning any competitions or Zindi points for the next six months. If you fall under suspicion again and your code is requested and you fail to submit your code within 24 hours, your Zindi account will be disabled and you will be disqualified from winning any competitions or Zindi points with any other account.

The evaluation metric for this challenge is the Root Mean Squared Error.

Your submission file should look like:

ID           Target
ID_2DDHQW9    31.2
ID_5HY6UEY    27.4  
ID_ATNVUJX    10.5

1st place: $500

2nd place: $300

3rd place: $200

2 weeks after the close of the challenge and after code review the top 3 teams from 3 PM Kampala time at DataFest and the overall 3 winners will be invited to an interview with AirQo, Pollicy, and Zindi where each team will have 15 minutes to give a 10-minute presentation and 5 minutes questions presenting:

How their model works and any issues identified

  • How they would then go on to apply their models to other devices on our network.
  • Analysis of the challenges expected in applying to new devices and how they can be overcome
  • Some sample data will be available to help explore.

AirQo want to use your solution to calibrate our network, in fact they have a pipeline set up ready and waiting to plug it in. But they cannot do that with Jupyter notebooks. They would love for you to work with their software engineers to turn your winning solution into useful code that they can use in our pipeline and roll out across the network.

AirQo and Pollicy reserve the right not to award the implementation prize.


Competition closes on 6 June 2021 Kampala time.

Final submissions must be received by 23:59 PM GMT.

If you are in the top 3 at the end of the competition look out for an email from the organizers to present your solution to AirQo and to be invited to work with them to implement the winning solution. Meeting invites and the schedule for the morning will be shared closer to the time.

We reserve the right to update the contest timeline if necessary.