{"abstract":"A claimant born on February 29 is treated as an adult on February 28.","category":"Legal deadline computation","checks":7,"contract":"Stipulated: a claimant reaches majority on the 18th birthday; someone born February 29 reaches it on March 1 in a common year. If the claim accrues before majority, the period starts at majority, otherwise at accrual. The deadline is the anniversary of the start after years (a missing February 29 becomes February 28). Regardless of minority, the deadline may not exceed cap_years after accrual (same anniversary rule).","evaluation_group":"w2-legal-deadline-computation-minority-tolling","failed_approach":"The partial repair `dt.date(y18, 2, 28) if (b.month, b.day) == (2, 29) else dt.date(y18, b.month, b.day)` always uses February 28, even when the 18th birthday falls in a leap year.","family":"w2-legal-deadline-computation-minority-tolling-majority-leap","id":"FA-77611","implementations":{"attempt":{"sha256":"e3b4db4c88b72b6f7f15537d027ff3cdd93eec34426f1c5165738e9146d82927","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(birth, accrual, years, cap_years):\n    b = dt.date.fromisoformat(birth)\n    acc = dt.date.fromisoformat(accrual)\n    def anniversary(d, n):\n        y = d.year + n\n        return dt.date(y, d.month, min(d.day, calendar.monthrange(y, d.month)[1]))\n    y18 = b.year + 18\n    maj = dt.date(y18, 2, 28) if (b.month, b.day) == (2, 29) else dt.date(y18, b.month, b.day)\n    start = maj if acc < maj else acc\n    deadline = anniversary(start, years)\n    cap = anniversary(acc, cap_years)\n    return (min(deadline, cap)).isoformat()\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20'),\n  ('leap birthday common majority year', ['2004-02-29', '2020-05-01', 2, 8], '2024-03-01'),\n  ('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01'),\n  ('young child capped', ['2015-03-10', '2016-04-01', 3, 8], '2024-04-01'),\n  ('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01'),\n  ('accrual in majority year before birthday', ['2006-11-30', '2024-02-01', 2, 6], '2026-11-30'),\n  ('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05')],\n [('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01'),\n  ('young child capped', ['2015-03-10', '2016-04-01', 3, 8], '2024-04-01'),\n  ('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01'),\n  ('accrual in majority year before birthday', ['2006-11-30', '2024-02-01', 2, 6], '2026-11-30'),\n  ('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05'),\n  ('teen within cap', ['2009-09-09', '2024-01-15', 2, 10], '2029-09-09'),\n  ('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01')],\n [('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01'),\n  ('accrual in majority year before birthday', ['2006-11-30', '2024-02-01', 2, 6], '2026-11-30'),\n  ('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05'),\n  ('teen within cap', ['2009-09-09', '2024-01-15', 2, 10], '2029-09-09'),\n  ('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01'),\n  ('cap equals tolled', ['2010-07-07', '2020-07-07', 2, 10], '2030-07-07'),\n  ('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20')],\n [('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05'),\n  ('teen within cap', ['2009-09-09', '2024-01-15', 2, 10], '2029-09-09'),\n  ('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01'),\n  ('cap equals tolled', ['2010-07-07', '2020-07-07', 2, 10], '2030-07-07'),\n  ('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20'),\n  ('leap birthday common majority year', ['2004-02-29', '2020-05-01', 2, 8], '2024-03-01'),\n  ('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01')],\n [('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01'),\n  ('cap equals tolled', ['2010-07-07', '2020-07-07', 2, 10], '2030-07-07'),\n  ('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20'),\n  ('leap birthday common majority year', ['2004-02-29', '2020-05-01', 2, 8], '2024-03-01'),\n  ('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01'),\n  ('young child capped', ['2015-03-10', '2016-04-01', 3, 8], '2024-04-01'),\n  ('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01')]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"5b64c6773a75cc807821881fa6ccb5f16762181f0884b96adc2ffb55b811f822","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(birth, accrual, years, cap_years):\n    b = dt.date.fromisoformat(birth)\n    acc = dt.date.fromisoformat(accrual)\n    def anniversary(d, n):\n        y = d.year + n\n        return dt.date(y, d.month, min(d.day, calendar.monthrange(y, d.month)[1]))\n    y18 = b.year + 18\n    maj = anniversary(b, 18)\n    start = maj if acc < maj else acc\n    deadline = anniversary(start, years)\n    cap = anniversary(acc, cap_years)\n    return (min(deadline, cap)).isoformat()\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20'),\n  ('leap birthday common majority year', ['2004-02-29', '2020-05-01', 2, 8], '2024-03-01'),\n  ('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01'),\n  ('young child capped', ['2015-03-10', '2016-04-01', 3, 8], '2024-04-01'),\n  ('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01'),\n  ('accrual in majority year before birthday', ['2006-11-30', '2024-02-01', 2, 6], '2026-11-30'),\n  ('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05')],\n [('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01'),\n  ('young child capped', ['2015-03-10', '2016-04-01', 3, 8], '2024-04-01'),\n  ('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01'),\n  ('accrual in majority year before birthday', ['2006-11-30', '2024-02-01', 2, 6], '2026-11-30'),\n  ('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05'),\n  ('teen within cap', ['2009-09-09', '2024-01-15', 2, 10], '2029-09-09'),\n  ('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01')],\n [('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01'),\n  ('accrual in majority year before birthday', ['2006-11-30', '2024-02-01', 2, 6], '2026-11-30'),\n  ('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05'),\n  ('teen within cap', ['2009-09-09', '2024-01-15', 2, 10], '2029-09-09'),\n  ('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01'),\n  ('cap equals tolled', ['2010-07-07', '2020-07-07', 2, 10], '2030-07-07'),\n  ('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20')],\n [('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05'),\n  ('teen within cap', ['2009-09-09', '2024-01-15', 2, 10], '2029-09-09'),\n  ('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01'),\n  ('cap equals tolled', ['2010-07-07', '2020-07-07', 2, 10], '2030-07-07'),\n  ('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20'),\n  ('leap birthday common majority year', ['2004-02-29', '2020-05-01', 2, 8], '2024-03-01'),\n  ('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01')],\n [('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01'),\n  ('cap equals tolled', ['2010-07-07', '2020-07-07', 2, 10], '2030-07-07'),\n  ('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20'),\n  ('leap birthday common majority year', ['2004-02-29', '2020-05-01', 2, 8], '2024-03-01'),\n  ('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01'),\n  ('young child capped', ['2015-03-10', '2016-04-01', 3, 8], '2024-04-01'),\n  ('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01')]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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"},"fixed":{"sha256":"c1b430bef08ec75170a592ae32fb4c31add43dfae05cb0e16a2a48e998804e01","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(birth, accrual, years, cap_years):\n    b = dt.date.fromisoformat(birth)\n    acc = dt.date.fromisoformat(accrual)\n    def anniversary(d, n):\n        y = d.year + n\n        return dt.date(y, d.month, min(d.day, calendar.monthrange(y, d.month)[1]))\n    y18 = b.year + 18\n    maj = dt.date(y18, 3, 1) if (b.month, b.day) == (2, 29) and not calendar.isleap(y18) else dt.date(y18, b.month, b.day)\n    start = maj if acc < maj else acc\n    deadline = anniversary(start, years)\n    cap = anniversary(acc, cap_years)\n    return (min(deadline, cap)).isoformat()\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20'),\n  ('leap birthday common majority year', ['2004-02-29', '2020-05-01', 2, 8], '2024-03-01'),\n  ('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01'),\n  ('young child capped', ['2015-03-10', '2016-04-01', 3, 8], '2024-04-01'),\n  ('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01'),\n  ('accrual in majority year before birthday', ['2006-11-30', '2024-02-01', 2, 6], '2026-11-30'),\n  ('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05')],\n [('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01'),\n  ('young child capped', ['2015-03-10', '2016-04-01', 3, 8], '2024-04-01'),\n  ('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01'),\n  ('accrual in majority year before birthday', ['2006-11-30', '2024-02-01', 2, 6], '2026-11-30'),\n  ('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05'),\n  ('teen within cap', ['2009-09-09', '2024-01-15', 2, 10], '2029-09-09'),\n  ('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01')],\n [('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01'),\n  ('accrual in majority year before birthday', ['2006-11-30', '2024-02-01', 2, 6], '2026-11-30'),\n  ('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05'),\n  ('teen within cap', ['2009-09-09', '2024-01-15', 2, 10], '2029-09-09'),\n  ('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01'),\n  ('cap equals tolled', ['2010-07-07', '2020-07-07', 2, 10], '2030-07-07'),\n  ('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20')],\n [('accrual on majority date', ['2006-05-05', '2024-05-05', 2, 8], '2026-05-05'),\n  ('teen within cap', ['2009-09-09', '2024-01-15', 2, 10], '2029-09-09'),\n  ('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01'),\n  ('cap equals tolled', ['2010-07-07', '2020-07-07', 2, 10], '2030-07-07'),\n  ('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20'),\n  ('leap birthday common majority year', ['2004-02-29', '2020-05-01', 2, 8], '2024-03-01'),\n  ('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01')],\n [('leap birthday accrual early', ['2004-02-29', '2021-12-01', 3, 10], '2025-03-01'),\n  ('cap equals tolled', ['2010-07-07', '2020-07-07', 2, 10], '2030-07-07'),\n  ('regression: accrual days before 18th birthday', ['2006-06-20', '2024-06-17', 2, 8], '2026-06-20'),\n  ('leap birthday common majority year', ['2004-02-29', '2020-05-01', 2, 8], '2024-03-01'),\n  ('leap birthday leap majority year', ['2008-02-29', '2025-01-01', 1, 8], '2027-03-01'),\n  ('young child capped', ['2015-03-10', '2016-04-01', 3, 8], '2024-04-01'),\n  ('adult claim', ['1990-01-01', '2024-01-01', 2, 8], '2026-01-01')]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\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":"Stipulated toy deadline rules evaluated offline on explicit fixtures. The contract is inspired by common court-rule structures but is not legal advice and makes no claim to reproduce any jurisdiction's rules. 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":"w2-legal-deadline-computation-minority-tolling-majority-leap","generated_at":"2026-09-29T14:49:27.210060+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Docketing systems compute filing and response deadlines from trigger events; a wrong date can forfeit a right.","repair":"At the majority leap decision use `dt.date(y18, 3, 1) if (b.month, b.day) == (2, 29) and not calendar.isleap(y18) else dt.date(y18, b.month, b.day)`, leaving the other decision sites of the model unchanged.","root_cause":"Majority reuses the limitations anniversary rule, which clamps February 29 to February 28.","sha256":"75e98ccb8a8a7fca044b1a1ffa8a1be19142e32053aadb02c33f710afda18b35","title":"Limitations period tolled during minority: majority leap · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":48.061,"exit_code":1,"observations":[{"actual":"2026-06-20","check":"regression: accrual days before 18th birthday","expected":"2026-06-20","passed":true},{"actual":"2024-02-28","check":"leap birthday common majority year","expected":"2024-03-01","passed":false},{"actual":"2027-02-28","check":"leap birthday leap majority year","expected":"2027-03-01","passed":false},{"actual":"2024-04-01","check":"young child capped","expected":"2024-04-01","passed":true},{"actual":"2026-01-01","check":"adult claim","expected":"2026-01-01","passed":true},{"actual":"2026-11-30","check":"accrual in majority year before birthday","expected":"2026-11-30","passed":true},{"actual":"2026-05-05","check":"accrual on majority date","expected":"2026-05-05","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: accrual days before 18th birthday\", \"actual\": \"2026-06-20\", \"expected\": \"2026-06-20\", \"passed\": true}, {\"check\": \"leap birthday common majority year\", \"actual\": \"2024-02-28\", \"expected\": \"2024-03-01\", \"passed\": false}, {\"check\": \"leap birthday leap majority year\", \"actual\": \"2027-02-28\", \"expected\": \"2027-03-01\", \"passed\": false}, {\"check\": \"young child capped\", \"actual\": \"2024-04-01\", \"expected\": \"2024-04-01\", \"passed\": true}, {\"check\": \"adult claim\", \"actual\": \"2026-01-01\", \"expected\": \"2026-01-01\", \"passed\": true}, {\"check\": \"accrual in majority year before birthday\", \"actual\": \"2026-11-30\", \"expected\": \"2026-11-30\", \"passed\": true}, {\"check\": \"accrual on majority date\", \"actual\": \"2026-05-05\", \"expected\": \"2026-05-05\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.599,"exit_code":1,"observations":[{"actual":"2026-06-20","check":"regression: accrual days before 18th birthday","expected":"2026-06-20","passed":true},{"actual":"2024-02-28","check":"leap birthday common majority year","expected":"2024-03-01","passed":false},{"actual":"2027-02-28","check":"leap birthday leap majority year","expected":"2027-03-01","passed":false},{"actual":"2024-04-01","check":"young child capped","expected":"2024-04-01","passed":true},{"actual":"2026-01-01","check":"adult claim","expected":"2026-01-01","passed":true},{"actual":"2026-11-30","check":"accrual in majority year before birthday","expected":"2026-11-30","passed":true},{"actual":"2026-05-05","check":"accrual on majority date","expected":"2026-05-05","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: accrual days before 18th birthday\", \"actual\": \"2026-06-20\", \"expected\": \"2026-06-20\", \"passed\": true}, {\"check\": \"leap birthday common majority year\", \"actual\": \"2024-02-28\", \"expected\": \"2024-03-01\", \"passed\": false}, {\"check\": \"leap birthday leap majority year\", \"actual\": \"2027-02-28\", \"expected\": \"2027-03-01\", \"passed\": false}, {\"check\": \"young child capped\", \"actual\": \"2024-04-01\", \"expected\": \"2024-04-01\", \"passed\": true}, {\"check\": \"adult claim\", \"actual\": \"2026-01-01\", \"expected\": \"2026-01-01\", \"passed\": true}, {\"check\": \"accrual in majority year before birthday\", \"actual\": \"2026-11-30\", \"expected\": \"2026-11-30\", \"passed\": true}, {\"check\": \"accrual on majority date\", \"actual\": \"2026-05-05\", \"expected\": \"2026-05-05\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.607,"exit_code":0,"observations":[{"actual":"2026-06-20","check":"regression: accrual days before 18th birthday","expected":"2026-06-20","passed":true},{"actual":"2024-03-01","check":"leap birthday common majority year","expected":"2024-03-01","passed":true},{"actual":"2027-03-01","check":"leap birthday leap majority year","expected":"2027-03-01","passed":true},{"actual":"2024-04-01","check":"young child capped","expected":"2024-04-01","passed":true},{"actual":"2026-01-01","check":"adult claim","expected":"2026-01-01","passed":true},{"actual":"2026-11-30","check":"accrual in majority year before birthday","expected":"2026-11-30","passed":true},{"actual":"2026-05-05","check":"accrual on majority date","expected":"2026-05-05","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: accrual days before 18th birthday\", \"actual\": \"2026-06-20\", \"expected\": \"2026-06-20\", \"passed\": true}, {\"check\": \"leap birthday common majority year\", \"actual\": \"2024-03-01\", \"expected\": \"2024-03-01\", \"passed\": true}, {\"check\": \"leap birthday leap majority year\", \"actual\": \"2027-03-01\", \"expected\": \"2027-03-01\", \"passed\": true}, {\"check\": \"young child capped\", \"actual\": \"2024-04-01\", \"expected\": \"2024-04-01\", \"passed\": true}, {\"check\": \"adult claim\", \"actual\": \"2026-01-01\", \"expected\": \"2026-01-01\", \"passed\": true}, {\"check\": \"accrual in majority year before birthday\", \"actual\": \"2026-11-30\", \"expected\": \"2026-11-30\", \"passed\": true}, {\"check\": \"accrual on majority date\", \"actual\": \"2026-05-05\", \"expected\": \"2026-05-05\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}