{"abstract":"UTC times are off by twice the zone description.","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":"Negating zd but keeping the daylight hour subtraction still reverses the zone.","family":"w2-tide_and_marine_navigation_tables-zone_time-zone-sign","id":"FA-69116","implementations":{"attempt":{"sha256":"2b5f38a9d440e881c2980a72fcfa290132634dcc385e2767485bd5c508615b3a","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))+ (2 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-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-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-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-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-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-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-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-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-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-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-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-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-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":"0ec557ee8052e64a8c4b96f587d5b14d1d1364a59749ba5e892dcabf561adc7c","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-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-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-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-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-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-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-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-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-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-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-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-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-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-zone-sign","generated_at":"2026-09-29T14:48:08.494484+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 zone description is applied as UTC = local - zd.","sha256":"e346fefec388b855882788d6e5db13fbb3882a69903ced3b5b58d24a079d04ce","title":"Tide table zone time to UTC: Zone description is subtracted · 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":42.086,"exit_code":1,"observations":[{"actual":"2026-03-14 01:12","check":"tide table zone time to utc [\"2026-03-14 06:12\", 5, false]","expected":"2026-03-14 11:12","passed":false},{"actual":"2026-03-14 16:40","check":"tide table zone time to utc [\"2026-03-14 21:40\", 5, false]","expected":"2026-03-15 02:40","passed":false},{"actual":"2026-07-01 22: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-07-01 05:20","check":"tide table zone time to utc [\"2026-07-01 00:20\", -2, true]","expected":"2026-06-30 21:20","passed":false},{"actual":"2026-12-31 19:15","check":"tide table zone time to utc [\"2026-12-31 22:15\", 3, false]","expected":"2027-01-01 01:15","passed":false},{"actual":"2026-01-01 10:35","check":"tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]","expected":"2025-12-31 15:35","passed":false},{"actual":"2026-06-15 17:30","check":"tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]","expected":"2026-06-15 06:30","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"tide table zone time to utc [\\\"2026-03-14 06:12\\\", 5, false]\", \"actual\": \"2026-03-14 01:12\", \"expected\": \"2026-03-14 11:12\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-03-14 21:40\\\", 5, false]\", \"actual\": \"2026-03-14 16:40\", \"expected\": \"2026-03-15 02:40\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-07-01 23:30\\\", 4, true]\", \"actual\": \"2026-07-01 22:30\", \"expected\": \"2026-07-02 02:30\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-07-01 00:20\\\", -2, true]\", \"actual\": \"2026-07-01 05:20\", \"expected\": \"2026-06-30 21:20\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-12-31 22:15\\\", 3, false]\", \"actual\": \"2026-12-31 19:15\", \"expected\": \"2027-01-01 01:15\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-01-01 01:05\\\", -9.5, false]\", \"actual\": \"2026-01-01 10:35\", \"expected\": \"2025-12-31 15:35\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-06-15 12:00\\\", -5.5, false]\", \"actual\": \"2026-06-15 17:30\", \"expected\": \"2026-06-15 06:30\", \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.319,"exit_code":1,"observations":[{"actual":"2026-03-14 01:12","check":"tide table zone time to utc [\"2026-03-14 06:12\", 5, false]","expected":"2026-03-14 11:12","passed":false},{"actual":"2026-03-14 16:40","check":"tide table zone time to utc [\"2026-03-14 21:40\", 5, false]","expected":"2026-03-15 02:40","passed":false},{"actual":"2026-07-01 18: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-07-01 01:20","check":"tide table zone time to utc [\"2026-07-01 00:20\", -2, true]","expected":"2026-06-30 21:20","passed":false},{"actual":"2026-12-31 19:15","check":"tide table zone time to utc [\"2026-12-31 22:15\", 3, false]","expected":"2027-01-01 01:15","passed":false},{"actual":"2026-01-01 10:35","check":"tide table zone time to utc [\"2026-01-01 01:05\", -9.5, false]","expected":"2025-12-31 15:35","passed":false},{"actual":"2026-06-15 17:30","check":"tide table zone time to utc [\"2026-06-15 12:00\", -5.5, false]","expected":"2026-06-15 06:30","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"tide table zone time to utc [\\\"2026-03-14 06:12\\\", 5, false]\", \"actual\": \"2026-03-14 01:12\", \"expected\": \"2026-03-14 11:12\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-03-14 21:40\\\", 5, false]\", \"actual\": \"2026-03-14 16:40\", \"expected\": \"2026-03-15 02:40\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-07-01 23:30\\\", 4, true]\", \"actual\": \"2026-07-01 18:30\", \"expected\": \"2026-07-02 02:30\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-07-01 00:20\\\", -2, true]\", \"actual\": \"2026-07-01 01:20\", \"expected\": \"2026-06-30 21:20\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-12-31 22:15\\\", 3, false]\", \"actual\": \"2026-12-31 19:15\", \"expected\": \"2027-01-01 01:15\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-01-01 01:05\\\", -9.5, false]\", \"actual\": \"2026-01-01 10:35\", \"expected\": \"2025-12-31 15:35\", \"passed\": false}, {\"check\": \"tide table zone time to utc [\\\"2026-06-15 12:00\\\", -5.5, false]\", \"actual\": \"2026-06-15 17:30\", \"expected\": \"2026-06-15 06:30\", \"passed\": false}], \"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."}}