FAILURE MAP
← Case archive

FA-97116 / Recipe scaling and nutrition / Open access

Home canning altitude table: weighted gauge band · case 01

A weighted gauge at 1500 ft is set to 10 psi.

Verified by executionVariant 1 · 8 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The weighted-gauge low band borrows the dial 2000 ft edge.

VERIFIED REPAIR

Use 10 psi only up to 1000 ft.

Unsuccessful approach: A strict < excludes exactly 1000 ft from the 10 psi band.

Case 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".

Why this case matters

Preserving recipes must lengthen time or raise pressure at altitude to stay safe (toy table).

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(method, altitude_ft, base_minutes):
    if altitude_ft > 10000:
        return 'error: altitude out of range'
    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
    if method == 'water bath':
        return {'minutes': base_minutes + add, 'psi': None}
    if method == 'dial':
        if altitude_ft > 8000:
            return 'error: altitude out of range'
        psi = 11 if altitude_ft <= 2000 else 12 if altitude_ft <= 4000 else 13 if altitude_ft <= 6000 else 14
        return {'minutes': base_minutes, 'psi': psi}
    if method == 'weighted':
        return {'minutes': base_minutes, 'psi': 10 if altitude_ft <= 2000 else 15}
    return 'error: method' 
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],
  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],
  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],
  ['regression: weighted gauge band', ['weighted', 1001, 10], {'minutes': 10, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 40], {'minutes': 40, 'psi': 10}],
  ['generated control 1', ['weighted', 4500, 10], {'minutes': 10, 'psi': 15}],
  ['generated control 2', ['water bath', 3000, 10], {'minutes': 15, 'psi': None}],
  ['generated control 3', ['dial', 1001, 20], {'minutes': 20, 'psi': 11}]],
 [['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],
  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],
  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],
  ['regression: weighted gauge band', ['weighted', 1001, 85], {'minutes': 85, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 25], {'minutes': 25, 'psi': 10}],
  ['generated control 1', ['water bath', 10500, 20], 'error: altitude out of range'],
  ['generated control 2', ['weighted', 10500, 15], 'error: altitude out of range'],
  ['generated control 3', ['steam', 8000, 15], 'error: method']],
 [['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],
  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],
  ['unknown method', ['steam', 500, 10], 'error: method'],
  ['regression: weighted gauge band', ['weighted', 1001, 40], {'minutes': 40, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 25], {'minutes': 25, 'psi': 10}],
  ['generated control 1', ['weighted', 7000, 15], {'minutes': 15, 'psi': 15}],
  ['generated control 2', ['dial', 6000, 15], {'minutes': 15, 'psi': 13}],
  ['generated control 3', ['steam', 500, 25], 'error: method']],
 [['too high', ['water bath', 10500, 10], 'error: altitude out of range'],
  ['unknown method', ['steam', 500, 10], 'error: method'],
  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],
  ['regression: weighted gauge band', ['weighted', 1001, 15], {'minutes': 15, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 85], {'minutes': 85, 'psi': 10}],
  ['generated control 1', ['dial', 8500, 40], 'error: altitude out of range'],
  ['generated control 2', ['steam', 1000, 25], 'error: method'],
  ['generated control 3', ['weighted', 8000, 25], {'minutes': 25, 'psi': 15}]],
 [['unknown method', ['steam', 500, 10], 'error: method'],
  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],
  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],
  ['regression: weighted gauge band', ['weighted', 2000, 25], {'minutes': 25, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 15], {'minutes': 15, 'psi': 10}],
  ['generated control 1', ['weighted', 8000, 85], {'minutes': 85, 'psi': 15}],
  ['generated control 2', ['water bath', 8500, 20], {'minutes': 40, 'psi': None}],
  ['generated control 3', ['steam', 8000, 10], 'error: method']]]
