15. Deduplication

OpenCRVS employs a robust matching algorithm, leveraging the capabilities of ElasticSearch. By automatically detecting potential duplicates, OpenCRVS prompts the Registrar to carefully review these declarations before proceeding with the registration process. This proactive approach ensures that duplicate records are promptly addressed and minimises the chances of duplicate civil registration records from existing. To learn more about how deduplication works please refer to OpenCRVS Specifications 1.4: Deduplication


Declaration status is in-progress


  • Field agent sends complete declaration for review

  • Registration Agent starts and sends declaration for approval

  • Registrar starts and then registers a declaration

Standard flow

  1. Each trigger action listed above prompts a deduplication check

  2. If deemed a potential duplicate the declaration will show in the Ready for review workqueue for a Registrar

  3. Registrar assigns themselves to the potential duplicate declaration

  4. Registrar clicks “Review”

  5. User is prompted to check the potential duplicate declaration against matched records

  6. User clicks on the tab of a flagged record

  7. User compares the potential duplicate declaration against the matched record side by side

  8. User reviews any other matched records

  9. User returns to the potential duplicate declaration view after making an assessment

  10. User clicks “Not a duplicate”

  11. User confirms their decision

Post conditions

  • Declaration status remains ‘In review’ and in Ready for Review workqueue.

  • Record audit is updated to show that the declaration was marked not a duplicate


Marking as a duplicate

  • User clicks “Mark as a duplicate”

  • User prompted to select the record it is a duplicate of

  • User prompted to add a reason for their decision

  • User confirms their decision to mark it as a duplicate

Post conditions

  • Declaration status changed to ‘Archived’. Declaration removed from all workqueues

  • Record audit is updated to show that the declaration was marked as a duplicate and was archived

Last updated