{"abstract":"Temporal enrichment excludes a version effective exactly at fact time.","category":"Data systems","checks":7,"contract":"Enrich facts [id,key,event-time] from versioned dimension rows [key,valid-from,revision,payload,tombstone]. For matching non-null key, use the greatest (valid-from,revision) no later than fact time. A selected tombstone yields None and blocks fallback to older versions. Emit [fact-id,payload-or-None].","contract_signature":"d","evaluation_group":"s3-data-systems-temporal-dimension-lookup","failed_approach":"Subtracting one retains the exact-time omission.","family":"s3-data-systems-temporal-dimension-lookup-effective-boundary","id":"FA-45726","implementations":{"attempt":{"sha256":"4ca27748a047fdcbd6a47db4dc8cdb85563eed42c1d1b26986838003c45af58d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        facts,versions=d\n        out=[]\n        for ident,key,time in facts:\n            candidates=[r for r in versions if key is not None and r[0]==key and r[1]<=time-1]\n            if not candidates: out.append([ident,None]); continue\n            chosen=max(candidates,key=lambda r:(r[1],r[2]))\n            out.append([ident,None if chosen[4] else chosen[3]])\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('future ignored', solve([[[10, 'a', 2]], [['a', 1, 1, 'old', False], ['a', 3, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 1]], [['a', 1, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 1]], [['a', 1, 1, 'old', False], ['a', 1, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 2]], [['a', 1, 1, 'old', False], ['a', 2, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 1]], [['a', 1, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 2]], [['a', 1, 1, 'right', False], ['b', 2, 1, 'wrong', False], [None, 2, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 1]], []]), [[10, None]])\nelif N == 2:\n    check('future ignored', solve([[[10, 'a', 3]], [['a', 2, 1, 'old', False], ['a', 4, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 2]], [['a', 2, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 2]], [['a', 2, 1, 'old', False], ['a', 2, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 3]], [['a', 2, 1, 'old', False], ['a', 3, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 2]], [['a', 2, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 3]], [['a', 2, 1, 'right', False], ['b', 3, 1, 'wrong', False], [None, 3, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 2]], []]), [[10, None]])\nelif N == 3:\n    check('future ignored', solve([[[10, 'a', 4]], [['a', 3, 1, 'old', False], ['a', 5, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 3]], [['a', 3, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 3]], [['a', 3, 1, 'old', False], ['a', 3, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 4]], [['a', 3, 1, 'old', False], ['a', 4, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 3]], [['a', 3, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 4]], [['a', 3, 1, 'right', False], ['b', 4, 1, 'wrong', False], [None, 4, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 3]], []]), [[10, None]])\nelif N == 4:\n    check('future ignored', solve([[[10, 'a', 5]], [['a', 4, 1, 'old', False], ['a', 6, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 4]], [['a', 4, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 4]], [['a', 4, 1, 'old', False], ['a', 4, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 5]], [['a', 4, 1, 'old', False], ['a', 5, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 4]], [['a', 4, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 5]], [['a', 4, 1, 'right', False], ['b', 5, 1, 'wrong', False], [None, 5, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 4]], []]), [[10, None]])\nelif N == 5:\n    check('future ignored', solve([[[10, 'a', 6]], [['a', 5, 1, 'old', False], ['a', 7, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 5]], [['a', 5, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 5]], [['a', 5, 1, 'old', False], ['a', 5, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 6]], [['a', 5, 1, 'old', False], ['a', 6, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 5]], [['a', 5, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 6]], [['a', 5, 1, 'right', False], ['b', 6, 1, 'wrong', False], [None, 6, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 5]], []]), [[10, None]])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"bc3a16336b05b231e595cf17d17a44950b21a74f97a252302e57a298f992c65b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    try:\n        facts,versions=d\n        out=[]\n        for ident,key,time in facts:\n            candidates=[r for r in versions if key is not None and r[0]==key and r[1]<time]\n            if not candidates: out.append([ident,None]); continue\n            chosen=max(candidates,key=lambda r:(r[1],r[2]))\n            out.append([ident,None if chosen[4] else chosen[3]])\n        return out\n    except (IndexError, KeyError, ValueError, StopIteration) as exc:\n        return {\"representation_error\": type(exc).__name__}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('future ignored', solve([[[10, 'a', 2]], [['a', 1, 1, 'old', False], ['a', 3, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 1]], [['a', 1, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 1]], [['a', 1, 1, 'old', False], ['a', 1, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 2]], [['a', 1, 1, 'old', False], ['a', 2, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 1]], [['a', 1, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 2]], [['a', 1, 1, 'right', False], ['b', 2, 1, 'wrong', False], [None, 2, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 1]], []]), [[10, None]])\nelif N == 2:\n    check('future ignored', solve([[[10, 'a', 3]], [['a', 2, 1, 'old', False], ['a', 4, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 2]], [['a', 2, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 2]], [['a', 2, 1, 'old', False], ['a', 2, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 3]], [['a', 2, 1, 'old', False], ['a', 3, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 2]], [['a', 2, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 3]], [['a', 2, 1, 'right', False], ['b', 3, 1, 'wrong', False], [None, 3, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 2]], []]), [[10, None]])\nelif N == 3:\n    check('future ignored', solve([[[10, 'a', 4]], [['a', 3, 1, 'old', False], ['a', 5, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 3]], [['a', 3, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 3]], [['a', 3, 1, 'old', False], ['a', 3, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 4]], [['a', 3, 1, 'old', False], ['a', 4, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 3]], [['a', 3, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 4]], [['a', 3, 1, 'right', False], ['b', 4, 1, 'wrong', False], [None, 4, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 3]], []]), [[10, None]])\nelif N == 4:\n    check('future ignored', solve([[[10, 'a', 5]], [['a', 4, 1, 'old', False], ['a', 6, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 4]], [['a', 4, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 4]], [['a', 4, 1, 'old', False], ['a', 4, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 5]], [['a', 4, 1, 'old', False], ['a', 5, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 4]], [['a', 4, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 5]], [['a', 4, 1, 'right', False], ['b', 5, 1, 'wrong', False], [None, 5, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 4]], []]), [[10, None]])\nelif N == 5:\n    check('future ignored', solve([[[10, 'a', 6]], [['a', 5, 1, 'old', False], ['a', 7, 1, 'future', False]]]), [[10, 'old']])\n    check('exact effective time', solve([[[10, 'a', 5]], [['a', 5, 1, 'current', False]]]), [[10, 'current']])\n    check('revision precedence', solve([[[10, 'a', 5]], [['a', 5, 1, 'old', False], ['a', 5, 2, 'new', False]]]), [[10, 'new']])\n    check('tombstone blocks old', solve([[[10, 'a', 6]], [['a', 5, 1, 'old', False], ['a', 6, 1, None, True]]]), [[10, None]])\n    check('tombstone hidden payload', solve([[[10, 'a', 5]], [['a', 5, 1, 'hidden', True]]]), [[10, None]])\n    check('other key', solve([[[10, 'a', 6]], [['a', 5, 1, 'right', False], ['b', 6, 1, 'wrong', False], [None, 6, 2, 'wildcard', False]]]), [[10, 'right']])\n    check('absent dimension', solve([[[10, 'a', 5]], []]), [[10, None]])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Offline stipulated semantics over valid small inputs; no performance, concurrency, or production-engine conformance claim. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"s3-data-systems-temporal-dimension-lookup-effective-boundary","generated_at":"2026-09-29T14:44:25.320112+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A bounded deterministic data engine model makes representation and changelog faults reproducible.","root_cause":"temporal-dimension-lookup: Temporal enrichment excludes a version effective exactly at fact time.","sha256":"6e7950dd8430b32dcd7393a044f2535b705c60a34600dd7194f8efd94191e2b8","title":"Temporal enrichment excludes a version effective exactly at fact time · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":45.419,"exit_code":1,"observations":[{"actual":[[10,"old"]],"check":"future ignored","expected":[[10,"old"]],"passed":true},{"actual":[[10,null]],"check":"exact effective time","expected":[[10,"current"]],"passed":false},{"actual":[[10,null]],"check":"revision precedence","expected":[[10,"new"]],"passed":false},{"actual":[[10,"old"]],"check":"tombstone blocks old","expected":[[10,null]],"passed":false},{"actual":[[10,null]],"check":"tombstone hidden payload","expected":[[10,null]],"passed":true},{"actual":[[10,"right"]],"check":"other key","expected":[[10,"right"]],"passed":true},{"actual":[[10,null]],"check":"absent dimension","expected":[[10,null]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"future ignored\", \"actual\": [[10, \"old\"]], \"expected\": [[10, \"old\"]], \"passed\": true}, {\"check\": \"exact effective time\", \"actual\": [[10, null]], \"expected\": [[10, \"current\"]], \"passed\": false}, {\"check\": \"revision precedence\", \"actual\": [[10, null]], \"expected\": [[10, \"new\"]], \"passed\": false}, {\"check\": \"tombstone blocks old\", \"actual\": [[10, \"old\"]], \"expected\": [[10, null]], \"passed\": false}, {\"check\": \"tombstone hidden payload\", \"actual\": [[10, null]], \"expected\": [[10, null]], \"passed\": true}, {\"check\": \"other key\", \"actual\": [[10, \"right\"]], \"expected\": [[10, \"right\"]], \"passed\": true}, {\"check\": \"absent dimension\", \"actual\": [[10, null]], \"expected\": [[10, null]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.202,"exit_code":1,"observations":[{"actual":[[10,"old"]],"check":"future ignored","expected":[[10,"old"]],"passed":true},{"actual":[[10,null]],"check":"exact effective time","expected":[[10,"current"]],"passed":false},{"actual":[[10,null]],"check":"revision precedence","expected":[[10,"new"]],"passed":false},{"actual":[[10,"old"]],"check":"tombstone blocks old","expected":[[10,null]],"passed":false},{"actual":[[10,null]],"check":"tombstone hidden payload","expected":[[10,null]],"passed":true},{"actual":[[10,"right"]],"check":"other key","expected":[[10,"right"]],"passed":true},{"actual":[[10,null]],"check":"absent dimension","expected":[[10,null]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"future ignored\", \"actual\": [[10, \"old\"]], \"expected\": [[10, \"old\"]], \"passed\": true}, {\"check\": \"exact effective time\", \"actual\": [[10, null]], \"expected\": [[10, \"current\"]], \"passed\": false}, {\"check\": \"revision precedence\", \"actual\": [[10, null]], \"expected\": [[10, \"new\"]], \"passed\": false}, {\"check\": \"tombstone blocks old\", \"actual\": [[10, \"old\"]], \"expected\": [[10, null]], \"passed\": false}, {\"check\": \"tombstone hidden payload\", \"actual\": [[10, null]], \"expected\": [[10, null]], \"passed\": true}, {\"check\": \"other key\", \"actual\": [[10, \"right\"]], \"expected\": [[10, \"right\"]], \"passed\": true}, {\"check\": \"absent dimension\", \"actual\": [[10, null]], \"expected\": [[10, null]], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}