{"abstract":"Mid-elevation Haines values disagree with the published mid variant.","category":"Weather index computation","checks":8,"contract":"temps/dews map pressure level (hPa) to degC. low: stability T950-T850 (<=3:1, <=7:2, else 3), moisture T850-Td850 (<=5:1, <=9:2, else 3); mid: T850-T700 (<=5, <=10), T850-Td850 (<=5, <=12); high: T700-T500 (<=17, <=21), T700-Td700 (<=14, <=20). Unknown elevation returns None. Return [sum, label] with 2-3 very low, 4 low, 5 moderate, 6 high.","contract_signature":"elev, temps, dews","evaluation_group":"w2-weather_index_computation-haines-index","failed_approach":"Mixing T850 with Td700 is not a dew-point depression at any level.","family":"w2-weather_index_computation-haines-index-mid-elevation-moisture-level","id":"FA-71136","implementations":{"attempt":{"sha256":"7b10ab3e74b8b9f143cde15a4c23e0e7b111edc0ef5b8ac6c570f537c1319b96","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(elev, temps, dews):\n    levels = {\"low\": (950, 850, 850, 850, (3, 7), (5, 9)),\n              \"mid\": (850, 700, 850, 700, (5, 10), (5, 12)),\n              \"high\": (700, 500, 700, 700, (17, 21), (14, 20))}\n    if elev not in levels:\n        return None\n    lo, up, tm, dm, (a1, a2), (b1, b2) = levels[elev]\n    stab = temps[lo] - temps[up]\n    moist = temps[tm] - dews[dm]\n    sa = 1 if stab <= a1 else 2 if stab <= a2 else 3\n    sb = 1 if moist <= b1 else 2 if moist <= b2 else 3\n    total = sa + sb\n    label = \"very low\" if total <= 3 else \"low\" if total == 4 else \"moderate\" if total == 5 else \"high\"\n    return [total, label]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['low elevation sounding', ['low', {950: 13, 850: 9, 700: 3, 500: -20}, {850: 1, 700: -6}], [4, 'low']], ['low elevation sounding', ['low', {950: 12, 850: 1, 700: -5, 500: -24}, {850: -11, 700: -17}], [6, 'high']], ['low elevation sounding', ['low', {950: 13, 850: 8, 700: 3, 500: -22}, {850: -2, 700: -8}], [5, 'moderate']], ['low elevation sounding', ['low', {950: 18, 850: 10, 700: -4, 500: -26}, {850: -6, 700: -8}], [6, 'high']], ['low elevation sounding', ['low', {950: 15, 850: 10, 700: 6, 500: -6}, {850: 8, 700: 3}], [3, 'very low']], ['low elevation sounding', ['low', {950: 29, 850: 22, 700: 20, 500: 7}, {850: 14, 700: 14}], [4, 'low']], ['low elevation sounding', ['low', {950: 22, 850: 13, 700: 2, 500: -24}, {850: -1, 700: -17}], [6, 'high']], ['mid elevation sounding', ['mid', {950: 24, 850: 12, 700: 9, 500: -12}, {850: 8, 700: -6}], [2, 'very low']]], [['low elevation sounding', ['low', {950: 13, 850: 13, 700: 2, 500: -19}, {850: 2, 700: -3}], [4, 'low']], ['low elevation sounding', ['low', {950: 13, 850: 1, 700: -9, 500: -31}, {850: -5, 700: -17}], [5, 'moderate']], ['low elevation sounding', ['low', {950: 24, 850: 21, 700: 12, 500: -12}, {850: 12, 700: -4}], [3, 'very low']], ['low elevation sounding', ['low', {950: 18, 850: 18, 700: 15, 500: -10}, {850: 16, 700: 7}], [2, 'very low']], ['low elevation sounding', ['low', {950: 18, 850: 18, 700: 16, 500: 2}, {850: 5, 700: 13}], [4, 'low']], ['low elevation sounding', ['low', {950: 26, 850: 27, 700: 19, 500: 0}, {850: 22, 700: 2}], [2, 'very low']], ['mid elevation sounding', ['mid', {950: 18, 850: 10, 700: 4, 500: -16}, {850: 4, 700: 3}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 13, 850: 15, 700: 11, 500: -13}, {850: 9, 700: 11}], [3, 'very low']]], [['mid elevation sounding', ['mid', {950: 23, 850: 23, 700: 17, 500: -2}, {850: 11, 700: 10}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 24, 850: 12, 700: 9, 500: -12}, {850: 8, 700: -6}], [2, 'very low']], ['mid elevation sounding', ['mid', {950: 18, 850: 7, 700: 5, 500: -20}, {850: -5, 700: -8}], [3, 'very low']], ['mid elevation sounding', ['mid', {950: 10, 850: 2, 700: -11, 500: -32}, {850: -9, 700: -26}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 18, 850: 10, 700: 4, 500: -16}, {850: 4, 700: 3}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 30, 850: 18, 700: 4, 500: -12}, {850: 15, 700: -8}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 17, 850: 12, 700: -3, 500: -23}, {850: 4, 700: -8}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 22, 850: 15, 700: 6, 500: -20}, {850: 14, 700: -1}], [3, 'very low']]], [['mid elevation sounding', ['mid', {950: 10, 850: 2, 700: -11, 500: -32}, {850: -9, 700: -26}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 28, 850: 22, 700: 12, 500: -14}, {850: 11, 700: 4}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 13, 850: 15, 700: 11, 500: -13}, {850: 9, 700: 11}], [3, 'very low']], ['mid elevation sounding', ['mid', {950: 17, 850: 12, 700: -3, 500: -23}, {850: 4, 700: -8}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 17, 850: 14, 700: 3, 500: -19}, {850: 4, 700: -6}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 21, 850: 23, 700: 13, 500: -13}, {850: 18, 700: -3}], [3, 'very low']], ['mid elevation sounding', ['mid', {950: 30, 850: 27, 700: 20, 500: 1}, {850: 15, 700: 13}], [4, 'low']], ['mid strong inversion', ['mid', {950: 10, 850: 4, 700: 12, 500: -8}, {850: 0, 700: 3}], [2, 'very low']]], [['mid elevation sounding', ['mid', {950: 10, 850: 2, 700: -11, 500: -32}, {850: -9, 700: -26}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 17, 850: 14, 700: 3, 500: -19}, {850: 4, 700: -6}], [5, 'moderate']], ['high elevation sounding', ['high', {950: 30, 850: 20, 700: 11, 500: -13}, {850: 10, 700: 9}], [4, 'low']], ['high elevation sounding', ['high', {950: 18, 850: 18, 700: 14, 500: -1}, {850: 17, 700: -8}], [4, 'low']], ['high elevation sounding', ['high', {950: 14, 850: 11, 700: 5, 500: -14}, {850: -3, 700: 1}], [3, 'very low']], ['high elevation sounding', ['high', {950: 27, 850: 18, 700: 16, 500: -8}, {850: 15, 700: 8}], [4, 'low']], ['high elevation sounding', ['high', {950: 21, 850: 11, 700: 3, 500: -11}, {850: -3, 700: -4}], [2, 'very low']], ['high elevation sounding', ['high', {950: 12, 850: 11, 700: -3, 500: -26}, {850: 6, 700: -7}], [4, 'low']]]]\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":"dbed0267b6a6cab67a2e0df00175be90f3423da097a3cdc283d7bd8e5b5fb5c5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(elev, temps, dews):\n    levels = {\"low\": (950, 850, 850, 850, (3, 7), (5, 9)),\n              \"mid\": (850, 700, 700, 700, (5, 10), (5, 12)),\n              \"high\": (700, 500, 700, 700, (17, 21), (14, 20))}\n    if elev not in levels:\n        return None\n    lo, up, tm, dm, (a1, a2), (b1, b2) = levels[elev]\n    stab = temps[lo] - temps[up]\n    moist = temps[tm] - dews[dm]\n    sa = 1 if stab <= a1 else 2 if stab <= a2 else 3\n    sb = 1 if moist <= b1 else 2 if moist <= b2 else 3\n    total = sa + sb\n    label = \"very low\" if total <= 3 else \"low\" if total == 4 else \"moderate\" if total == 5 else \"high\"\n    return [total, label]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['low elevation sounding', ['low', {950: 13, 850: 9, 700: 3, 500: -20}, {850: 1, 700: -6}], [4, 'low']], ['low elevation sounding', ['low', {950: 12, 850: 1, 700: -5, 500: -24}, {850: -11, 700: -17}], [6, 'high']], ['low elevation sounding', ['low', {950: 13, 850: 8, 700: 3, 500: -22}, {850: -2, 700: -8}], [5, 'moderate']], ['low elevation sounding', ['low', {950: 18, 850: 10, 700: -4, 500: -26}, {850: -6, 700: -8}], [6, 'high']], ['low elevation sounding', ['low', {950: 15, 850: 10, 700: 6, 500: -6}, {850: 8, 700: 3}], [3, 'very low']], ['low elevation sounding', ['low', {950: 29, 850: 22, 700: 20, 500: 7}, {850: 14, 700: 14}], [4, 'low']], ['low elevation sounding', ['low', {950: 22, 850: 13, 700: 2, 500: -24}, {850: -1, 700: -17}], [6, 'high']], ['mid elevation sounding', ['mid', {950: 24, 850: 12, 700: 9, 500: -12}, {850: 8, 700: -6}], [2, 'very low']]], [['low elevation sounding', ['low', {950: 13, 850: 13, 700: 2, 500: -19}, {850: 2, 700: -3}], [4, 'low']], ['low elevation sounding', ['low', {950: 13, 850: 1, 700: -9, 500: -31}, {850: -5, 700: -17}], [5, 'moderate']], ['low elevation sounding', ['low', {950: 24, 850: 21, 700: 12, 500: -12}, {850: 12, 700: -4}], [3, 'very low']], ['low elevation sounding', ['low', {950: 18, 850: 18, 700: 15, 500: -10}, {850: 16, 700: 7}], [2, 'very low']], ['low elevation sounding', ['low', {950: 18, 850: 18, 700: 16, 500: 2}, {850: 5, 700: 13}], [4, 'low']], ['low elevation sounding', ['low', {950: 26, 850: 27, 700: 19, 500: 0}, {850: 22, 700: 2}], [2, 'very low']], ['mid elevation sounding', ['mid', {950: 18, 850: 10, 700: 4, 500: -16}, {850: 4, 700: 3}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 13, 850: 15, 700: 11, 500: -13}, {850: 9, 700: 11}], [3, 'very low']]], [['mid elevation sounding', ['mid', {950: 23, 850: 23, 700: 17, 500: -2}, {850: 11, 700: 10}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 24, 850: 12, 700: 9, 500: -12}, {850: 8, 700: -6}], [2, 'very low']], ['mid elevation sounding', ['mid', {950: 18, 850: 7, 700: 5, 500: -20}, {850: -5, 700: -8}], [3, 'very low']], ['mid elevation sounding', ['mid', {950: 10, 850: 2, 700: -11, 500: -32}, {850: -9, 700: -26}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 18, 850: 10, 700: 4, 500: -16}, {850: 4, 700: 3}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 30, 850: 18, 700: 4, 500: -12}, {850: 15, 700: -8}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 17, 850: 12, 700: -3, 500: -23}, {850: 4, 700: -8}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 22, 850: 15, 700: 6, 500: -20}, {850: 14, 700: -1}], [3, 'very low']]], [['mid elevation sounding', ['mid', {950: 10, 850: 2, 700: -11, 500: -32}, {850: -9, 700: -26}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 28, 850: 22, 700: 12, 500: -14}, {850: 11, 700: 4}], [4, 'low']], ['mid elevation sounding', ['mid', {950: 13, 850: 15, 700: 11, 500: -13}, {850: 9, 700: 11}], [3, 'very low']], ['mid elevation sounding', ['mid', {950: 17, 850: 12, 700: -3, 500: -23}, {850: 4, 700: -8}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 17, 850: 14, 700: 3, 500: -19}, {850: 4, 700: -6}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 21, 850: 23, 700: 13, 500: -13}, {850: 18, 700: -3}], [3, 'very low']], ['mid elevation sounding', ['mid', {950: 30, 850: 27, 700: 20, 500: 1}, {850: 15, 700: 13}], [4, 'low']], ['mid strong inversion', ['mid', {950: 10, 850: 4, 700: 12, 500: -8}, {850: 0, 700: 3}], [2, 'very low']]], [['mid elevation sounding', ['mid', {950: 10, 850: 2, 700: -11, 500: -32}, {850: -9, 700: -26}], [5, 'moderate']], ['mid elevation sounding', ['mid', {950: 17, 850: 14, 700: 3, 500: -19}, {850: 4, 700: -6}], [5, 'moderate']], ['high elevation sounding', ['high', {950: 30, 850: 20, 700: 11, 500: -13}, {850: 10, 700: 9}], [4, 'low']], ['high elevation sounding', ['high', {950: 18, 850: 18, 700: 14, 500: -1}, {850: 17, 700: -8}], [4, 'low']], ['high elevation sounding', ['high', {950: 14, 850: 11, 700: 5, 500: -14}, {850: -3, 700: 1}], [3, 'very low']], ['high elevation sounding', ['high', {950: 27, 850: 18, 700: 16, 500: -8}, {850: 15, 700: 8}], [4, 'low']], ['high elevation sounding', ['high', {950: 21, 850: 11, 700: 3, 500: -11}, {850: -3, 700: -4}], [2, 'very low']], ['high elevation sounding', ['high', {950: 12, 850: 11, 700: -3, 500: -26}, {850: 6, 700: -7}], [4, 'low']]]]\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 an operational weather index; coefficients and thresholds are fixed by the contract and no claim of 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-weather_index_computation-haines-index-mid-elevation-moisture-level","generated_at":"2026-09-29T14:48:26.979210+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Fire behaviour analysts use the Haines index for plume-dominated fire potential.","root_cause":"The mid variant takes its moisture term from 700 hPa instead of 850 hPa.","sha256":"6565ad34ba45bcf842de316ef8e8f5af1f8327b0f5d37d90029db0579504cf96","title":"Haines lower-atmosphere severity index: mid elevation moisture level · 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.14,"exit_code":1,"observations":[{"actual":[4,"low"],"check":"low elevation sounding","expected":[4,"low"],"passed":true},{"actual":[6,"high"],"check":"low elevation sounding","expected":[6,"high"],"passed":true},{"actual":[5,"moderate"],"check":"low elevation sounding","expected":[5,"moderate"],"passed":true},{"actual":[6,"high"],"check":"low elevation sounding","expected":[6,"high"],"passed":true},{"actual":[3,"very low"],"check":"low elevation sounding","expected":[3,"very low"],"passed":true},{"actual":[4,"low"],"check":"low elevation sounding","expected":[4,"low"],"passed":true},{"actual":[6,"high"],"check":"low elevation sounding","expected":[6,"high"],"passed":true},{"actual":[4,"low"],"check":"mid elevation sounding","expected":[2,"very low"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"low elevation sounding\", \"actual\": [4, \"low\"], \"expected\": [4, \"low\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [6, \"high\"], \"expected\": [6, \"high\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [5, \"moderate\"], \"expected\": [5, \"moderate\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [6, \"high\"], \"expected\": [6, \"high\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [3, \"very low\"], \"expected\": [3, \"very low\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [4, \"low\"], \"expected\": [4, \"low\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [6, \"high\"], \"expected\": [6, \"high\"], \"passed\": true}, {\"check\": \"mid elevation sounding\", \"actual\": [4, \"low\"], \"expected\": [2, \"very low\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.02,"exit_code":1,"observations":[{"actual":[4,"low"],"check":"low elevation sounding","expected":[4,"low"],"passed":true},{"actual":[6,"high"],"check":"low elevation sounding","expected":[6,"high"],"passed":true},{"actual":[5,"moderate"],"check":"low elevation sounding","expected":[5,"moderate"],"passed":true},{"actual":[6,"high"],"check":"low elevation sounding","expected":[6,"high"],"passed":true},{"actual":[3,"very low"],"check":"low elevation sounding","expected":[3,"very low"],"passed":true},{"actual":[4,"low"],"check":"low elevation sounding","expected":[4,"low"],"passed":true},{"actual":[6,"high"],"check":"low elevation sounding","expected":[6,"high"],"passed":true},{"actual":[4,"low"],"check":"mid elevation sounding","expected":[2,"very low"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"low elevation sounding\", \"actual\": [4, \"low\"], \"expected\": [4, \"low\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [6, \"high\"], \"expected\": [6, \"high\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [5, \"moderate\"], \"expected\": [5, \"moderate\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [6, \"high\"], \"expected\": [6, \"high\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [3, \"very low\"], \"expected\": [3, \"very low\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [4, \"low\"], \"expected\": [4, \"low\"], \"passed\": true}, {\"check\": \"low elevation sounding\", \"actual\": [6, \"high\"], \"expected\": [6, \"high\"], \"passed\": true}, {\"check\": \"mid elevation sounding\", \"actual\": [4, \"low\"], \"expected\": [2, \"very low\"], \"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."}}