Receipt Validation

This chapter describes how crop sale data contributed on Bolbhav app is validated.

Maintaining a high quality data has been one of main focus of Bolbhav. Since start, we have been validating 100% of the contributed data.

Context

Type of validation

Validation can be done by users or Gramhal's team. Initially, when we started Bolbhav, all validation was done by a dedicated team of data validators at Gramhal. In March 2024, we introduced a feature where users can also do validation and earn tokens.

Why we decided to involve users in validation?

There were two reasons:

  1. One team members was able to do only 500-600 data validation in a day. If we scaled the product to across India, it would have been impossible for us to hire so many people to do validation.

  2. Initially, contributing receipts was the only opportunity to earn tokens. For contributing receipts, a user should have to be physically present in mandi. Hence, those users who were outside mandi, there was no opportunity to earn tokens. Giving validation opportunity to everyone enables everyone to earn tokens.

Did we consider AI to review and validate?

Yes, we did considered AI to review the receipts. However, we decided to not go with AI because of following reasons:

  1. It is difficult to understand handwritten text in Hindi language, while we can definately train our model on receipts. But we thought that it is not our job to train model. One year down the year someone else can do it and we can use those models.

  2. Using AI is costly (1-2 rupees per receipts) and it will not help build any user behiaviour. Instead if we can open up validation for all users then we can build the necessary behaviour among users of contributing some activity on the platform.

Success metrics of user validation?

Our three wishes that should come true for user data validation to become success

  1. Users adopts the behaviour of validating the data.

  2. Those validates will do it correctly.

  3. There are always enough users everyday such that all receipts gets properly validated on time.

How is validation process designed?

Relevant database tables

Any new datapoint contributed is stored in this table.

If any sales receipt is edited or if its data is corrected, the previous history of sales receipt data is stored in this table.

We store the reason for its rejection in this table, including both a long and short description of the reason. Rejection Reasons are used for adding why receipt is rejected.

This table stores all cached data for crops and mandis of specific date, facilitating the display of crop prices and related information.

This table stores entries detailing the transaction history of user wallets for rewards received in for-sale receipts contributions.

sales_receipt_validation_queue

Uploaded receipts are stored and displayed to the user according to their queue status.

user_sale_receipt_validations

This table stores validation data for users, including status, correct response, sale receipt ID, validation time, and user responses.

Last updated