DEMONSTRATION PROJECT · SYNTHETIC DATA
ImportGuard
From the received file to the agreed schema. Every record has a verifiable destination.
The problem.
An export may have different columns, identifiers with leading zeros, missing fields or conflicting rows. Copying everything into the target system hides errors instead of resolving them.
What it does.
- Maps columns to the documented schema and preserves identifiers as text.
- Checks required fields and address format without asserting email deliverability.
- Separates duplicates, conflicts and anomalies from the ready file.
- Records the result, reason and references for each source record.
What is delivered.
The demonstration package includes runnable Python code, synthetic input, two output CSVs, an HTML report, JSON audit, instructions and tests. You can reproduce the run and inspect its result.
A documented example schema. The demonstration does not include an import into a commercial CRM or verify whether email addresses can receive messages.
Download the projectsource_dirty.csv → CSV
Every record accounted for.
Recorded decisions on the synthetic dataset. Source record numbers exclude the header.
| # | ID | Result |
|---|---|---|
| 01 | 0001 | Ready |
| 02 | 0002 | Conflicting duplicate |
| 03 | 0003 | Missing email |
| 04 | 0004 | Invalid email format |
| 05 | 0005 | Ready |
| 06 | 0001 | Exact duplicate |
| 07 | 0002 | Conflicting duplicate |
| 08 | — | Blank row |
| 09 | 0006 | Ready |
| 10 | 0007 | Missing full name |
| 11 | — | Missing identifier |
| 12 | 0008 | Ready |
| 13 | 0009 | Ready |
| 14 | 0010 | Ready |
14 records shown. No record is unaccounted for.
A data format to prepare?
Format, destination and rules: let’s define the first task together.