{"abstract":"Wind chill is several degrees too cold for every windy reading.","category":"Weather index computation","checks":8,"contract":"Input temperature in degF and wind in km/h. Convert wind to mph (divide by 1.609344). If T > 50 degF or wind below 3 mph, return T rounded to 0.1. Otherwise return 35.74 + 0.6215T - 35.75V^0.16 + 0.4275T*V^0.16 rounded to 0.1.","evaluation_group":"w2-weather_index_computation-wind-chill","failed_approach":"Dividing by 1.852 treats the anemometer as knots and still misstates the wind.","family":"w2-weather_index_computation-wind-chill-anemometer-unit-conversion","id":"FA-70866","implementations":{"attempt":{"sha256":"7eb16ba7aa054ce28ce48ca03dde6053fc6bf7ba8c145543147315aeb84c587e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(t_f, wind_kmh):\n    mph = wind_kmh / 1.852\n    if t_f > 50 or mph < 3:\n        return round(t_f, 1)\n    v = mph ** 0.16\n    wc = 35.74 + 0.6215 * t_f - 35.75 * v + 0.4275 * t_f * v\n    return round(wc, 1)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['-40F with 0 km/h wind', [-40, 0], -40], ['-40F with 3 km/h wind', [-40, 3], -40], ['-40F with 4 km/h wind', [-40, 4], -40], ['-40F with 4.8 km/h wind', [-40, 4.8], -40], ['-40F with 5 km/h wind', [-40, 5], -52.5], ['-40F with 8 km/h wind', [-40, 8], -57.4], ['-40F with 16 km/h wind', [-40, 16], -65.4], ['-40F with 32 km/h wind', [-40, 32], -74.4]], [['-40F with 5 km/h wind', [-40, 5], -52.5], ['-40F with 32 km/h wind', [-40, 32], -74.4], ['-40F with 64 km/h wind', [-40, 64], -84.4], ['-40F with 100 km/h wind', [-40, 100], -91.4], ['-20F with 0 km/h wind', [-20, 0], -20], ['-20F with 3 km/h wind', [-20, 3], -20], ['-20F with 4 km/h wind', [-20, 4], -20], ['-20F with 5 km/h wind', [-20, 5], -29.8]], [['-40F with 32 km/h wind', [-40, 32], -74.4], ['-20F with 5 km/h wind', [-20, 5], -29.8], ['-20F with 8 km/h wind', [-20, 8], -33.9], ['-20F with 16 km/h wind', [-20, 16], -40.7], ['-20F with 32 km/h wind', [-20, 32], -48.2], ['-20F with 64 km/h wind', [-20, 64], -56.5], ['-20F with 100 km/h wind', [-20, 100], -62.5], ['-5F with 0 km/h wind', [-5, 0], -5]], [['-20F with 3 km/h wind', [-20, 3], -20], ['-5F with 3 km/h wind', [-5, 3], -5], ['-5F with 4 km/h wind', [-5, 4], -5], ['-5F with 4.8 km/h wind', [-5, 4.8], -5], ['-5F with 5 km/h wind', [-5, 5], -12.8], ['-5F with 8 km/h wind', [-5, 8], -16.3], ['-5F with 16 km/h wind', [-5, 16], -22.1], ['-5F with 64 km/h wind', [-5, 64], -35.7]], [['-20F with 5 km/h wind', [-20, 5], -29.8], ['-5F with 64 km/h wind', [-5, 64], -35.7], ['-5F with 100 km/h wind', [-5, 100], -40.7], ['0F with 0 km/h wind', [0, 0], 0], ['0F with 3 km/h wind', [0, 3], 0], ['0F with 4 km/h wind', [0, 4], 0], ['0F with 4.8 km/h wind', [0, 4.8], 0], ['0F with 32 km/h wind', [0, 32], -21.9]]]\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":"0e6b6fe689763e00076956b7c3c5749a25547b0d2668c1aad238aad55dbbac76","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(t_f, wind_kmh):\n    mph = wind_kmh * 1.609344\n    if t_f > 50 or mph < 3:\n        return round(t_f, 1)\n    v = mph ** 0.16\n    wc = 35.74 + 0.6215 * t_f - 35.75 * v + 0.4275 * t_f * v\n    return round(wc, 1)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['-40F with 0 km/h wind', [-40, 0], -40], ['-40F with 3 km/h wind', [-40, 3], -40], ['-40F with 4 km/h wind', [-40, 4], -40], ['-40F with 4.8 km/h wind', [-40, 4.8], -40], ['-40F with 5 km/h wind', [-40, 5], -52.5], ['-40F with 8 km/h wind', [-40, 8], -57.4], ['-40F with 16 km/h wind', [-40, 16], -65.4], ['-40F with 32 km/h wind', [-40, 32], -74.4]], [['-40F with 5 km/h wind', [-40, 5], -52.5], ['-40F with 32 km/h wind', [-40, 32], -74.4], ['-40F with 64 km/h wind', [-40, 64], -84.4], ['-40F with 100 km/h wind', [-40, 100], -91.4], ['-20F with 0 km/h wind', [-20, 0], -20], ['-20F with 3 km/h wind', [-20, 3], -20], ['-20F with 4 km/h wind', [-20, 4], -20], ['-20F with 5 km/h wind', [-20, 5], -29.8]], [['-40F with 32 km/h wind', [-40, 32], -74.4], ['-20F with 5 km/h wind', [-20, 5], -29.8], ['-20F with 8 km/h wind', [-20, 8], -33.9], ['-20F with 16 km/h wind', [-20, 16], -40.7], ['-20F with 32 km/h wind', [-20, 32], -48.2], ['-20F with 64 km/h wind', [-20, 64], -56.5], ['-20F with 100 km/h wind', [-20, 100], -62.5], ['-5F with 0 km/h wind', [-5, 0], -5]], [['-20F with 3 km/h wind', [-20, 3], -20], ['-5F with 3 km/h wind', [-5, 3], -5], ['-5F with 4 km/h wind', [-5, 4], -5], ['-5F with 4.8 km/h wind', [-5, 4.8], -5], ['-5F with 5 km/h wind', [-5, 5], -12.8], ['-5F with 8 km/h wind', [-5, 8], -16.3], ['-5F with 16 km/h wind', [-5, 16], -22.1], ['-5F with 64 km/h wind', [-5, 64], -35.7]], [['-20F with 5 km/h wind', [-20, 5], -29.8], ['-5F with 64 km/h wind', [-5, 64], -35.7], ['-5F with 100 km/h wind', [-5, 100], -40.7], ['0F with 0 km/h wind', [0, 0], 0], ['0F with 3 km/h wind', [0, 3], 0], ['0F with 4 km/h wind', [0, 4], 0], ['0F with 4.8 km/h wind', [0, 4.8], 0], ['0F with 32 km/h wind', [0, 32], -21.9]]]\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"},"fixed":{"sha256":"cfc5dff7556c6e8582557638adf36ad115b342a37d5e4808a7eca400aa398185","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(t_f, wind_kmh):\n    mph = wind_kmh / 1.609344\n    if t_f > 50 or mph < 3:\n        return round(t_f, 1)\n    v = mph ** 0.16\n    wc = 35.74 + 0.6215 * t_f - 35.75 * v + 0.4275 * t_f * v\n    return round(wc, 1)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['-40F with 0 km/h wind', [-40, 0], -40], ['-40F with 3 km/h wind', [-40, 3], -40], ['-40F with 4 km/h wind', [-40, 4], -40], ['-40F with 4.8 km/h wind', [-40, 4.8], -40], ['-40F with 5 km/h wind', [-40, 5], -52.5], ['-40F with 8 km/h wind', [-40, 8], -57.4], ['-40F with 16 km/h wind', [-40, 16], -65.4], ['-40F with 32 km/h wind', [-40, 32], -74.4]], [['-40F with 5 km/h wind', [-40, 5], -52.5], ['-40F with 32 km/h wind', [-40, 32], -74.4], ['-40F with 64 km/h wind', [-40, 64], -84.4], ['-40F with 100 km/h wind', [-40, 100], -91.4], ['-20F with 0 km/h wind', [-20, 0], -20], ['-20F with 3 km/h wind', [-20, 3], -20], ['-20F with 4 km/h wind', [-20, 4], -20], ['-20F with 5 km/h wind', [-20, 5], -29.8]], [['-40F with 32 km/h wind', [-40, 32], -74.4], ['-20F with 5 km/h wind', [-20, 5], -29.8], ['-20F with 8 km/h wind', [-20, 8], -33.9], ['-20F with 16 km/h wind', [-20, 16], -40.7], ['-20F with 32 km/h wind', [-20, 32], -48.2], ['-20F with 64 km/h wind', [-20, 64], -56.5], ['-20F with 100 km/h wind', [-20, 100], -62.5], ['-5F with 0 km/h wind', [-5, 0], -5]], [['-20F with 3 km/h wind', [-20, 3], -20], ['-5F with 3 km/h wind', [-5, 3], -5], ['-5F with 4 km/h wind', [-5, 4], -5], ['-5F with 4.8 km/h wind', [-5, 4.8], -5], ['-5F with 5 km/h wind', [-5, 5], -12.8], ['-5F with 8 km/h wind', [-5, 8], -16.3], ['-5F with 16 km/h wind', [-5, 16], -22.1], ['-5F with 64 km/h wind', [-5, 64], -35.7]], [['-20F with 5 km/h wind', [-20, 5], -29.8], ['-5F with 64 km/h wind', [-5, 64], -35.7], ['-5F with 100 km/h wind', [-5, 100], -40.7], ['0F with 0 km/h wind', [0, 0], 0], ['0F with 3 km/h wind', [0, 3], 0], ['0F with 4 km/h wind', [0, 4], 0], ['0F with 4.8 km/h wind', [0, 4.8], 0], ['0F with 32 km/h wind', [0, 32], -21.9]]]\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-wind-chill-anemometer-unit-conversion","generated_at":"2026-09-29T14:48:24.634695+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Cold-weather advisories and frostbite timing use the wind chill index.","repair":"Convert with wind_kmh / 1.609344.","root_cause":"Kilometres per hour are multiplied by 1.609344 instead of divided, overstating the wind in mph.","sha256":"ac3c3fc07d7d8069343043feb77c9eeb2bc8aa95e6861313083c8770ffe6048c","title":"Wind chill from km/h anemometer: anemometer unit conversion · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.246,"exit_code":1,"observations":[{"actual":-40,"check":"-40F with 0 km/h wind","expected":-40,"passed":true},{"actual":-40,"check":"-40F with 3 km/h wind","expected":-40,"passed":true},{"actual":-40,"check":"-40F with 4 km/h wind","expected":-40,"passed":true},{"actual":-40,"check":"-40F with 4.8 km/h wind","expected":-40,"passed":true},{"actual":-40,"check":"-40F with 5 km/h wind","expected":-52.5,"passed":false},{"actual":-55.9,"check":"-40F with 8 km/h wind","expected":-57.4,"passed":false},{"actual":-63.7,"check":"-40F with 16 km/h wind","expected":-65.4,"passed":false},{"actual":-72.5,"check":"-40F with 32 km/h wind","expected":-74.4,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"-40F with 0 km/h wind\", \"actual\": -40, \"expected\": -40, \"passed\": true}, {\"check\": \"-40F with 3 km/h wind\", \"actual\": -40, \"expected\": -40, \"passed\": true}, {\"check\": \"-40F with 4 km/h wind\", \"actual\": -40, \"expected\": -40, \"passed\": true}, {\"check\": \"-40F with 4.8 km/h wind\", \"actual\": -40, \"expected\": -40, \"passed\": true}, {\"check\": \"-40F with 5 km/h wind\", \"actual\": -40, \"expected\": -52.5, \"passed\": false}, {\"check\": \"-40F with 8 km/h wind\", \"actual\": -55.9, \"expected\": -57.4, \"passed\": false}, {\"check\": \"-40F with 16 km/h wind\", \"actual\": -63.7, \"expected\": -65.4, \"passed\": false}, {\"check\": \"-40F with 32 km/h wind\", \"actual\": -72.5, \"expected\": -74.4, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.332,"exit_code":1,"observations":[{"actual":-40,"check":"-40F with 0 km/h wind","expected":-40,"passed":true},{"actual":-57.1,"check":"-40F with 3 km/h wind","expected":-40,"passed":false},{"actual":-60.3,"check":"-40F with 4 km/h wind","expected":-40,"passed":false},{"actual":-62.4,"check":"-40F with 4.8 km/h wind","expected":-40,"passed":false},{"actual":-62.9,"check":"-40F with 5 km/h wind","expected":-52.5,"passed":false},{"actual":-68.7,"check":"-40F with 8 km/h wind","expected":-57.4,"passed":false},{"actual":-78.0,"check":"-40F with 16 km/h wind","expected":-65.4,"passed":false},{"actual":-88.4,"check":"-40F with 32 km/h wind","expected":-74.4,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"-40F with 0 km/h wind\", \"actual\": -40, \"expected\": -40, \"passed\": true}, {\"check\": \"-40F with 3 km/h wind\", \"actual\": -57.1, \"expected\": -40, \"passed\": false}, {\"check\": \"-40F with 4 km/h wind\", \"actual\": -60.3, \"expected\": -40, \"passed\": false}, {\"check\": \"-40F with 4.8 km/h wind\", \"actual\": -62.4, \"expected\": -40, \"passed\": false}, {\"check\": \"-40F with 5 km/h wind\", \"actual\": -62.9, \"expected\": -52.5, \"passed\": false}, {\"check\": \"-40F with 8 km/h wind\", \"actual\": -68.7, \"expected\": -57.4, \"passed\": false}, {\"check\": \"-40F with 16 km/h wind\", \"actual\": -78.0, \"expected\": -65.4, \"passed\": false}, {\"check\": \"-40F with 32 km/h wind\", \"actual\": -88.4, \"expected\": -74.4, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.932,"exit_code":0,"observations":[{"actual":-40,"check":"-40F with 0 km/h wind","expected":-40,"passed":true},{"actual":-40,"check":"-40F with 3 km/h wind","expected":-40,"passed":true},{"actual":-40,"check":"-40F with 4 km/h wind","expected":-40,"passed":true},{"actual":-40,"check":"-40F with 4.8 km/h wind","expected":-40,"passed":true},{"actual":-52.5,"check":"-40F with 5 km/h wind","expected":-52.5,"passed":true},{"actual":-57.4,"check":"-40F with 8 km/h wind","expected":-57.4,"passed":true},{"actual":-65.4,"check":"-40F with 16 km/h wind","expected":-65.4,"passed":true},{"actual":-74.4,"check":"-40F with 32 km/h wind","expected":-74.4,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"-40F with 0 km/h wind\", \"actual\": -40, \"expected\": -40, \"passed\": true}, {\"check\": \"-40F with 3 km/h wind\", \"actual\": -40, \"expected\": -40, \"passed\": true}, {\"check\": \"-40F with 4 km/h wind\", \"actual\": -40, \"expected\": -40, \"passed\": true}, {\"check\": \"-40F with 4.8 km/h wind\", \"actual\": -40, \"expected\": -40, \"passed\": true}, {\"check\": \"-40F with 5 km/h wind\", \"actual\": -52.5, \"expected\": -52.5, \"passed\": true}, {\"check\": \"-40F with 8 km/h wind\", \"actual\": -57.4, \"expected\": -57.4, \"passed\": true}, {\"check\": \"-40F with 16 km/h wind\", \"actual\": -65.4, \"expected\": -65.4, \"passed\": true}, {\"check\": \"-40F with 32 km/h wind\", \"actual\": -74.4, \"expected\": -74.4, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}