A Python project for data quality checks and reconciliation between multiple data sources.
This project demonstrates a practical reconciliation workflow using two synthetic transaction datasets.
The script compares two data sources and identifies:
- Duplicate records
- Records missing from one source
- Amount discrepancies
- Status discrepancies
- User mismatches
- Date mismatches
- Exact matches
The project uses two synthetic datasets:
source_a.csvsource_b.csv
Main fields:
transaction_iduser_idtransaction_dateamountstatus
The datasets intentionally contain several data quality issues for demonstration purposes.
The Python script:
- Loads both datasets
- Checks for duplicate transaction IDs
- Removes duplicates for reconciliation
- Performs an outer join by
transaction_id - Identifies records available only in Source A
- Identifies records available only in Source B
- Compares common records field by field
- Separates discrepancies from exact matches
- Builds a reconciliation summary
- Saves the results into an Excel workbook
The script generates:
reconciliation_result.xlsx
The workbook contains the following sheets:
High-level reconciliation metrics:
- Rows in Source A
- Rows in Source B
- Duplicate records
- Records available only in Source A
- Records available only in Source B
- Discrepancies
- Exact matches
Duplicate transaction IDs found in Source A.
Duplicate transaction IDs found in Source B.
Transactions available in Source A but missing from Source B.
Transactions available in Source B but missing from Source A.
Transactions available in both sources but containing differences in one or more fields.
Transactions that match across both sources.
The synthetic datasets include examples such as:
- Duplicate transaction IDs
- Missing transactions
- Different transaction amounts
- Records existing in only one source
These cases are intentionally included to demonstrate automated reconciliation logic.
- Python
- pandas
- openpyxl
- Microsoft Excel
source_a.csv— synthetic Source A datasetsource_b.csv— synthetic Source B datasetreconciliation.py— reconciliation scriptreconciliation_result.xlsx— generated reconciliation reportrequirements.txt— Python dependenciesREADME.md— project documentation
pip install -r requirements.txt
source_a.csv
source_b.csv
python reconciliation.py
reconciliation_result.xlsx
- Data quality analysis
- Data reconciliation
- Python automation
- Data validation
- Duplicate detection
- Discrepancy analysis
- Data comparison
- Excel reporting
- pandas
All data used in this repository is synthetic and created specifically for demonstration purposes.
The repository does not contain confidential, customer, production, or employer data.
- Add configurable reconciliation keys
- Add tolerance thresholds for numeric differences
- Add automated Excel formatting
- Add reconciliation status by row
- Add logging
- Add automated summary charts
- Add support for multiple input files
- Add SQL-based reconciliation examples