for label, args, expected in fixtures[N - 1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
sea level bath{'minutes': 10, 'psi': None}{'minutes': 10, 'psi': None}Passed
band edge 1000{'minutes': 10, 'psi': None}{'minutes': 10, 'psi': None}Passed
dial mid{'minutes': 25, 'psi': 12}{'minutes': 25, 'psi': 12}Passed
regression: weighted gauge band{'minutes': 10, 'psi': 10}{'minutes': 10, 'psi': 15}Failed
repair check: weighted gauge band{'minutes': 40, 'psi': 10}{'minutes': 40, 'psi': 10}Passed
generated control 1{'minutes': 10, 'psi': 15}{'minutes': 10, 'psi': 15}Passed
generated control 2{'minutes': 15, 'psi': None}{'minutes': 15, 'psi': None}Passed
generated control 3{'minutes': 20, 'psi': 11}{'minutes': 20, 'psi': 11}Passed

SHA-256 / bc19d76c2b1caaa0b3071c27896bc70bae239a55f6b771566a9d0700dd803d8d

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(method, altitude_ft, base_minutes):
    if altitude_ft > 10000:
        return 'error: altitude out of range'
    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
    if method == 'water bath':
        return {'minutes': base_minutes + add, 'psi': None}
    if method == 'dial':
        if altitude_ft > 8000:
            return 'error: altitude out of range'
        psi = 11 if altitude_ft <= 2000 else 12 if altitude_ft <= 4000 else 13 if altitude_ft <= 6000 else 14
        return {'minutes': base_minutes, 'psi': psi}
    if method == 'weighted':
        return {'minutes': base_minutes, 'psi': 10 if altitude_ft < 1000 else 15}
    return 'error: method' 
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],
  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],
  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],
  ['regression: weighted gauge band', ['weighted', 1001, 10], {'minutes': 10, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 40], {'minutes': 40, 'psi': 10}],
  ['generated control 1', ['weighted', 4500, 10], {'minutes': 10, 'psi': 15}],
  ['generated control 2', ['water bath', 3000, 10], {'minutes': 15, 'psi': None}],
  ['generated control 3', ['dial', 1001, 20], {'minutes': 20, 'psi': 11}]],
 [['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],
  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],
  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],
  ['regression: weighted gauge band', ['weighted', 1001, 85], {'minutes': 85, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 25], {'minutes': 25, 'psi': 10}],
  ['generated control 1', ['water bath', 10500, 20], 'error: altitude out of range'],
  ['generated control 2', ['weighted', 10500, 15], 'error: altitude out of range'],
  ['generated control 3', ['steam', 8000, 15], 'error: method']],
 [['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],
  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],
  ['unknown method', ['steam', 500, 10], 'error: method'],
  ['regression: weighted gauge band', ['weighted', 1001, 40], {'minutes': 40, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 25], {'minutes': 25, 'psi': 10}],
  ['generated control 1', ['weighted', 7000, 15], {'minutes': 15, 'psi': 15}],
  ['generated control 2', ['dial', 6000, 15], {'minutes': 15, 'psi': 13}],
  ['generated control 3', ['steam', 500, 25], 'error: method']],
 [['too high', ['water bath', 10500, 10], 'error: altitude out of range'],
  ['unknown method', ['steam', 500, 10], 'error: method'],
  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],
  ['regression: weighted gauge band', ['weighted', 1001, 15], {'minutes': 15, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 85], {'minutes': 85, 'psi': 10}],
  ['generated control 1', ['dial', 8500, 40], 'error: altitude out of range'],
  ['generated control 2', ['steam', 1000, 25], 'error: method'],
  ['generated control 3', ['weighted', 8000, 25], {'minutes': 25, 'psi': 15}]],
 [['unknown method', ['steam', 500, 10], 'error: method'],
  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],
  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],
  ['regression: weighted gauge band', ['weighted', 2000, 25], {'minutes': 25, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 15], {'minutes': 15, 'psi': 10}],
  ['generated control 1', ['weighted', 8000, 85], {'minutes': 85, 'psi': 15}],
  ['generated control 2', ['water bath', 8500, 20], {'minutes': 40, 'psi': None}],
  ['generated control 3', ['steam', 8000, 10], 'error: method']]]
