A table stores each row's UTC offset rather than the zone it came from. What can you no longer answer from it?
answer
- an answer, not the rule
- the rulebook is dated and changes
- many locations share one displacement
- unfalsifiable once the rule is gone
basics
~20 sAn offset is one answer from a zone's dated rulebook. Storing it pins the moment but throws the rule away, so the captured moment and its clock reading survive while local time at any other moment cannot be worked out.
solid answer
~40 sA zone is a dated rulebook for a location: for any moment it yields the displacement from UTC in force there, and that output changes over time. A stored displacement is one of its answers, so keeping it and discarding the zone is lossy in a specific way. What survives is everything about the captured event: the moment is fully pinned, the local clock reading is recoverable, and ordering, differencing and matching on time all work. What does not survive is the ability to ask anything new — the local reading at that location for any other moment, which location it was (many share a displacement), what a future local commitment maps to after a rule change, and whether the producer's displacement was even correct, since there is nothing left to check it against.
go deeper
Recall the distinction: a zone is a rule that yields different displacements at different moments, and a displacement is one of its outputs. Storing the output is not the same as storing the rule.
Explain what each one lets you compute. A displacement fixes the moment for that row; only the zone lets you render any other moment locally, or re-derive after the rules change.
Show the consequence in a real dataset: a report someone asks for a year later that cannot be produced, a future-dated commitment that silently moves, a producer's claimed displacement that nothing can validate. Name the column layout you would have written instead.
This is a standing commitment made before the pipeline exists. Carrying moment, zone and captured displacement costs storage and discipline at every producer; carrying less is cheaper today and forecloses a class of questions the business has not asked yet.
## A rule and one of its answers A zone is a dated rulebook attached to a location: for any moment it yields the displacement from UTC that was in force there. The rulebook has history in it, because the displacement changes — seasonally in many zones, by legislation in any of them, sometimes announced only weeks ahead, and occasionally corrected after the fact for dates already in the past. A displacement such as `+02:00` is one answer that rulebook gave, at one moment, for one location. Storing the answer and discarding the rule is a lossy compression, and what it loses is not the past but the ability to ask new questions. ## What survives Quite a lot, which is exactly why the shortcut is comfortable: - The moment is fully pinned. A clock reading plus the displacement in force is an unambiguous point on the world timeline, so anything about *when the event happened* is answerable. - The local clock reading at capture is recoverable, so *what did the operator's clock say* and *which local calendar day was it* are answerable for that row. - Ordering, differencing and matching on time all work, because they need only the moment. ## What does not | Question you may later want to ask | Answerable from a stored displacement? | |---|---| | What did the local clock read there at some other moment? | No — you hold one answer, not the rule | | Which location was this? | No — many locations share a displacement at any given moment | | What will the local clock read for a moment next year? | No, and the rule may change before then | | Should this row group with its region's local business day? | Only for this row's own moment | | Was this recorded under the rule in force, or by a broken producer? | No — there is nothing left to check the displacement against | The last row is the one people underestimate. A stored displacement is unfalsifiable: with the rule gone, no later process can tell a correct `+02:00` from a producer that hard-coded `+02:00` all year round. Keep the zone and that validation is available; keep only the displacement and it is not. ## The future-dated case Anything promised at a local clock reading in the future is the sharpest version of the problem. A commitment for 09:00 local a year out is not a known moment, because the rule that will map 09:00 to a moment may not have been written yet. Frozen as a moment with a displacement, it quietly becomes a promise to act at whatever local time that moment turns into after a rule change. Kept as a local reading plus its zone, it stays the promise that was actually made, and the moment is derived when it is needed. ## What to store instead 1. **The moment**, as the interior representation everything computes on. 2. **The zone of origin** as its own column, held as the location's rulebook identifier rather than as a displacement. 3. **The captured displacement, optionally**, as evidence of what the producer claimed — useful precisely because it can then be checked against the rule, which is the check you gave up by storing it alone. That triple is redundant on purpose. The moment is what you compute with, the zone is what lets you render and re-derive, and the captured displacement is evidence. Any two of them can validate the third. ## Where the shortcut comes from Two habits produce this column. The first is an upstream encoding that carries a displacement rather than a location, so the zone is lost in transit and whatever reads it stores what it received. The second is the belief that keeping everything in UTC is sufficient — true for computing and false for reporting. Once a row is normalised to UTC with no origin recorded, *revenue by local business day* and *incidents by local hour of day* become unanswerable for anything spanning more than one region, and those are exactly the questions someone asks a year later. ## What an interviewer is listening for That you can state the relationship crisply — a zone is a rule, a displacement is one of its outputs — and then say what that buys in a specific analysis rather than reciting it as a slogan. The strong answer names a question that becomes unanswerable, shows the column layout that keeps it answerable, and is honest that the shortcut costs nothing at all for the row it was captured on.
- If every row is normalised to UTC with no origin recorded, what have you given up?Anything stated in local terms. Revenue by local business day, incidents by local hour of day and a customer's own calendar all become unanswerable for data spanning more than one region — and those questions usually arrive long after the column has been filling.
- Why is a stored displacement unfalsifiable?Because the rule that would contradict it is gone. With the zone of origin kept, you can re-derive what the displacement should have been and flag rows where the producer disagreed. With only the displacement, a hard-coded value and a correct one look identical.
Writing 'one pound bought 1.27 dollars' on a receipt tells you exactly what that purchase cost in both currencies, forever. It does not let you price anything else, because what you wrote down is one answer the market gave at one moment, not the market.
saying these in an interview costs you the question
- A zone is just a displacement from UTC.
- Storing the displacement preserves everything the zone would have.
- Displacements are fixed per country, so the location is recoverable.
- Zone rules never change, so the distinction is theoretical.
- Normalising everything to UTC is always sufficient.