Smallholder farmers across Africa often face price volatility and post-harvest losses of up to 40%. agriBORA is a startup aiming to help smallholder farmers in Kenya by offering certified warehouses where farmers can safely store their produce and receive digital warehouse certificates, enabling access to loans and the option of delayed selling. This provides flexibility for farmers in deciding the optimal time to sell their produce for maximum returns, and reduces storage losses.
Using historical prices of dry maize in Kenya, your task is to develop a machine learning solution to predict average weekly prices of maize in the counties of Kiambu, Kirinyaga, Mombasa, Nairobi and Uasin-Gishu. At each prediction step, your model should generate forecasts for two consecutive weeks. The forecasting period spans six consecutive weeks, from November 17, 2025 to January 10, 2026.
Accurate forecasts will help farmers time their sales effectively, increase earnings, and strengthen agriBORA’s integrated storage, credit, and market intelligence service to East African farmers.
About Digital Africa
Launched in 2018, the Digital Africa initiative's mission is to strengthen the capacity of African digital entrepreneurs to design and deploy disruptive innovations at scale to serve the real economy. The initiative brings together a range of partners of all nationalities committed to African digital entrepreneurs, at the forefront of which is the French Development Agency (AFD).
About AgriBORA
agriBORA is an agri-fintech company redefining how grain is stored, financed, and traded across East Africa. Through its agriGHALA platform, the company integrates climate-smart warehousing, digital finance, and structured market linkages to create a transparent and efficient grain ecosystem. By empowering farmers, cooperatives, traders, and large-scale producers to securely store their grain, access instant liquidity, and connect directly with verified buyers, agriBORA is reducing post-harvest losses, unlocking working capital, and enabling a more resilient and inclusive agricultural economy.
This challenge uses multi-metric evaluation. There are two error metrics: Mean Absolute Error (MAE) and Root Mean Square Error (RMSE).
Your score on the leaderboard is the weighted average of the two metrics:
For each of the selected county, submission files should contain 3 columns: ID, Target_RMSE and Target_MAE. Take note of the column names and their order. The values in the ID column are formed by concatenating the county name and the week of year for which the predictions are made. For each entry, the predicted price (target) must be the same in both target columns. This is necessary for multi-metric evaluation.
The RMSE score is calculated from the column Target_RMSE and the MAE score is calculated from the column Target_MAE.
Your submission file should look like this (numbers to show format only):
ID Target_RMSE Target_MAE
Kiambu_Week_48 0.57 0.57 Kirinyaga_Week_48 0.57 0.57 Mombasa_Week_48 0.57 0.57 Nairobi_Week_48 0.57 0.57 Uasin-Gishu_Week_48 0.57 0.57 Kiambu_Week_49 0.57 0.57 Kirinyaga_Week_49 0.57 0.57 Mombasa_Week_49 0.57 0.57 Nairobi_Week_49 0.57 0.57 Uasin-Gishu_Week_49 0.57 0.57
A rolling leaderboard is used for this challenge. It will be updated every week on Tuesday at 15:00 GMT, as the actual maize prices in the selected counties become available.
To begin, during the week of 17- 22 November 2025 (Week 47), you will forecast prices for the weeks of 24–29 November 2025 (Week 48) and 1–6 December 2025 (Week 49). The actual prices for these forecast weeks will be released after they occur, with agriBORA providing the truth data on the Tuesday following each week (for example, prices for 24–29 November will be shared on Tuesday 2 December 2025, and prices for 1–6 December on Tuesday 9 December 2025). Your predictions will be scored against these true values as soon as the corresponding data becomes available, and the leaderboard will then be updated.
After each leaderboard update, you will have the opportunity to retrain or refine your model using all data released up to that point, then submit forecasts for the next two upcoming weeks. For example, in Week 49 you will forecast Week 50 and Week 51, in Week 50 you will forecast Week 51 and Week 52, and so on. This two-week-ahead rolling cycle will continue throughout the competition.
At the close of the challenge, your final submission in Week 52 (22–27 December 2025) will contain forecasts for Week 1 (29 December 2025–3 January 2026) and Week 2 (5–10 January 2026). Once agriBORA provides the actual maize prices for these weeks, these final forecasts will be evaluated and the leaderboard will be updated to produce the final rankings.
If you are in the top 10 on the final leaderboard, read this article on how to prepare your documentation and this article on how to ensure a successful code review.
🥇 1st prize (Top overall model): € 4 000 EUR
🥈2nd prize (Top female or majority female team): € 2 750 EUR
🥉3rd prize (Top Kenyan resident): € 1 500 EUR
There are 5 000 Zindi points available. You can read more about Zindi points here.
Only participants with an African nationality (from a member country of the African Union, as determined by INTPA arbitration) will be eligible to win a prize (in compliance with international and European sanctions).
🚀 What to know to get started with Zindi Challenges
How to get started on Zindi
How to create a team on Zindi
How to run notebooks in Colab
How to update your profile
ENTRY INTO THIS CHALLENGE CONSTITUTES YOUR ACCEPTANCE OF THESE OFFICIAL CHALLENGE RULES.
Full Challenge Rules
Open to all participants with an African nationality or from a member country of the African Union as determined by INTPA arbitration. Prizes will only be awarded to participants whose country is not under international sanctions. The prizes will be subject to a legal due diligence process and compliance with international and European sanctions. A post-competition verification will be carried out at the end of the challenge for participants who may be eligible to win prizes.
Before the announcement of the winners, a compliance due diligence will be carried out by Digital Africa in order to validate the eligibility of the winners with regards to international and European sanctions. Prizes will be awarded in equal amounts per team member if participants participate in teams. This criterion takes precedence over the performance of the proposed model or the ranking on the leaderboard.
Teams and collaboration
You may participate in challenges 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 challenge, minus the total number of submissions among team members at team formation. Prizes are transferred only to the individual players or will be awarded in equal amounts per team member if participants participate in teams
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 challenge participants through the platform. (i.e. on the discussion boards).
The Zindi data scientist who sets up a team is the default Team Leader but they can transfer leadership to another data scientist on the team. 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 challenge or last hour of a hackathon.
The team leader can initiate a merge with another team. Only the team leader of the second team can accept the invite. The default team leader is the leader from the team who initiated the invite. Teams can only merge if the total number of members is less than or equal to the maximum team size of the challenge.
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 challenge and there is no split or division of the points between team members.
Datasets, packages and general principles
The solution must use publicly-available, open-source packages only.
You may use only the datasets provided for this challenge.
You may use pretrained models as long as they are openly available to everyone.
Automated machine learning tools such as automl are not permitted.
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.
You are allowed to access and, use and share challenge data for the competition. for any commercial, non-commercial, research or education purposes, by open source.
N.B. These solutions could be put into production. Thus the resources used for this challenge need to be free to use and not be limited by a commercial license.
You must notify Zindi immediately upon learning of any unauthorised transmission of or unauthorised access to the challenge 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 be made open source as the solutions will be made available under an open source licence.
Submissions and winning
You may make a maximum of 10 submissions per day.
You may make a maximum of 100 submissions for this challenge.
Before the end of the challenge 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.
During the challenge, your best public score will be displayed regardless of the submissions you have selected. When the challenge closes your best private score out of the 2 selected submissions will be displayed.
Zindi maintains a public leaderboard and a private leaderboard for each challenge. The Public Leaderboard includes approximately 20% of the test dataset. While the challenge is open, the Public Leaderboard will rank the submitted solutions by the accuracy score they achieve. Upon close of the challenge, the Private Leaderboard, which covers the other 80% of the test dataset, will be made public and will constitute the final ranking for the challenge.
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 challenge page.
If you are in the top 10 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 Reproducibility of submitted code guidelines detailed below. Failure to respond will result in disqualification.
If your solution places in the top 10, best female and best Ivorian, 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, Digital Africa and agriBORA.
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).
The winners will be paid via bank transfer, PayPal if payment is less than or equivalent to $100, 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 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 challenge. If your account cannot receive US Dollars or the currency of the challenge then your bank will need to provide proof of this and Zindi will try to accommodate this.
Please note that due to the ongoing Russia-Ukraine conflict, we are not currently able to make prize payments to winners located in Russia. We apologise for any inconvenience that may cause, and will handle any issues that arise on a case-by-case basis.
Payment will be made after code review, sealing the leaderboard and due diligence completion by Digital Africa.
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 challenge constitutes your acceptance of these official challenge 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 challenge if we believe that you violated the rules or violated the spirit of the challenge 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 challenge. 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.
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.
Read this article on how to prepare your documentation and this article on how to ensure a successful code review.
Consequences of breaking any rules of the challenge or submission guidelines:
Teams with individuals who are caught cheating will not be eligible to win prizes or points in the challenge 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 challenges during the 6-month probation period.
Monitoring of submissions
We will review the top 10 solutions of every challenge when the challenge 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 challenges 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 challenges or Zindi points with any other account.
Join the largest network for
data scientists and AI builders