{"abstract":"Dial gauge processing times grow with altitude although pressure already compensates.","category":"Recipe scaling and nutrition","checks":8,"contract":"Above 10000 ft -> \"error: altitude out of range\". Water bath adds 0 (<=1000 ft), 5 (<=3000), 10 (<=6000), 15 (<=8000), 20 (<=10000) minutes to base, psi None. Dial gauge keeps base minutes, psi 11 (<=2000), 12 (<=4000), 13 (<=6000), 14 (<=8000), above 8000 error. Weighted gauge keeps base minutes, psi 10 at <=1000 ft else 15. Other methods -> \"error: method\".","contract_signature":"method, altitude_ft, base_minutes","evaluation_group":"w2-recipe_scaling_and_nutrition-canning-altitude","failed_approach":"Adding half the adjustment still changes pressure-canner times.","family":"w2-recipe_scaling_and_nutrition-canning-altitude-pressure-time-adjustment","id":"FA-97121","implementations":{"attempt":{"sha256":"9b2028951b30206875556499c9632ef4a80ea77fb79e4f102058f6a379515e0d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(method, altitude_ft, base_minutes):\n    if altitude_ft > 10000:\n        return 'error: altitude out of range'\n    add = 0 if altitude_ft <= 1000 else 5 if altitude_ft <= 3000 else 10 if altitude_ft <= 6000 else 15 if altitude_ft <= 8000 else 20\n    if method == 'water bath':\n        return {'minutes': base_minutes + add, 'psi': None}\n    if method == 'dial':\n        if altitude_ft > 8000:\n            return 'error: altitude out of range'\n        psi = 11 if altitude_ft <= 2000 else 12 if altitude_ft <= 4000 else 13 if altitude_ft <= 6000 else 14\n        return {'minutes': base_minutes + add // 2, 'psi': psi}\n    if method == 'weighted':\n        return {'minutes': base_minutes, 'psi': 10 if altitude_ft <= 1000 else 15}\n    return 'error: method' \ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],\n  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],\n  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],\n  ['regression: pressure time adjustment', ['dial', 4000, 15], {'minutes': 15, 'psi': 12}],\n  ['repair check: pressure time adjustment', ['dial', 4500, 15], {'minutes': 15, 'psi': 13}],\n  ['generated control 1', ['water bath', 10500, 40], 'error: altitude out of range'],\n  ['generated control 2', ['dial', 0, 10], {'minutes': 10, 'psi': 11}],\n  ['generated control 3', ['weighted', 4500, 10], {'minutes': 10, 'psi': 15}]],\n [['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],\n  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],\n  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],\n  ['regression: pressure time adjustment', ['dial', 2001, 20], {'minutes': 20, 'psi': 12}],\n  ['repair check: pressure time adjustment', ['dial', 2000, 10], {'minutes': 10, 'psi': 11}],\n  ['generated control 1', ['water bath', 500, 85], {'minutes': 85, 'psi': None}],\n  ['generated control 2', ['steam', 1000, 25], 'error: method'],\n  ['generated control 3', ['weighted', 6000, 25], {'minutes': 25, 'psi': 15}]],\n [['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],\n  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],\n  ['unknown method', ['steam', 500, 10], 'error: method'],\n  ['regression: pressure time adjustment', ['dial', 4500, 15], {'minutes': 15, 'psi': 13}],\n  ['repair check: pressure time adjustment', ['dial', 6000, 40], {'minutes': 40, 'psi': 13}],\n  ['generated control 1', ['water bath', 8500, 85], {'minutes': 105, 'psi': None}],\n  ['generated control 2', ['weighted', 8000, 15], {'minutes': 15, 'psi': 15}],\n  ['generated control 3', ['water bath', 1000, 40], {'minutes': 40, 'psi': None}]],\n [['too high', ['water bath', 10500, 10], 'error: altitude out of range'],\n  ['unknown method', ['steam', 500, 10], 'error: method'],\n  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],\n  ['regression: pressure time adjustment', ['dial', 3000, 40], {'minutes': 40, 'psi': 12}],\n  ['repair check: pressure time adjustment', ['dial', 4500, 20], {'minutes': 20, 'psi': 13}],\n  ['generated control 1', ['water bath', 4000, 10], {'minutes': 20, 'psi': None}],\n  ['generated control 2', ['weighted', 0, 25], {'minutes': 25, 'psi': 10}],\n  ['generated control 3', ['steam', 2000, 25], 'error: method']],\n [['unknown method', ['steam', 500, 10], 'error: method'],\n  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],\n  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],\n  ['regression: pressure time adjustment', ['dial', 7000, 20], {'minutes': 20, 'psi': 14}],\n  ['repair check: pressure time adjustment', ['dial', 2001, 10], {'minutes': 10, 'psi': 12}],\n  ['generated control 1', ['water bath', 4000, 40], {'minutes': 50, 'psi': None}],\n  ['generated control 2', ['weighted', 1000, 25], {'minutes': 25, 'psi': 10}],\n  ['generated control 3', ['water bath', 2001, 20], {'minutes': 25, 'psi': None}]]]\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":"f291578e4fbd52d67b55c546a0f4cab4985ad6a85b1796d0ee34f8eae1d1512b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(method, altitude_ft, base_minutes):\n    if altitude_ft > 10000:\n        return 'error: altitude out of range'\n    add = 0 if altitude_ft <= 1000 else 5 if altitude_ft <= 3000 else 10 if altitude_ft <= 6000 else 15 if altitude_ft <= 8000 else 20\n    if method == 'water bath':\n        return {'minutes': base_minutes + add, 'psi': None}\n    if method == 'dial':\n        if altitude_ft > 8000:\n            return 'error: altitude out of range'\n        psi = 11 if altitude_ft <= 2000 else 12 if altitude_ft <= 4000 else 13 if altitude_ft <= 6000 else 14\n        return {'minutes': base_minutes + add, 'psi': psi}\n    if method == 'weighted':\n        return {'minutes': base_minutes, 'psi': 10 if altitude_ft <= 1000 else 15}\n    return 'error: method' \ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],\n  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],\n  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],\n  ['regression: pressure time adjustment', ['dial', 4000, 15], {'minutes': 15, 'psi': 12}],\n  ['repair check: pressure time adjustment', ['dial', 4500, 15], {'minutes': 15, 'psi': 13}],\n  ['generated control 1', ['water bath', 10500, 40], 'error: altitude out of range'],\n  ['generated control 2', ['dial', 0, 10], {'minutes': 10, 'psi': 11}],\n  ['generated control 3', ['weighted', 4500, 10], {'minutes': 10, 'psi': 15}]],\n [['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],\n  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],\n  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],\n  ['regression: pressure time adjustment', ['dial', 2001, 20], {'minutes': 20, 'psi': 12}],\n  ['repair check: pressure time adjustment', ['dial', 2000, 10], {'minutes': 10, 'psi': 11}],\n  ['generated control 1', ['water bath', 500, 85], {'minutes': 85, 'psi': None}],\n  ['generated control 2', ['steam', 1000, 25], 'error: method'],\n  ['generated control 3', ['weighted', 6000, 25], {'minutes': 25, 'psi': 15}]],\n [['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],\n  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],\n  ['unknown method', ['steam', 500, 10], 'error: method'],\n  ['regression: pressure time adjustment', ['dial', 4500, 15], {'minutes': 15, 'psi': 13}],\n  ['repair check: pressure time adjustment', ['dial', 6000, 40], {'minutes': 40, 'psi': 13}],\n  ['generated control 1', ['water bath', 8500, 85], {'minutes': 105, 'psi': None}],\n  ['generated control 2', ['weighted', 8000, 15], {'minutes': 15, 'psi': 15}],\n  ['generated control 3', ['water bath', 1000, 40], {'minutes': 40, 'psi': None}]],\n [['too high', ['water bath', 10500, 10], 'error: altitude out of range'],\n  ['unknown method', ['steam', 500, 10], 'error: method'],\n  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],\n  ['regression: pressure time adjustment', ['dial', 3000, 40], {'minutes': 40, 'psi': 12}],\n  ['repair check: pressure time adjustment', ['dial', 4500, 20], {'minutes': 20, 'psi': 13}],\n  ['generated control 1', ['water bath', 4000, 10], {'minutes': 20, 'psi': None}],\n  ['generated control 2', ['weighted', 0, 25], {'minutes': 25, 'psi': 10}],\n  ['generated control 3', ['steam', 2000, 25], 'error: method']],\n [['unknown method', ['steam', 500, 10], 'error: method'],\n  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],\n  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],\n  ['regression: pressure time adjustment', ['dial', 7000, 20], {'minutes': 20, 'psi': 14}],\n  ['repair check: pressure time adjustment', ['dial', 2001, 10], {'minutes': 10, 'psi': 12}],\n  ['generated control 1', ['water bath', 4000, 40], {'minutes': 50, 'psi': None}],\n  ['generated control 2', ['weighted', 1000, 25], {'minutes': 25, 'psi': 10}],\n  ['generated control 3', ['water bath', 2001, 20], {'minutes': 25, 'psi': None}]]]\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":"A deterministic toy contract stated in full here; it is a bounded teaching model, not an authoritative reference or standards implementation. 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-recipe_scaling_and_nutrition-canning-altitude-pressure-time-adjustment","generated_at":"2026-09-29T14:52:29.045011+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Preserving recipes must lengthen time or raise pressure at altitude to stay safe (toy table).","root_cause":"The water-bath time addition is also applied to dial-gauge processing.","sha256":"7b4e515c47b03a91ac8dc7b8b445b010d7925ae1bfa343f08f6330049c4b49db","title":"Home canning altitude table: pressure time adjustment · 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":44.804,"exit_code":1,"observations":[{"actual":{"minutes":10,"psi":null},"check":"sea level bath","expected":{"minutes":10,"psi":null},"passed":true},{"actual":{"minutes":10,"psi":null},"check":"band edge 1000","expected":{"minutes":10,"psi":null},"passed":true},{"actual":{"minutes":27,"psi":12},"check":"dial mid","expected":{"minutes":25,"psi":12},"passed":false},{"actual":{"minutes":20,"psi":12},"check":"regression: pressure time adjustment","expected":{"minutes":15,"psi":12},"passed":false},{"actual":{"minutes":20,"psi":13},"check":"repair check: pressure time adjustment","expected":{"minutes":15,"psi":13},"passed":false},{"actual":"error: altitude out of range","check":"generated control 1","expected":"error: altitude out of range","passed":true},{"actual":{"minutes":10,"psi":11},"check":"generated control 2","expected":{"minutes":10,"psi":11},"passed":true},{"actual":{"minutes":10,"psi":15},"check":"generated control 3","expected":{"minutes":10,"psi":15},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"sea level bath\", \"actual\": {\"minutes\": 10, \"psi\": null}, \"expected\": {\"minutes\": 10, \"psi\": null}, \"passed\": true}, {\"check\": \"band edge 1000\", \"actual\": {\"minutes\": 10, \"psi\": null}, \"expected\": {\"minutes\": 10, \"psi\": null}, \"passed\": true}, {\"check\": \"dial mid\", \"actual\": {\"minutes\": 27, \"psi\": 12}, \"expected\": {\"minutes\": 25, \"psi\": 12}, \"passed\": false}, {\"check\": \"regression: pressure time adjustment\", \"actual\": {\"minutes\": 20, \"psi\": 12}, \"expected\": {\"minutes\": 15, \"psi\": 12}, \"passed\": false}, {\"check\": \"repair check: pressure time adjustment\", \"actual\": {\"minutes\": 20, \"psi\": 13}, \"expected\": {\"minutes\": 15, \"psi\": 13}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": \"error: altitude out of range\", \"expected\": \"error: altitude out of range\", \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"minutes\": 10, \"psi\": 11}, \"expected\": {\"minutes\": 10, \"psi\": 11}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"minutes\": 10, \"psi\": 15}, \"expected\": {\"minutes\": 10, \"psi\": 15}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.554,"exit_code":1,"observations":[{"actual":{"minutes":10,"psi":null},"check":"sea level bath","expected":{"minutes":10,"psi":null},"passed":true},{"actual":{"minutes":10,"psi":null},"check":"band edge 1000","expected":{"minutes":10,"psi":null},"passed":true},{"actual":{"minutes":30,"psi":12},"check":"dial mid","expected":{"minutes":25,"psi":12},"passed":false},{"actual":{"minutes":25,"psi":12},"check":"regression: pressure time adjustment","expected":{"minutes":15,"psi":12},"passed":false},{"actual":{"minutes":25,"psi":13},"check":"repair check: pressure time adjustment","expected":{"minutes":15,"psi":13},"passed":false},{"actual":"error: altitude out of range","check":"generated control 1","expected":"error: altitude out of range","passed":true},{"actual":{"minutes":10,"psi":11},"check":"generated control 2","expected":{"minutes":10,"psi":11},"passed":true},{"actual":{"minutes":10,"psi":15},"check":"generated control 3","expected":{"minutes":10,"psi":15},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"sea level bath\", \"actual\": {\"minutes\": 10, \"psi\": null}, \"expected\": {\"minutes\": 10, \"psi\": null}, \"passed\": true}, {\"check\": \"band edge 1000\", \"actual\": {\"minutes\": 10, \"psi\": null}, \"expected\": {\"minutes\": 10, \"psi\": null}, \"passed\": true}, {\"check\": \"dial mid\", \"actual\": {\"minutes\": 30, \"psi\": 12}, \"expected\": {\"minutes\": 25, \"psi\": 12}, \"passed\": false}, {\"check\": \"regression: pressure time adjustment\", \"actual\": {\"minutes\": 25, \"psi\": 12}, \"expected\": {\"minutes\": 15, \"psi\": 12}, \"passed\": false}, {\"check\": \"repair check: pressure time adjustment\", \"actual\": {\"minutes\": 25, \"psi\": 13}, \"expected\": {\"minutes\": 15, \"psi\": 13}, \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": \"error: altitude out of range\", \"expected\": \"error: altitude out of range\", \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": {\"minutes\": 10, \"psi\": 11}, \"expected\": {\"minutes\": 10, \"psi\": 11}, \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": {\"minutes\": 10, \"psi\": 15}, \"expected\": {\"minutes\": 10, \"psi\": 15}, \"passed\": true}], \"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."}}