Time as Structure: Temporal Dependency Graphs for Verifiable Deadline Computation over Legal Documents
Organizations: Leiden Institute of Advanced Computer Science (LIACS), Leiden University
Abstract
Miss a filing deadline by one day and the claim is barred, however strong the case. Computing that deadline is rarely simple: the period runs from a triggering event, is counted by a statutory convention, and may be suspended by a mandatory conciliation window. We ask whether a language model should answer such questions directly, or read the document and leave the arithmetic to code. We extract dated facts and their dependencies into a temporal dependency graph and compute deadlines from it with a calendar-correct engine. On UK Employment Appeal Tribunal judgments the engine reproduces six of seven timeliness rulings, and matches the judges' own dates to the day. The strongest of four language models, asked the same cases, gets the arithmetic right and the answer wrong: in two of its seven responses its stated verdict contradicts its own working, and across the three GPT models six of twenty-one responses do, each time calling a late claim timely. To test the systems at scale we move the dismissal date across the statutory boundary, generating 427 cases whose answers are computed rather than annotated. On the cases both systems answer, the pipeline is right 90.2% of the time against 61.2% for direct answering. It answers two thirds of the cases, and counting its abstentions as errors it does not exceed direct answering (60.4% against 64.6%). The limit is extraction: on contracts the errors are almost never in the arithmetic, but in choosing which event the period starts from.
Figures & tables
| Category | Struct. | Naive | gemma | llama |
|---|---|---|---|---|
| Digits period | 100 | 50 | 67 | 63 |
| Words period | 100 | 70 | 57 | 40 |
| Vague period | 100 | 67 | 47 | 23 |
| 2 links, one doc. | 100 | 37 | 93 | 0 |
| 2 links, cross-doc. | 100 | 40 | 97 | 10 |
| 3 links, one doc. | 100 | 20 | 97 | 3 |
| Rule-based | LLM | |
| Facts extracted | 592 | 288 |
| resolving a date | 486 | 95 |
| usable nodes | 188 | 50 |
| Dependency edges | 11 | 92 |
| additive | 9 | 33 |
| ordering | 2 | 40 |
| Model | Verdicts | Deadlines | Mean |
|---|---|---|---|
| gemma4:e4b | 1/7 | 0/6 | 87.2 |
| gpt-5.4-nano | 3/7 | 0/6 | 77.3 |
| gpt-5.4-mini | 1/7 | 0/6 | 99.0 |
| gpt-5.4 | 3/7 | 3/6 | 50.5 |
| Engine, gold facts | 6/7 | 2/2 † | — |
| Criterion | Answers |
|---|---|
| Correct verdict | 12/14 |
| + correct day count | 9/14 |
| + correct anchor, rule and action date | 9/14 |
| Condition | Cov. | Acc | Acc | Flips | 1-flip |
|---|---|---|---|---|---|
| gemma direct | 1.00 | 0.646 | 0.646 | 68 | 1/7 |
| llama direct | 1.00 | 0.602 | 0.602 | 117 | 0/7 |
| gemma pipeline | 0.67 | 0.604 | 0.902 | 24 | 3/7 |
| llama pipeline | 0.41 | 0.335 | 0.822 | 18 | 0/7 |
| Case | pipeline | direct | |
|---|---|---|---|
| Case A (s.111) | 60 | 0.983 | 0.467 |
| Case A (s.123) | 60 | 0.983 | 0.567 |
| Case B | 49 | 1.000 | 0.510 |
| Case C | 55 | 1.000 | 0.982 |
| Case D | 41 | 0.415 | 0.390 |
| Case E | 14 | 1.000 | 0.857 |
| Condition | Coverage | Incoherent | Verdicts |
|---|---|---|---|
| llama3.1:8b, separate | 4/7 | 4/4 | 1/7 |
| llama3.1:8b, single | 6/7 | 6/6 | 4/6 |
| gemma4:e4b, separate | 5/7 | 4/5 | 4/6 |
| gemma4:e4b, single | 7/7 | 0/7 | 2/7 |
| gpt-5.4, separate | 7/7 | 4/7 | 5/7 |
| gpt-5.4, single | 7/7 | 0/7 | 4/7 |
Appendix figures & tables6 assets
Supplementary material from the paper’s appendix.
Appendix
| Doc | Edge | Verdict |
| Rule-based (9 computable) | ||
| A | P3M from 15 Mar 1986 | correct |
| A | P3Y , “last three years” | spurious |
| B | P1Y , secondment minimum | spurious |
| C | P6M vs stated one year | spurious |
| D | P1M from signature date | spurious |
| Approach | 1st link | 2nd link | 3rd link |
|---|---|---|---|
| Structured | 100 | 100 | 100 |
| gemma4:e4b | 97 | 96 | 93 |
| llama3.1:8b | 11 | 8 | 3 |
| Condition | Anchor | Day A | Day B | Presented |
|---|---|---|---|---|
| gemma / redacted | 4/7 | 3/4 | 2/3 | 7/7 |
| gemma / fulltext | 5/7 | 3/4 | 2/3 | 7/7 |
| mini / redacted | 5/7 | 4/4 | 3/3 | 7/7 |
| mini / fulltext | 6/7 | 4/4 | 3/3 | 7/7 |
| Condition | Anchor-correct | Flips | One flip |
|---|---|---|---|
| gemma direct | — | 68 | 1/7 |
| llama direct | — | 117 | 0/7 |
| gemma pipeline | 0.983 | 24 | 3/7 |
| llama pipeline | 0.939 | 18 | 0/7 |
| Condition | K1 | K2 | K3 | K5 |
|---|---|---|---|---|
| llama, separate | 5/6 | 3/4 | 3/7 | 1/7 |
| llama, single | 4/6 | 6/6 | 3/6 | 0/6 |
| gemma, separate | 3/6 | 4/7 | 1/6 | 1/6 |
| gemma, single | 0/7 | 0/7 | 0/7 | 0/7 |
| gpt-5.4, separate | 2/7 | 4/7 | 0/7 | 0/7 |
| gpt-5.4, single | 0/7 | 0/7 | 0/7 | 0/7 |