Start with the decision and the unit of analysis
Define the question before cleaning the file. A sales question may require one row per transaction, one row per customer-month, or one row per product-region. These are not interchangeable. State the target metric, time period, unit, currency, and decision the analysis should support.
Create a data dictionary
For each column, document its meaning, type, unit, allowed values, source, and whether it can be missing. Terms such as revenue, active customer, profit, order, and conversion often have multiple definitions. A data dictionary prevents different teams from interpreting the same field differently.
Check completeness, uniqueness, and consistency
Measure missing values, duplicate records, impossible values, category spelling differences, and inconsistent date formats. Determine whether a missing value means zero, unknown, not applicable, or a failed data collection process. These cases require different treatment.
Validate time, joins, and granularity
Check that dates are in the correct timezone and frequency, that monthly totals match source systems, and that joins do not duplicate rows. Many revenue errors come from joining a one-to-many table without controlling the resulting multiplication of records.
Document every transformation
Cleaning should be reproducible. Keep the raw file unchanged, write transformation steps in Python or another repeatable tool, and create a change log. The final dataset should be traceable back to its source.
Know when the data is not ready
If key definitions are unresolved, critical periods are missing, or the target was measured inconsistently, the right result may be a data-quality report rather than a forecast or machine-learning model. Stopping early can be the most valuable analytical decision.
Need the method applied to your own dataset?
Xynara Analytics provides project-based support with reproducible source files, clear interpretation, and explicit limitations.