# CSV import checklist

Free reusable template from Elkwai Solutions. Version 1.0 — 2026-09-14.

Guide: https://elkwai.com/csv-import-checklist

## Import record

- Source system:
- Original filename and retained-copy location:
- Source export date and time, with time zone:
- Parsed source record count, excluding the header:
- Working filename/version and transformation log:
- Destination system and environment:
- Operation (create, update, or upsert):
- Matching key and comparison/normalization rules:
- Column mapping and required-field specification:
- Blank-cell behavior during create/update:
- Import owner:
- Reviewer:
- Dry-run results and retained evidence:
- Pre-import export or backup location:
- Recovery procedure and test evidence:
- Approved exceptions:
- Approved file version and settings:
- Approval name and date:
- Actual execution time and import-log location:
- Post-import export location:
- Final review name, date, and unresolved issues:

## How to use this template

Keep an untouched source export and work on a separate copy. Fill Status with
Pass, Fail, or N/A. Add the evidence, exception, or reason in Notes. Resolve
failures and review exceptions before approving an import into production.
Adapt the checks to the destination's documented import behavior.

| Step | Check | Pass condition | Status | Notes |
| --- | --- | --- | --- | --- |
| 1 | Retain the original export | An untouched source copy is retained with the source system, filename, export time, and parsed record count recorded. | | |
| 2 | Define the import operation | The destination and environment are named; create, update, or upsert behavior and the matching rule are documented. | | |
| 3 | Confirm encoding and CSV dialect | The destination accepts the encoding and delimiter; quoted delimiters, embedded line breaks, and non-ASCII text parse correctly. | | |
| 4 | Review headers and column mapping | Each source column has a documented destination or exclusion; missing, extra, and repeated headers have been reviewed. | | |
| 5 | Preserve identifiers as text | Identifier values retain leading zeros and full precision; text comparison and any normalization are explicitly agreed. | | |
| 6 | Check missing required values | All fields required by the destination or the matching rule are populated or have an approved exception with a defined outcome. | | |
| 7 | Check exact key duplicates | The matching key is unique where required; duplicate and blank keys are resolved or explicitly rejected before import. | | |
| 8 | Review amounts | Original amount text is retained; currency, decimal separator, grouping separator, and any conversion are documented and tested. | | |
| 9 | Review dates and times | Original date and time text is retained; date order, time zone where relevant, and any conversion are documented and tested. | | |
| 10 | Review near-duplicate candidates | Similar records are reviewed without automatic deletion; each accepted merge or retained distinction has a recorded reason. | | |
| 11 | Confirm blank and default behavior | The behavior of a blank cell during create and update is tested; unintended overwrites and unexpected defaults are resolved. | | |
| 12 | Run a representative dry run | A sandbox or documented preview verifies mapping and outcomes for representative records and edge cases; findings are recorded. | | |
| 13 | Prepare and test recovery | A pre-import export or appropriate backup is retained; affected and newly created records can be identified; the recovery method is tested. | | |
| 14 | Approve the exact import | The reviewer and owner approve the file version, environment, mappings, matching rules, dry-run findings, and accepted exceptions. | | |
| 15 | Record execution and reconcile counts | The actual settings and import log are saved; created, updated, skipped, and rejected outcomes account for records under the destination's documented counting rules. | | |
| 16 | Verify post-import records | A post-import export is compared by stable text keys; unexpected additions, omissions, and field changes are investigated and the final review is recorded. | | |

## Fictional test cases

These values are invented test cases, not customer data.

- Identifiers `001` and `1` must remain different text values unless an explicitly
  approved rule says otherwise. Avoid automatic number conversion in the editor
  and the importer.
- In a comma-delimited CSV, `"Acme, Test"` is one quoted field. Confirm that a
  quoted comma does not shift later values into the wrong columns.
- `03/04/2026` is ambiguous without the source's date convention. Document the
  convention before converting it.
- Include a blank required key, a duplicate key, a quoted line break, and a blank
  field that would overwrite an existing value. Confirm the expected outcome for
  each case in the test environment.

## Reconciliation notes

Count parsed records rather than raw text lines: a quoted CSV field can contain
a line break. Use the destination's documented counting rules. When outcomes
are exclusive, accepted plus rejected plus skipped should account for submitted
records. Some importers report overlapping categories, and updates may leave
the destination's total record count unchanged.

Compare a pre-import or expected export with the post-import export using stable
text keys. A matching record count alone does not prove that the right fields or
records were changed. Investigate unexpected additions, omissions, duplicate
keys, and changed values before closing the review.

## Free tools

- CSV Profiler: https://elkwai.com/tools?tool=csv-profiler
- Missing Data Analyzer: https://elkwai.com/tools?tool=missing-data-analyzer
- Primary Key Candidate Finder: https://elkwai.com/tools?tool=primary-key-candidate-finder
- Date Format Detector: https://elkwai.com/tools?tool=date-format-detector
- Near Duplicate Candidate Finder: https://elkwai.com/tools?tool=near-duplicate-candidate-finder
- Compare CSV Files: https://elkwai.com/compare-csv-files

## Reuse permission

You may copy, adapt, and reuse this checklist for your own or your organization's
commercial or noncommercial internal work. This permission covers this free
checklist only. It does not grant a license to Data Workbench or other paid
software, which have separate purchase terms and licenses.
