{"abstract":"Rupture-length magnitudes are nonsensical, around 1 to 6 units off.","category":"Seismic magnitude estimation","checks":8,"contract":"Regression M = a + b log10(L km) by slip type: SS (5.16, 1.12), R (5.00, 1.22), N (4.86, 1.32), ALL (5.08, 1.16); unknown type or non-positive length returns None. Round to 0.01.","contract_signature":"kind, length_km","evaluation_group":"w2-seismic_magnitude_estimation-rupture-length-mw","failed_approach":"Always using the ALL coefficients ignores the slip type.","family":"w2-seismic_magnitude_estimation-rupture-length-mw-slip-type-coefficients","id":"FA-71831","implementations":{"attempt":{"sha256":"749863e2c4f483ef69111206fb2ade573ef66110bdc436cdca91b55839506942","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, length_km):\n    coef = {\"SS\": (5.16, 1.12), \"R\": (5.00, 1.22), \"N\": (4.86, 1.32), \"ALL\": (5.08, 1.16)}\n    if kind not in coef or length_km <= 0:\n        return None\n    a, b = coef[\"ALL\"]\n    return round(a + b * math.log10(length_km), 2)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['SS rupture 0.5 km', ['SS', 0.5], 4.82], ['SS rupture 5.0 km', ['SS', 5.0], 5.94], ['SS rupture 40.0 km', ['SS', 40.0], 6.95], ['SS rupture 350.0 km', ['SS', 350.0], 8.01], ['SS rupture 0.0 km', ['SS', 0.0], None], ['R rupture 0.5 km', ['R', 0.5], 4.63], ['R rupture 5.0 km', ['R', 5.0], 5.85], ['R rupture 40.0 km', ['R', 40.0], 6.95]], [['SS rupture 350.0 km', ['SS', 350.0], 8.01], ['R rupture 40.0 km', ['R', 40.0], 6.95], ['R rupture 350.0 km', ['R', 350.0], 8.1], ['R rupture 0.0 km', ['R', 0.0], None], ['N rupture 0.5 km', ['N', 0.5], 4.46], ['N rupture 5.0 km', ['N', 5.0], 5.78], ['N rupture 40.0 km', ['N', 40.0], 6.97], ['N rupture 350.0 km', ['N', 350.0], 8.22]], [['R rupture 40.0 km', ['R', 40.0], 6.95], ['N rupture 350.0 km', ['N', 350.0], 8.22], ['N rupture 0.0 km', ['N', 0.0], None], ['ALL rupture 0.5 km', ['ALL', 0.5], 4.73], ['ALL rupture 5.0 km', ['ALL', 5.0], 5.89], ['ALL rupture 40.0 km', ['ALL', 40.0], 6.94], ['ALL rupture 350.0 km', ['ALL', 350.0], 8.03], ['ALL rupture 0.0 km', ['ALL', 0.0], None]], [['SS rupture 0.5 km', ['SS', 0.5], 4.82], ['SS rupture 5.0 km', ['SS', 5.0], 5.94], ['R rupture 0.5 km', ['R', 0.5], 4.63], ['N rupture 5.0 km', ['N', 5.0], 5.78], ['oblique rupture 5.0 km', ['oblique', 5.0], None], ['oblique rupture 40.0 km', ['oblique', 40.0], None], ['oblique rupture 350.0 km', ['oblique', 350.0], None], ['oblique rupture 0.0 km', ['oblique', 0.0], None]], [['SS rupture 350.0 km', ['SS', 350.0], 8.01], ['SS rupture 0.0 km', ['SS', 0.0], None], ['R rupture 0.5 km', ['R', 0.5], 4.63], ['R rupture 5.0 km', ['R', 5.0], 5.85], ['R rupture 40.0 km', ['R', 40.0], 6.95], ['R rupture 350.0 km', ['R', 350.0], 8.1], ['N rupture 5.0 km', ['N', 5.0], 5.78], ['ALL rupture 0.5 km', ['ALL', 0.5], 4.73]]]\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":"72d01dab3a03562eb51116c2def702ef1226894ac80676730c22f569b8018426","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(kind, length_km):\n    coef = {\"SS\": (5.16, 1.12), \"R\": (5.00, 1.22), \"N\": (4.86, 1.32), \"ALL\": (5.08, 1.16)}\n    if kind not in coef or length_km <= 0:\n        return None\n    b, a = coef[kind]\n    return round(a + b * math.log10(length_km), 2)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['SS rupture 0.5 km', ['SS', 0.5], 4.82], ['SS rupture 5.0 km', ['SS', 5.0], 5.94], ['SS rupture 40.0 km', ['SS', 40.0], 6.95], ['SS rupture 350.0 km', ['SS', 350.0], 8.01], ['SS rupture 0.0 km', ['SS', 0.0], None], ['R rupture 0.5 km', ['R', 0.5], 4.63], ['R rupture 5.0 km', ['R', 5.0], 5.85], ['R rupture 40.0 km', ['R', 40.0], 6.95]], [['SS rupture 350.0 km', ['SS', 350.0], 8.01], ['R rupture 40.0 km', ['R', 40.0], 6.95], ['R rupture 350.0 km', ['R', 350.0], 8.1], ['R rupture 0.0 km', ['R', 0.0], None], ['N rupture 0.5 km', ['N', 0.5], 4.46], ['N rupture 5.0 km', ['N', 5.0], 5.78], ['N rupture 40.0 km', ['N', 40.0], 6.97], ['N rupture 350.0 km', ['N', 350.0], 8.22]], [['R rupture 40.0 km', ['R', 40.0], 6.95], ['N rupture 350.0 km', ['N', 350.0], 8.22], ['N rupture 0.0 km', ['N', 0.0], None], ['ALL rupture 0.5 km', ['ALL', 0.5], 4.73], ['ALL rupture 5.0 km', ['ALL', 5.0], 5.89], ['ALL rupture 40.0 km', ['ALL', 40.0], 6.94], ['ALL rupture 350.0 km', ['ALL', 350.0], 8.03], ['ALL rupture 0.0 km', ['ALL', 0.0], None]], [['SS rupture 0.5 km', ['SS', 0.5], 4.82], ['SS rupture 5.0 km', ['SS', 5.0], 5.94], ['R rupture 0.5 km', ['R', 0.5], 4.63], ['N rupture 5.0 km', ['N', 5.0], 5.78], ['oblique rupture 5.0 km', ['oblique', 5.0], None], ['oblique rupture 40.0 km', ['oblique', 40.0], None], ['oblique rupture 350.0 km', ['oblique', 350.0], None], ['oblique rupture 0.0 km', ['oblique', 0.0], None]], [['SS rupture 350.0 km', ['SS', 350.0], 8.01], ['SS rupture 0.0 km', ['SS', 0.0], None], ['R rupture 0.5 km', ['R', 0.5], 4.63], ['R rupture 5.0 km', ['R', 5.0], 5.85], ['R rupture 40.0 km', ['R', 40.0], 6.95], ['R rupture 350.0 km', ['R', 350.0], 8.1], ['N rupture 5.0 km', ['N', 5.0], 5.78], ['ALL rupture 0.5 km', ['ALL', 0.5], 4.73]]]\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 deterministic teaching model of a seismological magnitude procedure; constants and tables are fixed by the contract and no claim of agency or standards conformance is made. 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-seismic_magnitude_estimation-rupture-length-mw-slip-type-coefficients","generated_at":"2026-09-29T14:48:33.115706+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Paleoseismic studies estimate prehistoric magnitudes from mapped rupture lengths.","root_cause":"Intercept and slope are unpacked in the wrong order.","sha256":"0886bfdbe5bcd2514866d7b73bfca95807efc1f6acac0dacc6102735669732da","title":"Magnitude from surface rupture length: slip type coefficients · 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":36.761,"exit_code":1,"observations":[{"actual":4.73,"check":"SS rupture 0.5 km","expected":4.82,"passed":false},{"actual":5.89,"check":"SS rupture 5.0 km","expected":5.94,"passed":false},{"actual":6.94,"check":"SS rupture 40.0 km","expected":6.95,"passed":false},{"actual":8.03,"check":"SS rupture 350.0 km","expected":8.01,"passed":false},{"actual":null,"check":"SS rupture 0.0 km","expected":null,"passed":true},{"actual":4.73,"check":"R rupture 0.5 km","expected":4.63,"passed":false},{"actual":5.89,"check":"R rupture 5.0 km","expected":5.85,"passed":false},{"actual":6.94,"check":"R rupture 40.0 km","expected":6.95,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"SS rupture 0.5 km\", \"actual\": 4.73, \"expected\": 4.82, \"passed\": false}, {\"check\": \"SS rupture 5.0 km\", \"actual\": 5.89, \"expected\": 5.94, \"passed\": false}, {\"check\": \"SS rupture 40.0 km\", \"actual\": 6.94, \"expected\": 6.95, \"passed\": false}, {\"check\": \"SS rupture 350.0 km\", \"actual\": 8.03, \"expected\": 8.01, \"passed\": false}, {\"check\": \"SS rupture 0.0 km\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"R rupture 0.5 km\", \"actual\": 4.73, \"expected\": 4.63, \"passed\": false}, {\"check\": \"R rupture 5.0 km\", \"actual\": 5.89, \"expected\": 5.85, \"passed\": false}, {\"check\": \"R rupture 40.0 km\", \"actual\": 6.94, \"expected\": 6.95, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":36.906,"exit_code":1,"observations":[{"actual":-0.43,"check":"SS rupture 0.5 km","expected":4.82,"passed":false},{"actual":4.73,"check":"SS rupture 5.0 km","expected":5.94,"passed":false},{"actual":9.39,"check":"SS rupture 40.0 km","expected":6.95,"passed":false},{"actual":14.25,"check":"SS rupture 350.0 km","expected":8.01,"passed":false},{"actual":null,"check":"SS rupture 0.0 km","expected":null,"passed":true},{"actual":-0.29,"check":"R rupture 0.5 km","expected":4.63,"passed":false},{"actual":4.71,"check":"R rupture 5.0 km","expected":5.85,"passed":false},{"actual":9.23,"check":"R rupture 40.0 km","expected":6.95,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"SS rupture 0.5 km\", \"actual\": -0.43, \"expected\": 4.82, \"passed\": false}, {\"check\": \"SS rupture 5.0 km\", \"actual\": 4.73, \"expected\": 5.94, \"passed\": false}, {\"check\": \"SS rupture 40.0 km\", \"actual\": 9.39, \"expected\": 6.95, \"passed\": false}, {\"check\": \"SS rupture 350.0 km\", \"actual\": 14.25, \"expected\": 8.01, \"passed\": false}, {\"check\": \"SS rupture 0.0 km\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"R rupture 0.5 km\", \"actual\": -0.29, \"expected\": 4.63, \"passed\": false}, {\"check\": \"R rupture 5.0 km\", \"actual\": 4.71, \"expected\": 5.85, \"passed\": false}, {\"check\": \"R rupture 40.0 km\", \"actual\": 9.23, \"expected\": 6.95, \"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."}}