1. Duplicate Records
What: The same entity appears multiple times in a dataset. Why: Multiple data entry points, system migrations, bulk imports without deduplication. Fix: Implement duplicate detection at entry (check for existing email before creating a new record). Run a deduplication project on existing data. Establish a single entry point for master data.
2. Missing Required Values
What: Critical fields are blank for a significant portion of records. Why: Fields weren't required at entry, forms were redesigned without enforcing required fields, data imported from external sources. Fix: Make required fields mandatory in your entry system. Use enrichment services to fill missing values for existing records. Migrate to required-field enforcement.
3. Inconsistent Formatting
What: The same type of value stored in multiple formats (phone numbers, dates, addresses). Why: Multiple entry points with different standards, manual entry without format validation, data from multiple sources. Fix: Adopt international standards (ISO 8601 for dates, E.164 for phones). Enforce format validation at entry. Normalize existing data with a cleanup script.
Sohovi lets you set up validation rules for any column and instantly see which rows fall outside them — no code or SQL required.
4. Stale or Outdated Data
What: Data that was once accurate has decayed — people changed roles, companies changed names, addresses changed. Why: No re-verification process, data captured once and never refreshed. Fix: Implement a re-verification cadence. Add created_at and updated_at timestamps. Use engagement signals (email bounces, returned mail) as passive freshness indicators.
5. Orphaned Records
What: Records that reference deleted parent records (broken foreign keys). Why: Cascading deletes not configured, manual database edits, migration errors. Fix: Enable foreign key constraints. Configure appropriate cascade behavior for each relationship. Run integrity checks after migrations.
6. Inaccurate Self-Reported Data
What: Values entered by users that are incorrect — fake emails, wrong job titles, rounded numbers. Why: No verification at entry, users have incentive to provide inaccurate data. Fix: Verify critical fields at entry (email verification via confirmation, address autocomplete). Cross-reference with authoritative sources for high-value records.
Sohovi scores your dataset against your own accuracy standards and highlights the columns and rows where values fall outside expected ranges.
7. Mixed Data Types
What: A column intended for numbers contains both numbers and text ("N/A", "TBD", "$5,000"). Why: No type enforcement at entry, manual spreadsheet editing. Fix: Enforce column types in database schemas. For spreadsheets, use data validation. During cleanup, categorize non-numeric values as either null (truly missing) or coded values.
8. Poorly Defined Categories
What: Status or category fields with too many values or redundant values ("Active", "active", "Active Customer", "Current"). Why: Free-text fields used where dropdowns should be, no canonical value list. Fix: Define a canonical value list. Convert free-text to a dropdown. Map existing non-standard values to canonical values during a cleanup project.
9. Disconnected Data Across Systems
What: The same entity represented differently in different systems with no shared identifier. Why: No master data management, different systems added organically without integration. Fix: Establish a master identifier in the primary system of record. Sync that ID to all other systems. Define the authoritative system for each attribute.
10. No Data Timestamps
What: Records have no created_at or updated_at fields, making freshness and change tracking impossible. Why: Timestamps weren't included in the original schema design. Fix: Add timestamps to all tables going forward. For existing records, backfill created_at with a reasonable estimate where possible. This is foundational for any data quality monitoring.
Sohovi tracks quality trends across runs and alerts you when a metric — null rate, duplicate count, score — moves outside its normal range.
