{"abstract":"Vessels are cleared over banks that dry at low water.","category":"Tide and marine navigation tables","checks":7,"contract":"Input [charted, tide, draft, speed_kn, cb, confined, margin]. Charted value is depth below chart datum (negative means a drying height above datum). Squat = cb*speed^2/100 metres in open water and twice that when confined. UKC = charted+tide-draft-squat. Required clearance is margin*draft. Return [round(ukc,3), ukc>=required].","contract_signature":"x","evaluation_group":"w2-tide_and_marine_navigation_tables-ukc","failed_approach":"Subtracting the tide as well as the drying height double-counts the datum shift.","family":"w2-tide_and_marine_navigation_tables-ukc-drying-height-sign","id":"FA-68946","implementations":{"attempt":{"sha256":"31e8b2093c2e9b33d4dfd2649354a9323c8d17c7b940948f78e17fd5682b425c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    d,tide,draft,v,cb,confined,margin=x\n    squat=cb*v*v/100\n    if confined: squat*=2\n    water=d+tide if d>=0 else d-tide\n    ukc=water-draft-squat\n    return [round(ukc,3),ukc>=margin*draft]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]', [-1.2, 3.8, 1.6, 4, 0.45, False, 0.2], [0.928, True]), ('under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]', [12.0, 1.5, 10.5, 8, 0.8, False, 0.1], [2.488, True]), ('under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]', [12.0, 1.5, 10.5, 8, 0.8, True, 0.1], [1.976, True]), ('under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]', [-0.5, 2.9, 1.2, 5, 0.5, True, 0.15], [0.95, True]), ('under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]', [9.0, 2.0, 8.0, 6, 0.82, False, 0.1], [2.705, True]), ('under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]', [9.0, 2.0, 8.0, 10, 0.82, True, 0.1], [1.36, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]', [15.0, 0.0, 12.0, 12, 0.7, False, 0.1], [1.992, True])], [('under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]', [-0.5, 2.9, 1.2, 5, 0.5, True, 0.15], [0.95, True]), ('under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]', [9.0, 2.0, 8.0, 6, 0.82, False, 0.1], [2.705, True]), ('under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]', [9.0, 2.0, 8.0, 10, 0.82, True, 0.1], [1.36, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]', [15.0, 0.0, 12.0, 12, 0.7, False, 0.1], [1.992, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, true, 0.05]', [15.0, 0.0, 12.0, 12, 0.7, True, 0.05], [0.984, True]), ('under-keel clearance with squat [4.0, 1.0, 4.3, 0, 0.6, false, 0.1]', [4.0, 1.0, 4.3, 0, 0.6, False, 0.1], [0.7, True]), ('under-keel clearance with squat [5.0, 1.0, 5.0, 7, 0.5, false, 0.0]', [5.0, 1.0, 5.0, 7, 0.5, False, 0.0], [0.755, True])], [('under-keel clearance with squat [-2.0, 4.5, 1.0, 3, 0.4, false, 0.2]', [-2.0, 4.5, 1.0, 3, 0.4, False, 0.2], [1.464, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]', [15.0, 0.0, 12.0, 12, 0.7, False, 0.1], [1.992, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, true, 0.05]', [15.0, 0.0, 12.0, 12, 0.7, True, 0.05], [0.984, True]), ('under-keel clearance with squat [4.0, 1.0, 4.3, 0, 0.6, false, 0.1]', [4.0, 1.0, 4.3, 0, 0.6, False, 0.1], [0.7, True]), ('under-keel clearance with squat [5.0, 1.0, 5.0, 7, 0.5, false, 0.0]', [5.0, 1.0, 5.0, 7, 0.5, False, 0.0], [0.755, True]), ('under-keel clearance with squat [8.0, 1.0, 7.0, 5, 0.75, false, 0.1]', [8.0, 1.0, 7.0, 5, 0.75, False, 0.1], [1.812, True]), ('under-keel clearance with squat [11.0, 0.3, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.3, 10.0, 5, 0.8, False, 0.1], [1.1, True])], [('under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]', [-1.2, 3.8, 1.6, 4, 0.45, False, 0.2], [0.928, True]), ('under-keel clearance with squat [5.0, 1.0, 5.0, 7, 0.5, false, 0.0]', [5.0, 1.0, 5.0, 7, 0.5, False, 0.0], [0.755, True]), ('under-keel clearance with squat [-2.0, 4.5, 1.0, 3, 0.4, false, 0.2]', [-2.0, 4.5, 1.0, 3, 0.4, False, 0.2], [1.464, True]), ('under-keel clearance with squat [8.0, 1.0, 7.0, 5, 0.75, false, 0.1]', [8.0, 1.0, 7.0, 5, 0.75, False, 0.1], [1.812, True]), ('under-keel clearance with squat [11.0, 0.3, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.3, 10.0, 5, 0.8, False, 0.1], [1.1, True]), ('under-keel clearance with squat [11.0, 0.21, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.21, 10.0, 5, 0.8, False, 0.1], [1.01, True]), ('under-keel clearance with squat [6.0, 0.9, 6.0, 5, 0.8, false, 0.1]', [6.0, 0.9, 6.0, 5, 0.8, False, 0.1], [0.7, True])], [('under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]', [-0.5, 2.9, 1.2, 5, 0.5, True, 0.15], [0.95, True]), ('under-keel clearance with squat [11.0, 0.3, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.3, 10.0, 5, 0.8, False, 0.1], [1.1, True]), ('under-keel clearance with squat [11.0, 0.21, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.21, 10.0, 5, 0.8, False, 0.1], [1.01, True]), ('under-keel clearance with squat [6.0, 0.9, 6.0, 5, 0.8, false, 0.1]', [6.0, 0.9, 6.0, 5, 0.8, False, 0.1], [0.7, True]), ('under-keel clearance with squat [4.0, 1.0, 4.0, 0, 0.7, false, 0.25]', [4.0, 1.0, 4.0, 0, 0.7, False, 0.25], [1.0, True]), ('under-keel clearance with squat [4.0, 0.97, 4.0, 0, 0.7, false, 0.25]', [4.0, 0.97, 4.0, 0, 0.7, False, 0.25], [0.97, False]), ('under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]', [12.0, 1.5, 10.5, 8, 0.8, False, 0.1], [2.488, True])]]\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":"db31357ab42feb038ab385bd233f02988ca1fffafb047550e521c2b12509641c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    d,tide,draft,v,cb,confined,margin=x\n    squat=cb*v*v/100\n    if confined: squat*=2\n    water=abs(d)+tide\n    ukc=water-draft-squat\n    return [round(ukc,3),ukc>=margin*draft]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]', [-1.2, 3.8, 1.6, 4, 0.45, False, 0.2], [0.928, True]), ('under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]', [12.0, 1.5, 10.5, 8, 0.8, False, 0.1], [2.488, True]), ('under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]', [12.0, 1.5, 10.5, 8, 0.8, True, 0.1], [1.976, True]), ('under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]', [-0.5, 2.9, 1.2, 5, 0.5, True, 0.15], [0.95, True]), ('under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]', [9.0, 2.0, 8.0, 6, 0.82, False, 0.1], [2.705, True]), ('under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]', [9.0, 2.0, 8.0, 10, 0.82, True, 0.1], [1.36, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]', [15.0, 0.0, 12.0, 12, 0.7, False, 0.1], [1.992, True])], [('under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]', [-0.5, 2.9, 1.2, 5, 0.5, True, 0.15], [0.95, True]), ('under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]', [9.0, 2.0, 8.0, 6, 0.82, False, 0.1], [2.705, True]), ('under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]', [9.0, 2.0, 8.0, 10, 0.82, True, 0.1], [1.36, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]', [15.0, 0.0, 12.0, 12, 0.7, False, 0.1], [1.992, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, true, 0.05]', [15.0, 0.0, 12.0, 12, 0.7, True, 0.05], [0.984, True]), ('under-keel clearance with squat [4.0, 1.0, 4.3, 0, 0.6, false, 0.1]', [4.0, 1.0, 4.3, 0, 0.6, False, 0.1], [0.7, True]), ('under-keel clearance with squat [5.0, 1.0, 5.0, 7, 0.5, false, 0.0]', [5.0, 1.0, 5.0, 7, 0.5, False, 0.0], [0.755, True])], [('under-keel clearance with squat [-2.0, 4.5, 1.0, 3, 0.4, false, 0.2]', [-2.0, 4.5, 1.0, 3, 0.4, False, 0.2], [1.464, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]', [15.0, 0.0, 12.0, 12, 0.7, False, 0.1], [1.992, True]), ('under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, true, 0.05]', [15.0, 0.0, 12.0, 12, 0.7, True, 0.05], [0.984, True]), ('under-keel clearance with squat [4.0, 1.0, 4.3, 0, 0.6, false, 0.1]', [4.0, 1.0, 4.3, 0, 0.6, False, 0.1], [0.7, True]), ('under-keel clearance with squat [5.0, 1.0, 5.0, 7, 0.5, false, 0.0]', [5.0, 1.0, 5.0, 7, 0.5, False, 0.0], [0.755, True]), ('under-keel clearance with squat [8.0, 1.0, 7.0, 5, 0.75, false, 0.1]', [8.0, 1.0, 7.0, 5, 0.75, False, 0.1], [1.812, True]), ('under-keel clearance with squat [11.0, 0.3, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.3, 10.0, 5, 0.8, False, 0.1], [1.1, True])], [('under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]', [-1.2, 3.8, 1.6, 4, 0.45, False, 0.2], [0.928, True]), ('under-keel clearance with squat [5.0, 1.0, 5.0, 7, 0.5, false, 0.0]', [5.0, 1.0, 5.0, 7, 0.5, False, 0.0], [0.755, True]), ('under-keel clearance with squat [-2.0, 4.5, 1.0, 3, 0.4, false, 0.2]', [-2.0, 4.5, 1.0, 3, 0.4, False, 0.2], [1.464, True]), ('under-keel clearance with squat [8.0, 1.0, 7.0, 5, 0.75, false, 0.1]', [8.0, 1.0, 7.0, 5, 0.75, False, 0.1], [1.812, True]), ('under-keel clearance with squat [11.0, 0.3, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.3, 10.0, 5, 0.8, False, 0.1], [1.1, True]), ('under-keel clearance with squat [11.0, 0.21, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.21, 10.0, 5, 0.8, False, 0.1], [1.01, True]), ('under-keel clearance with squat [6.0, 0.9, 6.0, 5, 0.8, false, 0.1]', [6.0, 0.9, 6.0, 5, 0.8, False, 0.1], [0.7, True])], [('under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]', [-0.5, 2.9, 1.2, 5, 0.5, True, 0.15], [0.95, True]), ('under-keel clearance with squat [11.0, 0.3, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.3, 10.0, 5, 0.8, False, 0.1], [1.1, True]), ('under-keel clearance with squat [11.0, 0.21, 10.0, 5, 0.8, false, 0.1]', [11.0, 0.21, 10.0, 5, 0.8, False, 0.1], [1.01, True]), ('under-keel clearance with squat [6.0, 0.9, 6.0, 5, 0.8, false, 0.1]', [6.0, 0.9, 6.0, 5, 0.8, False, 0.1], [0.7, True]), ('under-keel clearance with squat [4.0, 1.0, 4.0, 0, 0.7, false, 0.25]', [4.0, 1.0, 4.0, 0, 0.7, False, 0.25], [1.0, True]), ('under-keel clearance with squat [4.0, 0.97, 4.0, 0, 0.7, false, 0.25]', [4.0, 0.97, 4.0, 0, 0.7, False, 0.25], [0.97, False]), ('under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]', [12.0, 1.5, 10.5, 8, 0.8, False, 0.1], [2.488, True])]]\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-ukc-drying-height-sign","generated_at":"2026-09-29T14:48:06.898210+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":"A negative charted drying height is treated as a positive depth via abs().","sha256":"7f3ec57569a65cc1889afa0131cfcfbf5494e0ff5cc66e71df6766121057d293","title":"Under-keel clearance with squat: Drying heights are added as depth · 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":39.078,"exit_code":1,"observations":[{"actual":[-6.672,false],"check":"under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]","expected":[0.928,true],"passed":false},{"actual":[2.488,true],"check":"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]","expected":[2.488,true],"passed":true},{"actual":[1.976,true],"check":"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]","expected":[1.976,true],"passed":true},{"actual":[-4.85,false],"check":"under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]","expected":[0.95,true],"passed":false},{"actual":[2.705,true],"check":"under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]","expected":[2.705,true],"passed":true},{"actual":[1.36,true],"check":"under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]","expected":[1.36,true],"passed":true},{"actual":[1.992,true],"check":"under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]","expected":[1.992,true],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]\", \"actual\": [-6.672, false], \"expected\": [0.928, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]\", \"actual\": [2.488, true], \"expected\": [2.488, true], \"passed\": true}, {\"check\": \"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]\", \"actual\": [1.976, true], \"expected\": [1.976, true], \"passed\": true}, {\"check\": \"under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]\", \"actual\": [-4.85, false], \"expected\": [0.95, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]\", \"actual\": [2.705, true], \"expected\": [2.705, true], \"passed\": true}, {\"check\": \"under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]\", \"actual\": [1.36, true], \"expected\": [1.36, true], \"passed\": true}, {\"check\": \"under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]\", \"actual\": [1.992, true], \"expected\": [1.992, true], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.334,"exit_code":1,"observations":[{"actual":[3.328,true],"check":"under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]","expected":[0.928,true],"passed":false},{"actual":[2.488,true],"check":"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]","expected":[2.488,true],"passed":true},{"actual":[1.976,true],"check":"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]","expected":[1.976,true],"passed":true},{"actual":[1.95,true],"check":"under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]","expected":[0.95,true],"passed":false},{"actual":[2.705,true],"check":"under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]","expected":[2.705,true],"passed":true},{"actual":[1.36,true],"check":"under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]","expected":[1.36,true],"passed":true},{"actual":[1.992,true],"check":"under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]","expected":[1.992,true],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]\", \"actual\": [3.328, true], \"expected\": [0.928, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]\", \"actual\": [2.488, true], \"expected\": [2.488, true], \"passed\": true}, {\"check\": \"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]\", \"actual\": [1.976, true], \"expected\": [1.976, true], \"passed\": true}, {\"check\": \"under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]\", \"actual\": [1.95, true], \"expected\": [0.95, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]\", \"actual\": [2.705, true], \"expected\": [2.705, true], \"passed\": true}, {\"check\": \"under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]\", \"actual\": [1.36, true], \"expected\": [1.36, true], \"passed\": true}, {\"check\": \"under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]\", \"actual\": [1.992, true], \"expected\": [1.992, true], \"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."}}