Data cleanup before software migration reduces the chance that duplicate customers, invalid statuses, inconsistent units, obsolete records, broken relationships, and uncontrolled files become permanent problems in a new system. Cleanup is a business decision process supported by technical tools, not a single formatting exercise.

The goal is not perfect data. It is data that is fit for the future workflow, traceable to its source, validated by accountable owners, and separated from history that should remain archived.

Define the migration purpose and boundary

Start with the workflows the new system will support and the records those workflows require. List included organizations, locations, date ranges, record types, attachments, transactions, and relationships.

Define what will not migrate and where required historical information will remain available.

Do not begin by copying every table and column. The destination process should determine which data has operational value.

Inventory every source

Sources may include applications, databases, spreadsheets, shared drives, local files, email folders, forms, exports, payment platforms, accounting systems, and employees' unofficial lists.

For each source, record owner, format, access, refresh timing, record count, date range, identifiers, relationships, attachments, known issues, sensitivity, retention, and export method.

Identify which source is authoritative when the same field appears in several places.

Name data owners and decision makers

A technical team can detect conflicting customer statuses, but the business must decide which status is correct and what it means.

Assign owners for customers, products, vendors, employees, contracts, transactions, inventory, projects, documents, and other domains.

Use a decision log for definitions, cleanup rules, exceptions, approvals, and unresolved questions.

Create a data dictionary

For each important field, document name, meaning, type, format, allowed values, required condition, source, owner, sensitivity, transformation, destination, and validation.

Resolve ambiguous labels such as “status,” “date,” “amount,” “active,” “customer,” and “complete.” Different teams may use the same word differently.

Define units, currencies, time zones, identifiers, and date semantics explicitly.

Profile the data before changing it

Measure record counts, null rates, distinct values, minimum and maximum, pattern frequency, invalid formats, duplicate candidates, orphan relationships, outliers, stale records, and attachment availability.

Segment by source, date, location, team, and record type. A quality problem may be concentrated in one import or historical period.

Save the profiling results as the baseline for cleanup and migration validation.

Define fit-for-purpose quality rules

Quality dimensions may include completeness, validity, consistency, uniqueness, accuracy, timeliness, and referential integrity.

Examples include:

  • Every active contract has an identifiable customer and effective dates.
  • Every inventory item has one approved unit of measure and status.
  • Every open invoice connects with an account and retains its financial references.
  • Every employee account maps to a current person and role.
  • Every document intended for migration has a valid owner and classification.

Prioritize rules that affect operations, finance, security, legal duty, and integrations.

Standardize values without losing meaning

Normalize casing, whitespace, phone formats, country and region codes, addresses where appropriate, date formats, status values, units, and categories.

Keep the original value when transformation could be consequential or uncertain. Store a transformation rule and exception rather than guessing.

Do not treat spelling differences as equivalent automatically when they may identify different products, people, or organizations.

Resolve duplicates with evidence

Duplicate detection may use identifiers, email, phone, address, tax or account references, names, dates, and relationship context.

Create match categories such as exact, probable, possible, and no match. Route uncertain candidates for review.

When merging, choose the surviving identifier, preserve source identifiers, combine approved relationships, resolve field conflicts, retain audit history, and redirect dependent records.

Do not delete one record before confirming that transactions and documents will remain connected.

Correct relationships and orphan records

Check that contacts belong to valid organizations, orders to customers, invoice lines to invoices, tasks to projects, files to records, and child records to current parents.

Classify orphans as recoverable, historical, invalid, or requiring business review.

Never create a fake generic parent merely to satisfy a database constraint without understanding the operational consequence.

Review status and lifecycle fields

Old systems often accumulate statuses with overlapping or undocumented meanings. Map them to the destination lifecycle using explicit rules.

Use related dates, transactions, approvals, and activity to validate status where possible. Route contradictions for review.

Preserve historical events when a current status alone would erase important context.

Clean contact and communication data

Normalize contact details, invalid addresses, delivery failures, consent, preferences, unsubscribe, do-not-contact, deceased or closed status, household relationships, and authorized recipients.

Do not infer marketing consent from the presence of an email address. Preserve the source and time of important preferences.

Separate shared, role-based, personal, and former-employee contact information.

