A window that opens, and closes
Under a letter of credit, the documents have to be presented inside a window. The window opens the day the goods ship, and it closes a fixed number of days later. Present inside it and the bank pays. Present a day late and the bank can refuse, no matter how perfect the documents are. The deadline is not advice. It is the line between getting paid and not.
Now ignore the trade finance and look at what the rule actually does. It marks a starting event. It counts a number of days from that event. It checks whether a second event arrived before the count ran out. Three moves, and not one of them is about shipping, or banks, or letters of credit. They are about time.
That is the first sign you are looking at a primitive and not a feature. A feature belongs to its domain. A primitive does not. It is a small piece of logic that turns out to describe something much larger than the place you first found it, and once you have built it cleanly, it stops being trade-finance code and becomes something you can point anywhere.
The same clock, four times
Watch it leave trade finance and turn up everywhere.
A fund's holding in a public company crosses a disclosure threshold. A filing is due within a set number of days of the crossing. The starting event is the threshold crossing. The deadline is the filing window. It is the same clock.
A company discovers a personal-data breach. It has seventy-two hours from the moment it becomes aware to notify the regulator. The starting event is awareness. The deadline is the notification window. The same clock.
A reporting period ends. A tax return is due a fixed number of days after the close. The starting event is the period end. The deadline is the filing date. The same clock again.
Four domains. Trade finance, securities, data protection, tax. Four bodies of law written by different people, in different decades, for reasons that have nothing to do with one another. And under all four, the identical mechanism: a starting event, a count of days, a check that something happened before the count ran out.
Here is that mechanism written once, as a rule, from public data-protection law:
{
"rule_id": "DP-BREACH-EU-001",
"title": "Personal-data breach not notified within 72 hours",
"jurisdiction": "eu",
"source": "GDPR Article 33",
"severity": "block",
"expected_outcome": {
"action": "review",
"message": "A notifiable breach was not reported to the supervisory authority within 72 hours of awareness. Document the delay justification or notify immediately."
},
"conditions": [
{ "type": "deadline_window", "from": "breach.aware_at", "to": "breach.authority_notified_at", "max_hours": 72 }
],
"deterministic": true,
"validation_status": "expert_reviewed"
}
The condition that matters is the window. It takes the moment awareness began, the moment the notification was sent, and the time allowed between them. Change the law and you change the numbers. You do not change the check.
What moves, and what holds still
The differences between these four deadlines are real, but they all live in the data, not the logic. The number of days is data. Whether you count calendar days, business days, or trading days is data. Which event starts the clock is a field. The day a regulator amends a filing window, that is a row that changes in a table. The rule that says "the second event must land before the count runs out" does not move at all.
That separation is the quiet reason the engine holds together as it grows. Bake the day count into the logic and every regulatory tweak becomes a code change, written and reviewed and shipped. Keep the count as data and the same tweak is a configuration update, while the logic that has already been tested a thousand times stays exactly as it was.
There is one more thing the clock has to get right, and it is the thing every part of this engine has to get right. If it cannot read the starting event, because the date is missing or malformed, it does not assume the deadline was met. It says it could not check. A deadline you cannot verify is not a deadline you can clear.
The point
The clock was built for a letter of credit. It was never really about letters of credit. It was about an event, a count, and a second event, and that shape sits wherever regulation touches time, which is to say nearly everywhere.
This is what it means for a primitive to travel. You pay for it once, in the first domain that genuinely needs it, and from then on it is simply there, waiting, every time a new field turns out to run on a clock. The expensive work is already done. The next deadline, in the next domain, is mostly a matter of telling the engine which event starts the count and how long it runs. Build the right small things, and the large things stop being projects.