{"abstract":"Summer tide times are two hours off in UTC.","category":"Tide and marine navigation tables","checks":7,"contract":"Input [local \"YYYY-MM-DD HH:MM\", zd, dst]: zone description zd in hours (positive west, may be fractional); UTC = zone time + zd, and when the table is on daylight time the clock is one hour ahead so UTC = local + zd - 1. Return UTC as \"YYYY-MM-DD HH:MM\" (24-hour).","contract_signature":"x","evaluation_group":"w2-tide_and_marine_navigation_tables-zone_time","failed_approach":"Ignoring the daylight flag leaves summer tables an hour late.","family":"w2-tide_and_marine_navigation_tables-zone_time-daylight-sign","id":"FA-69121","implementations":{"attempt":{"sha256":"1e15d6e9cfef7a4019eff1d08f1e13152bb2bfeea34e80f775ee889be5b6ceb4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport datetime\nN = 1\nobservations = []\ndef solve(x):\n    s,zd,dst=x\n    dt=datetime.datetime.strptime(s,'%Y-%m-%d %H:%M')\n    off=zd\n    u=dt+datetime.timedelta(minutes=round(off*60))\n    return u.strftime('%Y-%m-%d %H:%M')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('tide table zone time to utc [\"2026-07-01 23:30\", 4, true]', ['2026-07-01 23:30', 4, True], '2026-07-02 02:30'), ('tide table zone time to utc [\"2026-03-14 06:12\", 5, false]', ['2026-03-14 06:12', 5, False], '2026-03-14 11:12'), ('tide table zone time to utc [\"2026-03-14 21:40\", 5, false]', ['2026-03-14 21:40', 5, False], '2026-03-15 02:40'), ('tide table zone time to utc [\"2026-07-01 00:20\", -2, true]', ['2026-07-01 00:20', -2, True], '2026-06-30 21:20'), ('tide table zone time to utc [\"2026-12-31 22:15\", 3, false]', ['2026-12-31 22:15', 3, False], '2027-01-01 01:15'), ('tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]', ['2026-01-01 01:05', -9.5, False], '2025-12-31 15:35'), ('tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]', ['2026-06-15 12:00', -5.5, False], '2026-06-15 06:30')], [('tide table zone time to utc [\"2026-07-01 00:20\", -2, true]', ['2026-07-01 00:20', -2, True], '2026-06-30 21:20'), ('tide table zone time to utc [\"2026-12-31 22:15\", 3, false]', ['2026-12-31 22:15', 3, False], '2027-01-01 01:15'), ('tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]', ['2026-01-01 01:05', -9.5, False], '2025-12-31 15:35'), ('tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]', ['2026-06-15 12:00', -5.5, False], '2026-06-15 06:30'), ('tide table zone time to utc [\"2026-06-15 12:00\", 0, true]', ['2026-06-15 12:00', 0, True], '2026-06-15 11:00'), ('tide table zone time to utc [\"2028-02-28 23:50\", 1, false]', ['2028-02-28 23:50', 1, False], '2028-02-29 00:50'), ('tide table zone time to utc [\"2026-09-10 13:45\", -10, false]', ['2026-09-10 13:45', -10, False], '2026-09-10 03:45')], [('tide table zone time to utc [\"2026-06-15 12:00\", 0, true]', ['2026-06-15 12:00', 0, True], '2026-06-15 11:00'), ('tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]', ['2026-06-15 12:00', -5.5, False], '2026-06-15 06:30'), ('tide table zone time to utc [\"2028-02-28 23:50\", 1, false]', ['2028-02-28 23:50', 1, False], '2028-02-29 00:50'), ('tide table zone time to utc [\"2026-09-10 13:45\", -10, false]', ['2026-09-10 13:45', -10, False], '2026-09-10 03:45'), ('tide table zone time to utc [\"2026-09-10 10:45\", 3.5, true]', ['2026-09-10 10:45', 3.5, True], '2026-09-10 13:15'), ('tide table zone time to utc [\"2026-05-05 05:05\", 0, false]', ['2026-05-05 05:05', 0, False], '2026-05-05 05:05'), ('tide table zone time to utc [\"2026-03-14 06:12\", 5, false]', ['2026-03-14 06:12', 5, False], '2026-03-14 11:12')], [('tide table zone time to utc [\"2026-09-10 10:45\", 3.5, true]', ['2026-09-10 10:45', 3.5, True], '2026-09-10 13:15'), ('tide table zone time to utc [\"2026-09-10 13:45\", -10, false]', ['2026-09-10 13:45', -10, False], '2026-09-10 03:45'), ('tide table zone time to utc [\"2026-05-05 05:05\", 0, false]', ['2026-05-05 05:05', 0, False], '2026-05-05 05:05'), ('tide table zone time to utc [\"2026-03-14 06:12\", 5, false]', ['2026-03-14 06:12', 5, False], '2026-03-14 11:12'), ('tide table zone time to utc [\"2026-03-14 21:40\", 5, false]', ['2026-03-14 21:40', 5, False], '2026-03-15 02:40'), ('tide table zone time to utc [\"2026-07-01 23:30\", 4, true]', ['2026-07-01 23:30', 4, True], '2026-07-02 02:30'), ('tide table zone time to utc [\"2026-07-01 00:20\", -2, true]', ['2026-07-01 00:20', -2, True], '2026-06-30 21:20')], [('tide table zone time to utc [\"2026-07-01 23:30\", 4, true]', ['2026-07-01 23:30', 4, True], '2026-07-02 02:30'), ('tide table zone time to utc [\"2026-03-14 06:12\", 5, false]', ['2026-03-14 06:12', 5, False], '2026-03-14 11:12'), ('tide table zone time to utc [\"2026-03-14 21:40\", 5, false]', ['2026-03-14 21:40', 5, False], '2026-03-15 02:40'), ('tide table zone time to utc [\"2026-07-01 00:20\", -2, true]', ['2026-07-01 00:20', -2, True], '2026-06-30 21:20'), ('tide table zone time to utc [\"2026-12-31 22:15\", 3, false]', ['2026-12-31 22:15', 3, False], '2027-01-01 01:15'), ('tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]', ['2026-01-01 01:05', -9.5, False], '2025-12-31 15:35'), ('tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]', ['2026-06-15 12:00', -5.5, False], '2026-06-15 06:30')]]\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":"5fa895d289c655e32500b8002ffcfa873be4e175da7c3d90c49b32121af5ee0d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport datetime\nN = 1\nobservations = []\ndef solve(x):\n    s,zd,dst=x\n    dt=datetime.datetime.strptime(s,'%Y-%m-%d %H:%M')\n    off=zd+(1 if dst else 0)\n    u=dt+datetime.timedelta(minutes=round(off*60))\n    return u.strftime('%Y-%m-%d %H:%M')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('tide table zone time to utc [\"2026-07-01 23:30\", 4, true]', ['2026-07-01 23:30', 4, True], '2026-07-02 02:30'), ('tide table zone time to utc [\"2026-03-14 06:12\", 5, false]', ['2026-03-14 06:12', 5, False], '2026-03-14 11:12'), ('tide table zone time to utc [\"2026-03-14 21:40\", 5, false]', ['2026-03-14 21:40', 5, False], '2026-03-15 02:40'), ('tide table zone time to utc [\"2026-07-01 00:20\", -2, true]', ['2026-07-01 00:20', -2, True], '2026-06-30 21:20'), ('tide table zone time to utc [\"2026-12-31 22:15\", 3, false]', ['2026-12-31 22:15', 3, False], '2027-01-01 01:15'), ('tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]', ['2026-01-01 01:05', -9.5, False], '2025-12-31 15:35'), ('tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]', ['2026-06-15 12:00', -5.5, False], '2026-06-15 06:30')], [('tide table zone time to utc [\"2026-07-01 00:20\", -2, true]', ['2026-07-01 00:20', -2, True], '2026-06-30 21:20'), ('tide table zone time to utc [\"2026-12-31 22:15\", 3, false]', ['2026-12-31 22:15', 3, False], '2027-01-01 01:15'), ('tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]', ['2026-01-01 01:05', -9.5, False], '2025-12-31 15:35'), ('tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]', ['2026-06-15 12:00', -5.5, False], '2026-06-15 06:30'), ('tide table zone time to utc [\"2026-06-15 12:00\", 0, true]', ['2026-06-15 12:00', 0, True], '2026-06-15 11:00'), ('tide table zone time to utc [\"2028-02-28 23:50\", 1, false]', ['2028-02-28 23:50', 1, False], '2028-02-29 00:50'), ('tide table zone time to utc [\"2026-09-10 13:45\", -10, false]', ['2026-09-10 13:45', -10, False], '2026-09-10 03:45')], [('tide table zone time to utc [\"2026-06-15 12:00\", 0, true]', ['2026-06-15 12:00', 0, True], '2026-06-15 11:00'), ('tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]', ['2026-06-15 12:00', -5.5, False], '2026-06-15 06:30'), ('tide table zone time to utc [\"2028-02-28 23:50\", 1, false]', ['2028-02-28 23:50', 1, False], '2028-02-29 00:50'), ('tide table zone time to utc [\"2026-09-10 13:45\", -10, false]', ['2026-09-10 13:45', -10, False], '2026-09-10 03:45'), ('tide table zone time to utc [\"2026-09-10 10:45\", 3.5, true]', ['2026-09-10 10:45', 3.5, True], '2026-09-10 13:15'), ('tide table zone time to utc [\"2026-05-05 05:05\", 0, false]', ['2026-05-05 05:05', 0, False], '2026-05-05 05:05'), ('tide table zone time to utc [\"2026-03-14 06:12\", 5, false]', ['2026-03-14 06:12', 5, False], '2026-03-14 11:12')], [('tide table zone time to utc [\"2026-09-10 10:45\", 3.5, true]', ['2026-09-10 10:45', 3.5, True], '2026-09-10 13:15'), ('tide table zone time to utc [\"2026-09-10 13:45\", -10, false]', ['2026-09-10 13:45', -10, False], '2026-09-10 03:45'), ('tide table zone time to utc [\"2026-05-05 05:05\", 0, false]', ['2026-05-05 05:05', 0, False], '2026-05-05 05:05'), ('tide table zone time to utc [\"2026-03-14 06:12\", 5, false]', ['2026-03-14 06:12', 5, False], '2026-03-14 11:12'), ('tide table zone time to utc [\"2026-03-14 21:40\", 5, false]', ['2026-03-14 21:40', 5, False], '2026-03-15 02:40'), ('tide table zone time to utc [\"2026-07-01 23:30\", 4, true]', ['2026-07-01 23:30', 4, True], '2026-07-02 02:30'), ('tide table zone time to utc [\"2026-07-01 00:20\", -2, true]', ['2026-07-01 00:20', -2, True], '2026-06-30 21:20')], [('tide table zone time to utc [\"2026-07-01 23:30\", 4, true]', ['2026-07-01 23:30', 4, True], '2026-07-02 02:30'), ('tide table zone time to utc [\"2026-03-14 06:12\", 5, false]', ['2026-03-14 06:12', 5, False], '2026-03-14 11:12'), ('tide table zone time to utc [\"2026-03-14 21:40\", 5, false]', ['2026-03-14 21:40', 5, False], '2026-03-15 02:40'), ('tide table zone time to utc [\"2026-07-01 00:20\", -2, true]', ['2026-07-01 00:20', -2, True], '2026-06-30 21:20'), ('tide table zone time to utc [\"2026-12-31 22:15\", 3, false]', ['2026-12-31 22:15', 3, False], '2027-01-01 01:15'), ('tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]', ['2026-01-01 01:05', -9.5, False], '2025-12-31 15:35'), ('tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]', ['2026-06-15 12:00', -5.5, False], '2026-06-15 06:30')]]\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":"A deterministic toy model with stipulated rules and constants; not certified hydrographic software or a substitute for official tide tables. 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-tide_and_marine_navigation_tables-zone_time-daylight-sign","generated_at":"2026-09-29T14:48:08.568735+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Tide tables and passage plans turn published predictions into go/no-go decisions about depth, clearance and timing.","root_cause":"The daylight hour is added to the offset instead of subtracted.","sha256":"d9db486a948b0c916bcaa1be21cb2563e2bb7af228790dccb75e40280e4853b9","title":"Tide table zone time to UTC: Daylight time adds an hour to UTC · 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":41.701,"exit_code":1,"observations":[{"actual":"2026-07-02 03:30","check":"tide table zone time to utc [\"2026-07-01 23:30\", 4, true]","expected":"2026-07-02 02:30","passed":false},{"actual":"2026-03-14 11:12","check":"tide table zone time to utc [\"2026-03-14 06:12\", 5, false]","expected":"2026-03-14 11:12","passed":true},{"actual":"2026-03-15 02:40","check":"tide table zone time to utc [\"2026-03-14 21:40\", 5, false]","expected":"2026-03-15 02:40","passed":true},{"actual":"2026-06-30 22:20","check":"tide table zone time to utc [\"2026-07-01 00:20\", -2, true]","expected":"2026-06-30 21:20","passed":false},{"actual":"2027-01-01 01:15","check":"tide table zone time to utc [\"2026-12-31 22:15\", 3, false]","expected":"2027-01-01 01:15","passed":true},{"actual":"2025-12-31 15:35","check":"tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]","expected":"2025-12-31 15:35","passed":true},{"actual":"2026-06-15 06:30","check":"tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]","expected":"2026-06-15 06:30","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"tide table zone time to utc [\\\"2026-07-01 23:30\\\", 4, true]\", \"actual\": \"2026-07-02 03:30\", \"expected\": \"2026-07-02 02:30\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-03-14 06:12\\\", 5, false]\", \"actual\": \"2026-03-14 11:12\", \"expected\": \"2026-03-14 11:12\", \"passed\": true}, {\"check\": \"tide table zone time to utc [\\\"2026-03-14 21:40\\\", 5, false]\", \"actual\": \"2026-03-15 02:40\", \"expected\": \"2026-03-15 02:40\", \"passed\": true}, {\"check\": \"tide table zone time to utc [\\\"2026-07-01 00:20\\\", -2, true]\", \"actual\": \"2026-06-30 22:20\", \"expected\": \"2026-06-30 21:20\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-12-31 22:15\\\", 3, false]\", \"actual\": \"2027-01-01 01:15\", \"expected\": \"2027-01-01 01:15\", \"passed\": true}, {\"check\": \"tide table zone time to utc [\\\"2026-01-01 01:05\\\", -9.5, false]\", \"actual\": \"2025-12-31 15:35\", \"expected\": \"2025-12-31 15:35\", \"passed\": true}, {\"check\": \"tide table zone time to utc [\\\"2026-06-15 12:00\\\", -5.5, false]\", \"actual\": \"2026-06-15 06:30\", \"expected\": \"2026-06-15 06:30\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.645,"exit_code":1,"observations":[{"actual":"2026-07-02 04:30","check":"tide table zone time to utc [\"2026-07-01 23:30\", 4, true]","expected":"2026-07-02 02:30","passed":false},{"actual":"2026-03-14 11:12","check":"tide table zone time to utc [\"2026-03-14 06:12\", 5, false]","expected":"2026-03-14 11:12","passed":true},{"actual":"2026-03-15 02:40","check":"tide table zone time to utc [\"2026-03-14 21:40\", 5, false]","expected":"2026-03-15 02:40","passed":true},{"actual":"2026-06-30 23:20","check":"tide table zone time to utc [\"2026-07-01 00:20\", -2, true]","expected":"2026-06-30 21:20","passed":false},{"actual":"2027-01-01 01:15","check":"tide table zone time to utc [\"2026-12-31 22:15\", 3, false]","expected":"2027-01-01 01:15","passed":true},{"actual":"2025-12-31 15:35","check":"tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]","expected":"2025-12-31 15:35","passed":true},{"actual":"2026-06-15 06:30","check":"tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]","expected":"2026-06-15 06:30","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"tide table zone time to utc [\\\"2026-07-01 23:30\\\", 4, true]\", \"actual\": \"2026-07-02 04:30\", \"expected\": \"2026-07-02 02:30\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-03-14 06:12\\\", 5, false]\", \"actual\": \"2026-03-14 11:12\", \"expected\": \"2026-03-14 11:12\", \"passed\": true}, {\"check\": \"tide table zone time to utc [\\\"2026-03-14 21:40\\\", 5, false]\", \"actual\": \"2026-03-15 02:40\", \"expected\": \"2026-03-15 02:40\", \"passed\": true}, {\"check\": \"tide table zone time to utc [\\\"2026-07-01 00:20\\\", -2, true]\", \"actual\": \"2026-06-30 23:20\", \"expected\": \"2026-06-30 21:20\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-12-31 22:15\\\", 3, false]\", \"actual\": \"2027-01-01 01:15\", \"expected\": \"2027-01-01 01:15\", \"passed\": true}, {\"check\": \"tide table zone time to utc [\\\"2026-01-01 01:05\\\", -9.5, false]\", \"actual\": \"2025-12-31 15:35\", \"expected\": \"2025-12-31 15:35\", \"passed\": true}, {\"check\": \"tide table zone time to utc [\\\"2026-06-15 12:00\\\", -5.5, false]\", \"actual\": \"2026-06-15 06:30\", \"expected\": \"2026-06-15 06:30\", \"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."}}