{"abstract":"Mild 16 to 18 degC afternoons add chill instead of removing it.","category":"Weather index computation","checks":8,"contract":"Hourly degC readings (None = missing hour, skipped with no effect). Units: <=1.4:0, <=2.4:0.5, <=9.1:1, <=12.4:0.5, <=15.9:0, <=18.0:-0.5, else -1. The running total is floored at zero after every hour. Return the total.","contract_signature":"hourly","evaluation_group":"w2-weather_index_computation-utah-chill-units","failed_approach":"Using -1 applies the hot-hour penalty to mild hours.","family":"w2-weather_index_computation-utah-chill-units-negation-band-sign","id":"FA-71166","implementations":{"attempt":{"sha256":"6530a513e51b3f3b59e4b57aa81685609d44cc6bff2b937f6ea26a0bf2cb5477","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(hourly):\n    total = 0.0\n    for t in hourly:\n        if t is None:\n            continue\n        if t <= 1.4:\n            u = 0.0\n        elif t <= 2.4:\n            u = 0.5\n        elif t <= 9.1:\n            u = 1.0\n        elif t <= 12.4:\n            u = 0.5\n        elif t <= 15.9:\n            u = 0.0\n        elif t <= 18.0:\n            u = -1.0\n        else:\n            u = -1.0\n        total = max(total + u, 0.0)\n    return total\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['orchard night 0', [[2.4, 2.4, 12.5, 18.1, None, 1.4, 18.1, 5.0, 22.0, 12.5, 2.5, 5.0]], 2.0], ['orchard night 1', [[9.2, 18.0, 2.4, 2.4, 12.4, 2.5, 22.0, 12.4, 0.0, 9.1, 2.5, 1.4]], 4.0], ['orchard night 2', [[18.0, 0.0, 18.1, 2.4, 2.5, 22.0, 22.0, None, 16.0, 1.5, 1.5, 1.4]], 1.0], ['orchard night 3', [[None, 15.9, 1.4, 0.0, 9.1, 12.4, 1.5, 2.5, 12.5, 18.1, 2.4, 1.4]], 2.5], ['orchard night 4', [[5.0, 12.5, 9.1, 1.5, 22.0, 1.5, 1.4, 1.4, 15.9, 2.4, 9.1, 12.5]], 3.5], ['orchard night 5', [[0.0, 15.9, 2.5, 12.4, 18.0, 0.0, 1.4, 1.4, 2.5, 12.4, 15.9, 12.4]], 3.0], ['orchard night 6', [[22.0, 15.9, 12.4, 9.2, 12.4, 0.0, 5.0, 2.4, 22.0, 1.4, 9.1, None]], 3.0], ['orchard night 8', [[18.1, 22.0, 2.5, 18.0, 12.5, 2.4, 5.0, 9.1, None, 2.4, 2.5, 15.9]], 4.5]], [['orchard night 7', [[None, 5.0, 12.4, 0.0, 22.0, 18.1, 2.5, 9.2, None, None, 1.4, 12.5]], 1.5], ['orchard night 8', [[18.1, 22.0, 2.5, 18.0, 12.5, 2.4, 5.0, 9.1, None, 2.4, 2.5, 15.9]], 4.5], ['orchard night 9', [[2.5, None, 1.4, 18.0, None, 12.4, 5.0, None, 22.0, 18.1, 5.0, 18.1]], 0.0], ['orchard night 10', [[12.4, 2.4, 12.4, None, 9.1, 0.0, 12.4, 18.1, 9.1, 12.5, 1.4, 9.1]], 4.0], ['orchard night 11', [[9.1, 5.0, 18.1, 2.5, 5.0, 1.4, 9.1, None, 15.9, 2.4, 2.4, 18.1]], 4.0], ['orchard night 12', [[9.2, 16.0, 0.0, 9.2, 2.5, 15.9, 0.0, 9.2, 0.0, 0.0, 9.2, 2.5]], 3.5], ['orchard night 13', [[2.5, 15.9, 1.4, 12.5, 5.0, 1.4, 12.4, 2.4, 18.1, 0.0, 1.4, 12.4]], 2.5], ['orchard night 28', [[9.2, 16.0, 15.9, 0.0, 5.0, 12.5, 22.0, 12.4, 2.4, 9.1, 18.0, 0.0]], 1.5]], [['orchard night 14', [[1.4, 1.4, 18.0, 16.0, 12.4, 2.4, 15.9, 18.1, 18.0, 2.4, 0.0, 18.0]], 0.0], ['orchard night 15', [[1.5, 2.4, 12.5, 16.0, 16.0, 12.4, 12.4, 12.4, 18.0, 18.0, 2.5, 1.5]], 2.0], ['orchard night 16', [[16.0, 1.5, 22.0, 1.5, 12.5, 12.4, 1.4, 9.1, 22.0, 9.1, 9.1, 15.9]], 3.0], ['orchard night 17', [[1.5, 12.5, 9.2, 1.4, None, 0.0, 15.9, 12.5, 0.0, 16.0, 2.4, 12.4]], 1.5], ['orchard night 18', [[15.9, 9.2, 9.1, 15.9, 9.2, 15.9, 15.9, 9.2, 22.0, 12.4, 2.4, None]], 2.5], ['orchard night 19', [[16.0, 1.5, 18.1, 9.1, 22.0, 16.0, 12.4, 16.0, 12.4, 12.5, 2.4, 22.0]], 0.0], ['orchard night 20', [[1.5, None, 18.0, 1.4, 18.1, 9.2, 9.1, 2.5, 2.5, 2.4, 2.5, 9.2]], 5.5], ['orchard night 21', [[9.1, 16.0, 15.9, 9.2, 5.0, 0.0, 9.2, 16.0, 18.0, 12.5, 9.2, 18.0]], 1.5]], [['orchard night 5', [[0.0, 15.9, 2.5, 12.4, 18.0, 0.0, 1.4, 1.4, 2.5, 12.4, 15.9, 12.4]], 3.0], ['orchard night 19', [[16.0, 1.5, 18.1, 9.1, 22.0, 16.0, 12.4, 16.0, 12.4, 12.5, 2.4, 22.0]], 0.0], ['orchard night 21', [[9.1, 16.0, 15.9, 9.2, 5.0, 0.0, 9.2, 16.0, 18.0, 12.5, 9.2, 18.0]], 1.5], ['orchard night 22', [[1.5, 22.0, 2.5, 2.4, 12.5, 12.4, 22.0, 2.5, 15.9, 18.1, 1.5, 9.1]], 2.5], ['orchard night 23', [[2.4, 16.0, 18.0, 1.5, 15.9, 16.0, 9.1, 9.2, 1.5, 12.5, 16.0, 22.0]], 0.5], ['orchard night 24', [[2.5, 16.0, 2.5, 18.0, 18.0, 12.5, 22.0, 9.1, 12.4, 5.0, 9.1, 1.4]], 3.5], ['orchard night 25', [[0.0, None, 5.0, 22.0, 5.0, 9.1, 2.4, 1.4, 5.0, 9.1, 22.0, 2.4]], 4.0], ['orchard night 26', [[5.0, 9.1, None, 18.1, 9.2, None, 0.0, 2.5, 22.0, 15.9, 18.1, 15.9]], 0.5]], [['orchard night 0', [[2.4, 2.4, 12.5, 18.1, None, 1.4, 18.1, 5.0, 22.0, 12.5, 2.5, 5.0]], 2.0], ['orchard night 23', [[2.4, 16.0, 18.0, 1.5, 15.9, 16.0, 9.1, 9.2, 1.5, 12.5, 16.0, 22.0]], 0.5], ['orchard night 24', [[2.5, 16.0, 2.5, 18.0, 18.0, 12.5, 22.0, 9.1, 12.4, 5.0, 9.1, 1.4]], 3.5], ['orchard night 28', [[9.2, 16.0, 15.9, 0.0, 5.0, 12.5, 22.0, 12.4, 2.4, 9.1, 18.0, 0.0]], 1.5], ['orchard night 29', [[5.0, 12.5, 18.1, 2.4, 1.4, 9.2, 1.4, 1.4, None, None, 18.0, 15.9]], 0.5], ['warm spell after chill', [[5.0, 5.0, 20.0, 20.0, 20.0, 5.0]], 1.0], ['gap mid night', [[5.0, None, 5.0]], 2.0], ['warm start', [[19.0, 19.0, 6.0]], 1.0]]]\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":"cf8db1d514573cce470f5cb16b8ef7e7d8f79022e925dc6220b931631e6ee536","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(hourly):\n    total = 0.0\n    for t in hourly:\n        if t is None:\n            continue\n        if t <= 1.4:\n            u = 0.0\n        elif t <= 2.4:\n            u = 0.5\n        elif t <= 9.1:\n            u = 1.0\n        elif t <= 12.4:\n            u = 0.5\n        elif t <= 15.9:\n            u = 0.0\n        elif t <= 18.0:\n            u = 0.5\n        else:\n            u = -1.0\n        total = max(total + u, 0.0)\n    return total\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['orchard night 0', [[2.4, 2.4, 12.5, 18.1, None, 1.4, 18.1, 5.0, 22.0, 12.5, 2.5, 5.0]], 2.0], ['orchard night 1', [[9.2, 18.0, 2.4, 2.4, 12.4, 2.5, 22.0, 12.4, 0.0, 9.1, 2.5, 1.4]], 4.0], ['orchard night 2', [[18.0, 0.0, 18.1, 2.4, 2.5, 22.0, 22.0, None, 16.0, 1.5, 1.5, 1.4]], 1.0], ['orchard night 3', [[None, 15.9, 1.4, 0.0, 9.1, 12.4, 1.5, 2.5, 12.5, 18.1, 2.4, 1.4]], 2.5], ['orchard night 4', [[5.0, 12.5, 9.1, 1.5, 22.0, 1.5, 1.4, 1.4, 15.9, 2.4, 9.1, 12.5]], 3.5], ['orchard night 5', [[0.0, 15.9, 2.5, 12.4, 18.0, 0.0, 1.4, 1.4, 2.5, 12.4, 15.9, 12.4]], 3.0], ['orchard night 6', [[22.0, 15.9, 12.4, 9.2, 12.4, 0.0, 5.0, 2.4, 22.0, 1.4, 9.1, None]], 3.0], ['orchard night 8', [[18.1, 22.0, 2.5, 18.0, 12.5, 2.4, 5.0, 9.1, None, 2.4, 2.5, 15.9]], 4.5]], [['orchard night 7', [[None, 5.0, 12.4, 0.0, 22.0, 18.1, 2.5, 9.2, None, None, 1.4, 12.5]], 1.5], ['orchard night 8', [[18.1, 22.0, 2.5, 18.0, 12.5, 2.4, 5.0, 9.1, None, 2.4, 2.5, 15.9]], 4.5], ['orchard night 9', [[2.5, None, 1.4, 18.0, None, 12.4, 5.0, None, 22.0, 18.1, 5.0, 18.1]], 0.0], ['orchard night 10', [[12.4, 2.4, 12.4, None, 9.1, 0.0, 12.4, 18.1, 9.1, 12.5, 1.4, 9.1]], 4.0], ['orchard night 11', [[9.1, 5.0, 18.1, 2.5, 5.0, 1.4, 9.1, None, 15.9, 2.4, 2.4, 18.1]], 4.0], ['orchard night 12', [[9.2, 16.0, 0.0, 9.2, 2.5, 15.9, 0.0, 9.2, 0.0, 0.0, 9.2, 2.5]], 3.5], ['orchard night 13', [[2.5, 15.9, 1.4, 12.5, 5.0, 1.4, 12.4, 2.4, 18.1, 0.0, 1.4, 12.4]], 2.5], ['orchard night 28', [[9.2, 16.0, 15.9, 0.0, 5.0, 12.5, 22.0, 12.4, 2.4, 9.1, 18.0, 0.0]], 1.5]], [['orchard night 14', [[1.4, 1.4, 18.0, 16.0, 12.4, 2.4, 15.9, 18.1, 18.0, 2.4, 0.0, 18.0]], 0.0], ['orchard night 15', [[1.5, 2.4, 12.5, 16.0, 16.0, 12.4, 12.4, 12.4, 18.0, 18.0, 2.5, 1.5]], 2.0], ['orchard night 16', [[16.0, 1.5, 22.0, 1.5, 12.5, 12.4, 1.4, 9.1, 22.0, 9.1, 9.1, 15.9]], 3.0], ['orchard night 17', [[1.5, 12.5, 9.2, 1.4, None, 0.0, 15.9, 12.5, 0.0, 16.0, 2.4, 12.4]], 1.5], ['orchard night 18', [[15.9, 9.2, 9.1, 15.9, 9.2, 15.9, 15.9, 9.2, 22.0, 12.4, 2.4, None]], 2.5], ['orchard night 19', [[16.0, 1.5, 18.1, 9.1, 22.0, 16.0, 12.4, 16.0, 12.4, 12.5, 2.4, 22.0]], 0.0], ['orchard night 20', [[1.5, None, 18.0, 1.4, 18.1, 9.2, 9.1, 2.5, 2.5, 2.4, 2.5, 9.2]], 5.5], ['orchard night 21', [[9.1, 16.0, 15.9, 9.2, 5.0, 0.0, 9.2, 16.0, 18.0, 12.5, 9.2, 18.0]], 1.5]], [['orchard night 5', [[0.0, 15.9, 2.5, 12.4, 18.0, 0.0, 1.4, 1.4, 2.5, 12.4, 15.9, 12.4]], 3.0], ['orchard night 19', [[16.0, 1.5, 18.1, 9.1, 22.0, 16.0, 12.4, 16.0, 12.4, 12.5, 2.4, 22.0]], 0.0], ['orchard night 21', [[9.1, 16.0, 15.9, 9.2, 5.0, 0.0, 9.2, 16.0, 18.0, 12.5, 9.2, 18.0]], 1.5], ['orchard night 22', [[1.5, 22.0, 2.5, 2.4, 12.5, 12.4, 22.0, 2.5, 15.9, 18.1, 1.5, 9.1]], 2.5], ['orchard night 23', [[2.4, 16.0, 18.0, 1.5, 15.9, 16.0, 9.1, 9.2, 1.5, 12.5, 16.0, 22.0]], 0.5], ['orchard night 24', [[2.5, 16.0, 2.5, 18.0, 18.0, 12.5, 22.0, 9.1, 12.4, 5.0, 9.1, 1.4]], 3.5], ['orchard night 25', [[0.0, None, 5.0, 22.0, 5.0, 9.1, 2.4, 1.4, 5.0, 9.1, 22.0, 2.4]], 4.0], ['orchard night 26', [[5.0, 9.1, None, 18.1, 9.2, None, 0.0, 2.5, 22.0, 15.9, 18.1, 15.9]], 0.5]], [['orchard night 0', [[2.4, 2.4, 12.5, 18.1, None, 1.4, 18.1, 5.0, 22.0, 12.5, 2.5, 5.0]], 2.0], ['orchard night 23', [[2.4, 16.0, 18.0, 1.5, 15.9, 16.0, 9.1, 9.2, 1.5, 12.5, 16.0, 22.0]], 0.5], ['orchard night 24', [[2.5, 16.0, 2.5, 18.0, 18.0, 12.5, 22.0, 9.1, 12.4, 5.0, 9.1, 1.4]], 3.5], ['orchard night 28', [[9.2, 16.0, 15.9, 0.0, 5.0, 12.5, 22.0, 12.4, 2.4, 9.1, 18.0, 0.0]], 1.5], ['orchard night 29', [[5.0, 12.5, 18.1, 2.4, 1.4, 9.2, 1.4, 1.4, None, None, 18.0, 15.9]], 0.5], ['warm spell after chill', [[5.0, 5.0, 20.0, 20.0, 20.0, 5.0]], 1.0], ['gap mid night', [[5.0, None, 5.0]], 2.0], ['warm start', [[19.0, 19.0, 6.0]], 1.0]]]\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-utah-chill-units-negation-band-sign","generated_at":"2026-09-29T14:48:27.302802+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Orchard dormancy and bloom forecasts depend on accumulated chill units.","root_cause":"The 15.9-18.0 degC band carries a positive half unit.","sha256":"842add4a1c4384a60c5bd12f4fe3805944be47e42a616ce4a83f1f704c7b5b99","title":"Utah chill unit accumulation: negation band sign · 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.655,"exit_code":1,"observations":[{"actual":2.0,"check":"orchard night 0","expected":2.0,"passed":true},{"actual":4.0,"check":"orchard night 1","expected":4.0,"passed":true},{"actual":1.0,"check":"orchard night 2","expected":1.0,"passed":true},{"actual":2.5,"check":"orchard night 3","expected":2.5,"passed":true},{"actual":3.5,"check":"orchard night 4","expected":3.5,"passed":true},{"actual":2.5,"check":"orchard night 5","expected":3.0,"passed":false},{"actual":3.0,"check":"orchard night 6","expected":3.0,"passed":true},{"actual":4.0,"check":"orchard night 8","expected":4.5,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"orchard night 0\", \"actual\": 2.0, \"expected\": 2.0, \"passed\": true}, {\"check\": \"orchard night 1\", \"actual\": 4.0, \"expected\": 4.0, \"passed\": true}, {\"check\": \"orchard night 2\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}, {\"check\": \"orchard night 3\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}, {\"check\": \"orchard night 4\", \"actual\": 3.5, \"expected\": 3.5, \"passed\": true}, {\"check\": \"orchard night 5\", \"actual\": 2.5, \"expected\": 3.0, \"passed\": false}, {\"check\": \"orchard night 6\", \"actual\": 3.0, \"expected\": 3.0, \"passed\": true}, {\"check\": \"orchard night 8\", \"actual\": 4.0, \"expected\": 4.5, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.289,"exit_code":1,"observations":[{"actual":2.0,"check":"orchard night 0","expected":2.0,"passed":true},{"actual":5.0,"check":"orchard night 1","expected":4.0,"passed":false},{"actual":1.5,"check":"orchard night 2","expected":1.0,"passed":false},{"actual":2.5,"check":"orchard night 3","expected":2.5,"passed":true},{"actual":3.5,"check":"orchard night 4","expected":3.5,"passed":true},{"actual":4.0,"check":"orchard night 5","expected":3.0,"passed":false},{"actual":3.0,"check":"orchard night 6","expected":3.0,"passed":true},{"actual":5.5,"check":"orchard night 8","expected":4.5,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"orchard night 0\", \"actual\": 2.0, \"expected\": 2.0, \"passed\": true}, {\"check\": \"orchard night 1\", \"actual\": 5.0, \"expected\": 4.0, \"passed\": false}, {\"check\": \"orchard night 2\", \"actual\": 1.5, \"expected\": 1.0, \"passed\": false}, {\"check\": \"orchard night 3\", \"actual\": 2.5, \"expected\": 2.5, \"passed\": true}, {\"check\": \"orchard night 4\", \"actual\": 3.5, \"expected\": 3.5, \"passed\": true}, {\"check\": \"orchard night 5\", \"actual\": 4.0, \"expected\": 3.0, \"passed\": false}, {\"check\": \"orchard night 6\", \"actual\": 3.0, \"expected\": 3.0, \"passed\": true}, {\"check\": \"orchard night 8\", \"actual\": 5.5, \"expected\": 4.5, \"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."}}