Start with a stable identifier
An ID, SKU or account reference should identify the same record in both exports. Row 18 in one export may be row 3 in the next. Matching row positions can report changes that never happened.
Preserve identifiers as text: 0012 and 12 are different keys. If a SKU repeats across warehouses, choose SKU and warehouse together. CSV Review supports up to three key columns and preserves the boundary between them.
Try an example with a known answer
sku,name,price,stock 001,Stoneware mug,12.00,45 002,Linen towel,18.00,20
sku,name,price,stock 002,Linen towel,18.00,20 001,Stoneware mug,14.40,40
The answer is one changed record, one unchanged record, no additions and no removals. The first SKU has two changed fields. Its price rises by 20%. Moving the second SKU does not make it a changed record.
Handle duplicate keys before importing
Two records with the same key do not identify one authoritative record. CSV Review moves every affected record into the conflicts section, including the matching row from the other file. It never silently keeps the first duplicate. A blank key is also a conflict.
Review schema and rules
Map renamed headers deliberately. Unmapped columns appear separately as schema differences. Value trimming, case and numeric tolerances affect compared cells. Keys stay exact by default; optional key normalization can ignore case and outer spaces, or additionally ignore SKU spaces, slashes and hyphens. Review the active rules before accepting an unchanged count.
Keep a reproducible report
JSON exports retain original cell strings, row references, comparison rules and SHA-256 input fingerprints. CSV exports neutralize formula-triggering values for safer spreadsheet viewing, so use JSON when exact strings matter. These reports document a comparison; they do not prove that the source data is correct.