Fix dates that silently swap day and month in an analytics report
By Gistmax Tutorials · 2026-11-04
A dashboard places an event from 4 May in April. Both dates are valid, so the report produces plausible totals instead of an obvious exception.
Why this happens
An ambiguous value such as 04/05/2026 does not describe its own date convention. Automatic inference cannot establish what the business intended. Mixing exports from different regions makes the problem harder to detect.
Step-by-step solution
1. Confirm the source convention with the exporting system. Preserve the raw value alongside the parsed timestamp for investigation.
2. Use an explicit format for a consistent source. Separate incompatible formats into controlled parsing paths rather than guessing each row.
3. Coerce invalid values into a review queue, count them, and keep them out of date-based aggregates until their meaning is established.
Worked example
import pandas as pd
raw = pd.Series(['04/05/2026', '31/02/2026'])
parsed = pd.to_datetime(raw, format='%d/%m/%Y', errors='coerce')
assert parsed.iloc[0].month == 5
assert parsed.isna().sum() == 1Verify the fix
The valid date must fall in May and the impossible February date must be missing. Check at least one known event against the source system, including its timezone when timestamps contain times.
Prevent a repeat
Prefer an unambiguous export format and document whether reporting periods use UTC or a local timezone. Display rejected-row counts next to ingestion results.
Reference
Official documentation or standards guidance
An original Gistmax troubleshooting guide. Scenarios and sample values are illustrative; configuration depends on your software version and environment. Cover diagram: Gistmax Tutorials.