Why a Day Is the Unit of Truth
Day-level digests make reconciliation atomic, explainable, and reversible.
Many exported event formats do not provide stable identifiers that survive edits. Trying to pair old and new rows through fuzzy matching would make reconciliation increasingly speculative. TimeTrackDB instead treats the logical day as the smallest complete unit that can be replaced with confidence.
Every normalized event receives a deterministic fingerprint, and the sorted fingerprints for a day become a day digest. When another export arrives, unchanged digests can be ignored. A changed digest marks that day for reconciliation, allowing a large historical export to produce only a small, well-defined update.
Publication is transactional. The current rows for an affected day move into history, the replacement set becomes current, and the publication is recorded as one operation. Readers never see half of an update, while the historical table retains enough temporal information to reconstruct the state that existed at an earlier point.
This model also makes rollback understandable. A rollback targets an event dataset, a logical day or affected set of days, and a known historical state. It is a narrower and more auditable operation than restoring an entire database simply because one portion of an imported timeline was wrong.