Data preparation and feature engineering steps should be done in a separate project to match the expected input datasets format. Respecting the expected data model when loading new data helps ensure that the reconciliation process runs smoothly and produces reliable results.

## Input Datasets Format 

The input data should be store into two different datasets: 
-  **Primary Dataset** : Serves as the reference dataset.
-  **Secondary Dataset** : Observations from this dataset will be matched to the primary dataset.

The solution accepts three types of data:  **numeric** ,  **string** , and  **date** .

For  **date-type columns** , the values must be  **parsed**  before being used as input for the project.

The corresponding key columns between the two datasets must be of the same type. For example, if you want to match a column containing credit card numbers in both datasets, ensure that the column type is set to "string" in both cases.

The corresponding key columns between the two datasets do not need to have the same name, although they can if desired.

## ID Columns Specificities

The solution allows either using custom ID columns or letting the project generate them automatically.

 **Naming Restrictions** : If ID columns are already included in the input data, users must ensure that they are not named "id." Using this name could confuse the process and lead to unexpected behavior in the results.