Clean product and inventory data

Resolve item identifiers, descriptions, categories, units, pack sizes, conversions, costs, prices, barcodes, supplier references, substitutions, lot or serial settings, and active status.

Reconcile inventory balances to physical or authoritative records near cutover. Preserve adjustments with reason.

Do not merge items solely because their descriptions look similar.

Protect financial integrity

Open invoices, payments, credits, deposits, taxes, purchase orders, inventory value, and accounting references require controlled reconciliation.

Use qualified accounting guidance for opening balances, historical transactions, cutover periods, and audit evidence.

Do not “clean” financial data by changing transactions until totals agree. Correct through approved entries and preserve history.

Classify sensitive and regulated data

Identify personal, payment, health, child, employee, credential, legal, security, and other sensitive information.

Decide whether it should migrate, remain archived, be redacted, be deleted under approved policy, or require restricted access and special handling.

Qualified legal, privacy, security, and compliance professionals should review consequential retention and transfer decisions.

Separate active data from archives

Not every old record belongs in the operational database. Define active migration, searchable archive, immutable financial or legal archive, and approved deletion.

Archives still need ownership, access control, indexing, retention, backup, recovery, and export.

Test that users can retrieve required history without keeping obsolete data in every daily screen.

Map source to destination

Create a mapping for each destination field with source, transformation, default, lookup, validation, owner, and exception handling.

Map identifiers and relationships before descriptive fields. Preserve source IDs for traceability and integration transition.

Avoid defaults that create plausible but false data, such as today's date for unknown creation time.

Make cleanup reproducible

Use controlled scripts, queries, transformations, or import tools for repeatable work. Version the rules and produce logs and counts.

Manual corrections may be necessary, but record who changed what, why, and when.

Do not clean the final source extract through an undocumented sequence of spreadsheet edits.

Run trial migrations

Rehearse extraction, transformation, load, validation, rejection, and rollback with representative data.

Measure counts, duration, performance, rejected records, duplicate handling, attachments, relationships, totals, and user workflows.

Use trial results to refine cleanup rules and cutover estimates.

Validate at several levels

Technical validation confirms file, schema, type, count, key, relationship, and load success. Business validation confirms that records are correct and usable in real workflows.

Reconcile record counts, sampled fields, control totals, financial totals, inventory, open work, documents, permissions, and reports.

Track rejected and quarantined records to resolution rather than dropping them.

Control changes before cutover

Define a freeze or delta strategy for records changing between the final cleanup and production cutover.

Identify who can edit each source, how late changes are captured, and when the old system becomes read-only.

Reconcile the final delta and preserve cutover evidence.

Measure cleanup progress

Useful measures include source coverage, fields defined, invalid values, duplicates reviewed, orphans resolved, sensitive fields classified, records approved for migration, rejected records, archive readiness, and trial-migration reconciliation.

Track counts by business impact, not only total rows. One unresolved payment relationship can matter more than hundreds of cosmetic address issues.

Common cleanup mistakes

Frequent mistakes include starting with formatting, no business owner, merging on name alone, rewriting financial history, assigning false defaults, and migrating obsolete fields.

Other failures include ignoring attachments, consent, permissions, and relationships; manual spreadsheet edits without logs; no trial migration; and destroying source evidence too early.

Questions before data is approved

  • Which future workflows require each record and field?
  • Which source and owner are authoritative for each domain?
  • Which quality rules are required for safe operation?
  • How are duplicates, conflicts, orphans, unknowns, and history handled?
  • Which sensitive data should migrate, archive, or be removed under approved policy?
  • Are transformations reproducible and traceable?
  • Have trial migrations reconciled records, relationships, documents, and totals?
  • Who signs off the final data and rejected-record plan?

Migrate trustworthy meaning, not accumulated clutter

Data cleanup before software migration succeeds when the business understands its records, resolves consequential quality problems, preserves required history, and can explain every transformation.

Start with workflow needs, profile real sources, assign owners, automate repeatable cleanup, rehearse the migration, and require business validation before cutover.

Preparing to move records from spreadsheets or an old platform? Send Vertinus the source list, key record types, approximate volumes, and destination. We can help define a focused cleanup and migration plan.