Requirement Levels in SDM

Summary

Field Requirement Level (Project Level)

At the project level, each field (attribute) can have one of three requirement levels:

  1. Required: This is the highest level of requirement. For fields marked as required:
    • The user must provide a value for this field.
    • It's typically a blocker at the UI level, preventing the user from proceeding without filling in the field.
  2. Important: This is an intermediate-level of requirement:
    • The user is warned if the field is not filled, but can still proceed.
    • It indicates that the field is significant but not necessary.
  3. Optional: This is the lowest level of requirement (and the default):
    • The user is neither warned nor blocked if this field is left empty.

These requirement levels are defined in the field configuration at the project level. They help in managing data completeness and quality by indicating which fields are crucial for the project.

Max Requirement Level (Step Configuration)

The max_requirement_level is an option that can be set in the configuration of certain steps in the workflow, such as the Extraction, Mapping or Normalisation step.

Every steps can have a different level of requirement for the same attribute.

 

Here's how it works:

  1. If max_requirement_level is set to "required":
    • All fields required unable the user to finalize the step until they are properly completed
  2. If max_requirement_level is set to "important":
    • Fields that were "required" at the project level are treated as "important" in this step.
    • Fields that were "important" or "optional" maintain their project-level requirement.
  3. If max_requirement_level is set to "optional":
    • All fields are treated as optional in this step, regardless of their project-level setting.

Interaction Between Project and Step Levels

The interaction between the project-level requirement and the step-level max_requirement_level allows for flexibility in workflow design:

  1. Relaxing Requirements: You can use max_requirement_level to temporarily relax the requirements for a specific step. For example, in an Extraction step, you might set it to "important" to allow the process to continue even if some usually required fields couldn't be extracted.
  2. Step-Specific Behavior: It allows you to adjust the strictness of data requirements for different stages of your workflow. Early steps might be more lenient, while later steps enforce stricter requirements.
  3. Balancing Automation and Data Quality: In steps involving AI or automation (like Extraction), setting a lower max_requirement_level can prevent the process from getting stuck due to missing data, while still flagging important fields for review.