The Trillium Company

Messy spreadsheet in, clean import file out: a before/after sample

This is a one-page sample of our spreadsheet cleanup: USD 40 per file, one file of up to 5,000 rows, cleaned the same business day with a change log. The input below is a fictional contacts file with typical problems: duplicates, mixed phone and date formats, names written as "Last, First", stray spaces, invalid emails, blank rows and inconsistent province values. The output is exactly what our cleaning script wrote. Nothing was edited by hand.

33 rows in, 27 rows out. Removed 2 blank rows and 4 duplicate rows. Flagged 3 rows for review; flagged rows stay in the file. Possible duplicates: 0 groups, not merged.

Before: the messy file (first 12 rows)

Source: messy_contacts.csv. Row numbers are the data rows in that file.

Before: messy file, first 12 rows
Rownamecompanyemailphoneprovincesignup_date
1Dana WhitfieldBrindle & Crane Bookkeepingdana.whitfield@example.com(416) 555-0148ON2026-03-14
2 Priya Raman Tamarack Forge ConsultingPriya.Raman@example.com416.555.0199Ontario03/14/2026
3Owen BramwellLumen Parcel Worksowen.bramwell@example.org+1 604 555 0141bcMar 5, 2026
4Okafor, RuthSable Hollow Dentalruth.okafor@example.com4165550123Ont.14 Mar 2026
5DEREK MOSSQuillfeather Books Ltdderek.moss@example.org905-555-0177ON2026/02/28
6Lindqvist, AnaNorthgate Ledger Co.ana.lindqvist@example.com(613) 555-0162Quebec31/12/2025
7jin-ho parkHarbour Ledger Servicesjinho.park@example.org1-604-555-0190BC2026-01-09
8Marisol TennantTennant Hospitality Groupmarisol.tennant@example.com403 555 0136AB2026-02-02
9MARISOL TENNANTTennant Hospitality GroupMARISOL.TENNANT@EXAMPLE.COM(403) 555-0136Alberta2026-02-02
10Sam KowalczykFernbank Plumbingsam.k@example514-555-0118QC2026-04-21
11Tom VidalVidal Trade Supplytom.vidal@example.org555-0123ON2026-05-11
12Grace ElleryEllery Design Studiograce.ellery@example.com613.555.0109 ext 4Ontario2026-06-30

After: the same records cleaned

Source: cleaned.csv, showing the same records. The From row column is added on this page for reference; it is not in cleaned.csv. Columns are as the script wrote them, including the added First Name and Last Name columns.

After: cleaned records, first 12 source rows
From rownameFirst NameLast Namecompanyemailphoneprovincesignup_date
1Dana WhitfieldDanaWhitfieldBrindle & Crane Bookkeepingdana.whitfield@example.com(416) 555-0148ON2026-03-14
2Priya RamanPriyaRamanTamarack Forge Consultingpriya.raman@example.com(416) 555-0199ON2026-03-14
3Owen BramwellOwenBramwellLumen Parcel Worksowen.bramwell@example.org(604) 555-0141BC2026-03-05
4Okafor, RuthRuthOkaforSable Hollow Dentalruth.okafor@example.com(416) 555-0123ON2026-03-14
5Derek MossDerekMossQuillfeather Books Ltdderek.moss@example.org(905) 555-0177ON2026-02-28
6Lindqvist, AnaAnaLindqvistNorthgate Ledger Co.ana.lindqvist@example.com(613) 555-0162QC2025-12-31
7Jin-Ho ParkJin-HoParkHarbour Ledger Servicesjinho.park@example.org(604) 555-0190BC2026-01-09
8Marisol TennantMarisolTennantTennant Hospitality Groupmarisol.tennant@example.com(403) 555-0136AB2026-02-02
10Sam KowalczykSamKowalczykFernbank Plumbingsam.k@example(514) 555-0118QC2026-04-21
11Tom VidalTomVidalVidal Trade Supplytom.vidal@example.org555-0123ON2026-05-11
12Grace ElleryGraceElleryEllery Design Studiograce.ellery@example.com(613) 555-0109 x4ON2026-06-30

Flagged for review (3 rows)

Source: flagged.csv. These rows are kept in the cleaned file so a person can check them. Nothing was deleted.

Flagged rows
Rownamecompanyemailphoneprovincesignup_dateflags
10Sam KowalczykFernbank Plumbingsam.k@example(514) 555-0118QC2026-04-21invalid email
11Tom VidalVidal Trade Supplytom.vidal@example.org555-0123ON2026-05-11short/invalid phone
32Connor ReyesReyes Roofingconnor.reyes@example.com555.0175ABsometime in 2025short/invalid phone; unreadable signup_date

Removed as duplicates (4 rows)

Source: removed_duplicates.csv. Each removed row is listed with the row it duplicates. A row is an exact duplicate if every field matches; otherwise it is removed when its email matches an earlier row.

Removed duplicate rows
RowDuplicate of rowDuplicate typenamecompanyemailphoneprovincesignup_date
98exactMarisol TennantTennant Hospitality Groupmarisol.tennant@example.com(403) 555-0136AB2026-02-02
1716exactLuca BianchiBianchi Woodworksluca.bianchi@example.com(416) 555-0172ON2026-03-20
194same emailRuth OkaforSable Hollow Dentalruth.okafor@example.com(416) 555-0123ON2026-03-14
2524same emailNadia HaddadHaddad Tutoring Inc.nadia.haddad@example.com(514) 555-0111QC2026-08-14

Possible duplicates (0 groups)

No possible duplicates were found in this sample. The check looks for the same first name, last name and company with different email addresses.

Change log

Rendered from CHANGELOG.md, the file that comes with every cleaned file.

Download the sample files

How it works

  1. Send us one file of up to 5,000 rows (contact details below).
  2. We confirm the scope with you.
  3. You receive the cleaned file and a change log the same business day.
  4. You review it, then pay USD 40 per file: pay USD 40 on Stripe.