for label, args, expected in fixtures[N - 1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
sea level bath{'minutes': 10, 'psi': None}{'minutes': 10, 'psi': None}Passed
band edge 1000{'minutes': 10, 'psi': None}{'minutes': 10, 'psi': None}Passed
dial mid{'minutes': 25, 'psi': 12}{'minutes': 25, 'psi': 12}Passed
regression: weighted gauge band{'minutes': 10, 'psi': 15}{'minutes': 10, 'psi': 15}Passed
repair check: weighted gauge band{'minutes': 40, 'psi': 15}{'minutes': 40, 'psi': 10}Failed
generated control 1{'minutes': 10, 'psi': 15}{'minutes': 10, 'psi': 15}Passed
generated control 2{'minutes': 15, 'psi': None}{'minutes': 15, 'psi': None}Passed
generated control 3{'minutes': 20, 'psi': 11}{'minutes': 20, 'psi': 11}Passed

SHA-256 / 421c31477efe0d8a741c5514562d0682f12bca1240100e7a516b70c2d27b14a1

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
from fractions import Fraction
N = 1
observations = []
def solve(method, altitude_ft, base_minutes):
    if altitude_ft > 10000:
        return 'error: altitude out of range'
    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
    if method == 'water bath':
        return {'minutes': base_minutes + add, 'psi': None}
    if method == 'dial':
        if altitude_ft > 8000:
            return 'error: altitude out of range'
        psi = 11 if altitude_ft <= 2000 else 12 if altitude_ft <= 4000 else 13 if altitude_ft <= 6000 else 14
        return {'minutes': base_minutes, 'psi': psi}
    if method == 'weighted':
        return {'minutes': base_minutes, 'psi': 10 if altitude_ft <= 1000 else 15}
    return 'error: method' 
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],
  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],
  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],
  ['regression: weighted gauge band', ['weighted', 1001, 10], {'minutes': 10, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 40], {'minutes': 40, 'psi': 10}],
  ['generated control 1', ['weighted', 4500, 10], {'minutes': 10, 'psi': 15}],
  ['generated control 2', ['water bath', 3000, 10], {'minutes': 15, 'psi': None}],
  ['generated control 3', ['dial', 1001, 20], {'minutes': 20, 'psi': 11}]],
 [['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],
  ['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],
  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],
  ['regression: weighted gauge band', ['weighted', 1001, 85], {'minutes': 85, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 25], {'minutes': 25, 'psi': 10}],
  ['generated control 1', ['water bath', 10500, 20], 'error: altitude out of range'],
  ['generated control 2', ['weighted', 10500, 15], 'error: altitude out of range'],
  ['generated control 3', ['steam', 8000, 15], 'error: method']],
 [['dial mid', ['dial', 3000, 25], {'minutes': 25, 'psi': 12}],
  ['too high', ['water bath', 10500, 10], 'error: altitude out of range'],
  ['unknown method', ['steam', 500, 10], 'error: method'],
  ['regression: weighted gauge band', ['weighted', 1001, 40], {'minutes': 40, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 25], {'minutes': 25, 'psi': 10}],
  ['generated control 1', ['weighted', 7000, 15], {'minutes': 15, 'psi': 15}],
  ['generated control 2', ['dial', 6000, 15], {'minutes': 15, 'psi': 13}],
  ['generated control 3', ['steam', 500, 25], 'error: method']],
 [['too high', ['water bath', 10500, 10], 'error: altitude out of range'],
  ['unknown method', ['steam', 500, 10], 'error: method'],
  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],
  ['regression: weighted gauge band', ['weighted', 1001, 15], {'minutes': 15, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 85], {'minutes': 85, 'psi': 10}],
  ['generated control 1', ['dial', 8500, 40], 'error: altitude out of range'],
  ['generated control 2', ['steam', 1000, 25], 'error: method'],
  ['generated control 3', ['weighted', 8000, 25], {'minutes': 25, 'psi': 15}]],
 [['unknown method', ['steam', 500, 10], 'error: method'],
  ['sea level bath', ['water bath', 0, 10], {'minutes': 10, 'psi': None}],
  ['band edge 1000', ['water bath', 1000, 10], {'minutes': 10, 'psi': None}],
  ['regression: weighted gauge band', ['weighted', 2000, 25], {'minutes': 25, 'psi': 15}],
  ['repair check: weighted gauge band', ['weighted', 1000, 15], {'minutes': 15, 'psi': 10}],
  ['generated control 1', ['weighted', 8000, 85], {'minutes': 85, 'psi': 15}],
  ['generated control 2', ['water bath', 8500, 20], {'minutes': 40, 'psi': None}],
  ['generated control 3', ['steam', 8000, 10], 'error: method']]]
for label, args, expected in fixtures[N - 1]:
    check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
sea level bath{'minutes': 10, 'psi': None}{'minutes': 10, 'psi': None}Passed
band edge 1000{'minutes': 10, 'psi': None}{'minutes': 10, 'psi': None}Passed
dial mid{'minutes': 25, 'psi': 12}{'minutes': 25, 'psi': 12}Passed
regression: weighted gauge band{'minutes': 10, 'psi': 15}{'minutes': 10, 'psi': 15}Passed
repair check: weighted gauge band{'minutes': 40, 'psi': 10}{'minutes': 40, 'psi': 10}Passed
generated control 1{'minutes': 10, 'psi': 15}{'minutes': 10, 'psi': 15}Passed
generated control 2{'minutes': 15, 'psi': None}{'minutes': 15, 'psi': None}Passed
generated control 3{'minutes': 20, 'psi': 11}{'minutes': 20, 'psi': 11}Passed

SHA-256 / ff121bad9f0e5a27f58dc189536d44cb42652aeade405740634b9164a756bb78

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:52:28.954904+00:00.

Case digest / 59719de4f919499ff33ee41217fe5e5496c64394c65e9425a3d5a79a319327cf