{"abstract":"At exactly 50 degF the index returns the air temperature despite qualifying wind.","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.","contract_signature":"t_f, wind_kmh","evaluation_group":"w2-weather_index_computation-wind-chill","failed_approach":"Lowering the cutoff to freezing suppresses wind chill for 33 to 50 degF.","family":"w2-weather_index_computation-wind-chill-warm-cutoff-inclusivity","id":"FA-70871","implementations":{"attempt":{"sha256":"a2b9ce0a2c6794b1f7e73606dc4e6fca1d3fd3c10d73c0f0448f719cd1c2d98a","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 > 32 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 8 km/h wind', [40, 8], 36.5], ['50F with 5 km/h wind', [50, 5], 49.6]], [['-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], ['49F with 5 km/h wind', [49, 5], 48.4], ['50F with 32 km/h wind', [50, 32], 43.6]], [['-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], ['49F with 100 km/h wind', [49, 100], 37.5], ['50F with 5 km/h wind', [50, 5], 49.6]], [['-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], ['50F with 32 km/h wind', [50, 32], 43.6], ['50F with 64 km/h wind', [50, 64], 40.9]], [['-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], ['40F with 32 km/h wind', [40, 32], 30.5], ['50F with 5 km/h wind', [50, 5], 49.6]]]\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":"9c5e8db14b297aaa0e1dc403dd4119615366f4ee5d10fa7a56f96e20684f7497","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 8 km/h wind', [40, 8], 36.5], ['50F with 5 km/h wind', [50, 5], 49.6]], [['-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], ['49F with 5 km/h wind', [49, 5], 48.4], ['50F with 32 km/h wind', [50, 32], 43.6]], [['-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], ['49F with 100 km/h wind', [49, 100], 37.5], ['50F with 5 km/h wind', [50, 5], 49.6]], [['-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], ['50F with 32 km/h wind', [50, 32], 43.6], ['50F with 64 km/h wind', [50, 64], 40.9]], [['-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], ['40F with 32 km/h wind', [40, 32], 30.5], ['50F with 5 km/h wind', [50, 5], 49.6]]]\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-warm-cutoff-inclusivity","generated_at":"2026-09-29T14:48:24.697302+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.","root_cause":"The validity limit excludes 50 degF although the formula is defined for T <= 50.","sha256":"340a3050b7f536ec389cbd8c7041edf7b3b1e30c7796e2ecf654ba0de622c3b5","title":"Wind chill from km/h anemometer: warm cutoff inclusivity · 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":40.981,"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":-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":40,"check":"40F with 8 km/h wind","expected":36.5,"passed":false},{"actual":50,"check":"50F with 5 km/h wind","expected":49.6,"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\": -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 8 km/h wind\", \"actual\": 40, \"expected\": 36.5, \"passed\": false}, {\"check\": \"50F with 5 km/h wind\", \"actual\": 50, \"expected\": 49.6, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.041,"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":-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":36.5,"check":"40F with 8 km/h wind","expected":36.5,"passed":true},{"actual":50,"check":"50F with 5 km/h wind","expected":49.6,"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\": -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 8 km/h wind\", \"actual\": 36.5, \"expected\": 36.5, \"passed\": true}, {\"check\": \"50F with 5 km/h wind\", \"actual\": 50, \"expected\": 49.6, \"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."}}