A fictional engineering team is preparing a handoff for its next maintainer. Its small utilities must preserve malformed-input evidence, handle calendar boundaries, and close temporary resources. You've already used all the required modules and control-flow patterns. These tasks combine them on fresh data without adding a new feature. Pay attention to the output contract: a count of invalid rows is different from silently discarding them, and a filename suffix is different from an entire extension chain. When a function handles an expected error, return the named outcome. Let the behavior of an empty collection follow the documented rule rather than an accidental default. All files remain inside a temporary virtual directory.