Primary competition visual

Dis-Chem Product Data Enrichment Challenge

$5 000 USD
28 days left
Computer Vision
Large Language Models
Natural Language Processing
Retrieval-Augmented Generation (RAG)
160 joined
50 active
Starti
13 Nov 26
Closei
13 Dec 26
Reveali
29 Jan 27
Can you build an AI solution that makes product information more complete, consistent and reliable?

Dis-Chem is one of South Africa's largest pharmacy and health retailers, with tens of thousands of products across health, baby, beauty, food and household. Every product needs an accurate, complete online record so that customers can find it, compare it and buy it with confidence. Search engines and AI shopping assistants also rely on structured, consistent product information to identify and recommend products correctly.

Today, Dis-Chem's product information is spread across several systems and is often incomplete or inconsistent. Product names may be abbreviated, descriptions may be missing, product attributes may differ between sources, and important information such as ingredients, usage instructions or warnings may not be structured correctly. Dis-Chem has developed a set of Product Content Guardrails, defining how product information should be presented, which fields are required for different product categories, and which sources can be trusted. Applying these standards manually across thousands of products is time-consuming and expensive.

Your task is to build an end-to-end AI solution that enriches, validates and standardises product catalogue records using information from multiple sources.

You will receive partially completed product records containing existing product information, structured fields and links to available product images. Some information will be intentionally removed or masked to simulate real-world gaps in Dis-Chem's catalogue. Your solution must identify and recover missing information, extract relevant product attributes, organise them into a predefined structured format and ensure that every fact is supported by an acceptable source.

The challenge is not simply to generate convincing product descriptions. Your solution must accurately extract and structure factual information while avoiding incorrect, unsupported or invented content. The best solutions will demonstrate how AI can automate product content enrichment at scale, producing records that are accurate, complete, consistent and suitable for use in a real retail environment.

Dis-Chem

With over 330 stores nationwide, Dis-Chem also provides services including health clinics, medication management, financial services and wellness solutions, making quality healthcare and everyday essentials more accessible to its customers. With an extensive product catalogue and a strong focus on customer experience, Dis-Chem continues to embrace innovation and technology to improve its retail operations and make product information more accurate, accessible and reliable.

X, bigly Labs

X, bigly labs is where cutting-edge technology and customer obsession collide to reshape healthcare. As Dis-Chem’s innovation engine, we ignite brave thinking, turning audacious ideas into real-world solutions. Our relentless pursuit of excellence drives us to solve the most complex healthcare challenges. We foster a collaborative spirit where passionate curiosity and experimentation amplify our collective purpose: Better Health Starts Here.

Prizes

🥇1st place: $2,500 USD

🥈 2nd place: $1,500 USD

🥉 3rd place: $1,000 USD

There are 5 000 Zindi points available. You can read more about Zindi points here.

Evaluation

Phase 1 (13/11/26 - 14/12/26)

Phase 1 evaluates the ten product information fields listed in the data section submission_format.json. Exact wording is not required when the meaning is equivalent.

Text fields

  • An LLM judge compares predictions with the reference information. The fields online_name, short_description, and long_description receive a semantic quality score. Each field is assessed for correctness, completeness, and whether it preserves the material meaning of the reference.
  • The available scores are:

| 1.00 | Correct and complete |

| 0.75 | Mostly correct, with minor omissions or differences |

| 0.50 | Partially correct |

| 0.25 | Limited correct information |

| 0.00 | Unusable or materially different |

  • Equivalent wording can receive full credit. Missing or incorrect information lowers the score.

Structured fields

  • The LLM judge also evaluates the remaining fields, which contain lists or structured objects. It compares each non-empty value with the reference by meaning, including relevant details such as units, scope, and basis. It considers the values within the JSON structure rather than comparing the entire cell as text. The judge uses the supplied reference as the source of truth and does not consult product images or other sources.
  • Each reference value can be matched once. A matched value is a true positive, or TP. A reference value without a matching prediction is a false negative, or FN. A prediction value that does not match the reference is an extra, including a new item in a list or an additional value in an object. The judge classifies each extra as a duplicate, acceptable, or unacceptable. Duplicate values and harmless, compatible details are not penalised. An incorrect, conflicting, or otherwise unacceptable extra is a false positive, or FP.
  • The structured field score is calculated as:

F1 = 2 × TP / (2 × TP + FP + FN)

  • This balances correct information against missing information and unacceptable additions.

Overall score

  • Each text field score is averaged across the products where that field has reference information. For each structured field, TP, FP, and FN counts are combined across the evaluated products before calculating its F1 score.
  • The overall score is the arithmetic mean of the evaluated field scores, with each field given equal weight. It ranges from 0 to 1, and a higher score is better. A field without reference information for a product is not evaluated for that product. Fields with no evaluable reference information are not included in the overall average.

At the end of Phase 1, the Top 10 competitors will be asked to submit their solution code for review. After the solutions have been reviewed, five competitors will be ranked and selected to proceed to Phase 2.

Note: Submissions may take 30-40 mins to score.

Phase 2 (25/12/26 - 15/01/27)

In Phase 2, selected competitors will build an end to end system for more detailed product enrichment. The system will need to meet the client constraints announced when Phase 2 launches.

The Phase 2 evaluation criteria and ranking procedure will be provided when that phase launches.

Rules
  • Languages and tools: You may only use Python in building models for this challenge.
  • Who can compete: Open to all
  • Submission Limits: 2 submissions per day, 20 submissions overall.
  • Team size: Max team size of 4
  • Public-Private Split: Zindi maintains a public leaderboard and a private leaderboard for each challenge. The Public Leaderboard includes approximately 30% of the test dataset. The private leaderboard will be revealed at the close of the challenge and contains the remaining 70% of the test set.
  • Data Sharing: No sharing permitted
  • Code Review: Top 10 on the private leaderboard will receive an email requesting their code at the end of Phase 1. You will have 48 hours to submit your code.
  • Code sharing: Multiple accounts, or sharing of code and information across accounts not in teams, is not allowed and will lead to disqualification.

ENTRY INTO THIS CHALLENGE CONSTITUTES YOUR ACCEPTANCE OF THESE OFFICIAL CHALLENGE RULES.

Full Challenge Rules

This challenge is open to all.

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 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 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, use and share challenge data for any commercial, non-commercial, research or education purposes, under a CC-BY SA 4.0 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 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 2 submissions per day.

You may make a maximum of 20 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 30% 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 70% 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 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).

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 and sealing the leaderboard.

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:

First offence: No prizes for 6 months and 2000 points will be removed from your profile (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 challenges for the next six months and 2000 points will be removed from your profile. If you have less than 2000 points to your profile your points will be set to 0.

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 challenges 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 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.