{"abstract":"Fast transits get far too little squat allowance.","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":"Using v**1.5 still under-reads squat at higher speeds.","family":"w2-tide_and_marine_navigation_tables-ukc-speed-exponent","id":"FA-68951","implementations":{"attempt":{"sha256":"f0435d4d027ef17cf26651ff73ff06f8d9282ee8ad69b9ab01b15345d6ee1e06","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**1.5/100\n    if confined: squat*=2\n    water=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 [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 [-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 [-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 [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 [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 [-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 [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 [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 [-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 [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 [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 [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":"9b54fa95d9b6cf59dda34bfbfd0fe1c6306c3171a5e8b73635fff20e8dad904a","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/100\n    if confined: squat*=2\n    water=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 [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 [-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 [-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 [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 [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 [-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 [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 [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 [-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 [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 [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 [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-speed-exponent","generated_at":"2026-09-29T14:48:06.985254+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":"Squat is computed as cb*v/100 instead of the square of speed.","sha256":"7568bbf00caedb6e8d0ce8b7f7bfa4ebc97301fefa8567f234b019db68697f89","title":"Under-keel clearance with squat: Squat grows linearly with speed · 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.599,"exit_code":1,"observations":[{"actual":[2.819,true],"check":"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]","expected":[2.488,true],"passed":false},{"actual":[2.638,true],"check":"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]","expected":[1.976,true],"passed":false},{"actual":[0.964,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":[1.088,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.879,true],"check":"under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]","expected":[2.705,true],"passed":false},{"actual":[2.481,true],"check":"under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]","expected":[1.36,true],"passed":false},{"actual":[2.709,true],"check":"under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]","expected":[1.992,true],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]\", \"actual\": [2.819, true], \"expected\": [2.488, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]\", \"actual\": [2.638, true], \"expected\": [1.976, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]\", \"actual\": [0.964, true], \"expected\": [0.928, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]\", \"actual\": [1.088, 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.879, true], \"expected\": [2.705, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]\", \"actual\": [2.481, true], \"expected\": [1.36, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]\", \"actual\": [2.709, true], \"expected\": [1.992, true], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.336,"exit_code":1,"observations":[{"actual":[2.936,true],"check":"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]","expected":[2.488,true],"passed":false},{"actual":[2.872,true],"check":"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]","expected":[1.976,true],"passed":false},{"actual":[0.982,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":[1.15,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.951,true],"check":"under-keel clearance with squat [9.0, 2.0, 8.0, 6, 0.82, false, 0.1]","expected":[2.705,true],"passed":false},{"actual":[2.836,true],"check":"under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]","expected":[1.36,true],"passed":false},{"actual":[2.916,true],"check":"under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]","expected":[1.992,true],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, false, 0.1]\", \"actual\": [2.936, true], \"expected\": [2.488, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [12.0, 1.5, 10.5, 8, 0.8, true, 0.1]\", \"actual\": [2.872, true], \"expected\": [1.976, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [-1.2, 3.8, 1.6, 4, 0.45, false, 0.2]\", \"actual\": [0.982, true], \"expected\": [0.928, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [-0.5, 2.9, 1.2, 5, 0.5, true, 0.15]\", \"actual\": [1.15, 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.951, true], \"expected\": [2.705, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [9.0, 2.0, 8.0, 10, 0.82, true, 0.1]\", \"actual\": [2.836, true], \"expected\": [1.36, true], \"passed\": false}, {\"check\": \"under-keel clearance with squat [15.0, 0.0, 12.0, 12, 0.7, false, 0.1]\", \"actual\": [2.916, true], \"expected\": [1.992, true], \"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."}}