{"abstract":"A 40 g serving of a small-RACC food qualifies for low fat on its diluted per-50 g figure alone.","category":"Recipe scaling and nutrition","checks":8,"contract":"Toy claim rules. If racc_g <= 30 (small reference amount), sodium, fat and sugars are judged on max(per serving, per 50 g) where per 50 g = value*50/serving_g. Sodium: <5 \"sodium free\", else <=35 \"very low sodium\", else <=140 \"low sodium\" (one claim). Fat: <0.5 \"fat free\", else <=3 \"low fat\". Fiber judged per serving only: >=5 \"high fiber\", else >=2.5 \"good source of fiber\". Sugars <0.5 \"sugar free\". Missing nutrients count as 0. Return sorted claims.","contract_signature":"per_serving, serving_g, racc_g","evaluation_group":"w2-recipe_scaling_and_nutrition-content-claims","failed_approach":"min() picks the more lenient basis.","family":"w2-recipe_scaling_and_nutrition-content-claims-stricter-of-two-bases","id":"FA-97166","implementations":{"attempt":{"sha256":"c98b5098676777da8fed06da08825b1afc89e7e20721ae6c489dffde42603d73","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(per_serving, serving_g, racc_g):\n    small = racc_g <= 30\n    def basis(k):\n        v = Fraction(str(per_serving.get(k, 0)))\n        if small:\n            v = min(v, v * 50 / Fraction(str(serving_g)))\n        return v\n    claims = []\n    na = basis('sodium')\n    if na < 5:\n        claims.append('sodium free')\n    elif na <= 35:\n        claims.append('very low sodium')\n    elif na <= 140:\n        claims.append('low sodium')\n    fat = basis('fat')\n    if fat < Fraction(1, 2):\n        claims.append('fat free')\n    elif fat <= 3:\n        claims.append('low fat')\n    fib = Fraction(str(per_serving.get('fiber', 0)))\n    if fib >= 5:\n        claims.append('high fiber')\n    elif fib >= Fraction(5, 2):\n        claims.append('good source of fiber')\n    if basis('sugars') < Fraction(1, 2):\n        claims.append('sugar free')\n    return sorted(claims)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['large serving', [{'fat': 2, 'fiber': 5, 'sodium': 100, 'sugars': 0}, 240, 240],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['small serving per 50 g', [{'fat': 1, 'fiber': 1, 'sodium': 30, 'sugars': 0.2}, 15, 15], ['low sodium']],\n  ['racc exactly 30', [{'fat': 2, 'sodium': 100}, 20, 30], ['sugar free']],\n  ['regression: stricter of two bases', [{'fat': 1, 'fiber': 5, 'sodium': 4.9, 'sugars': 2}, 240, 20],\n   ['high fiber', 'low fat', 'sodium free']],\n  ['repair check: stricter of two bases', [{'fat': 2.5, 'fiber': 4.9, 'sodium': 100, 'sugars': 0.5}, 15, 20],\n   ['good source of fiber']],\n  ['generated control 1', [{'fat': 0, 'fiber': 0, 'sodium': 100, 'sugars': 2}, 28, 50],\n   ['fat free', 'low sodium']],\n  ['generated control 2', [{'sodium': 5, 'sugars': 0.5}, 10, 15], ['fat free', 'very low sodium']],\n  ['generated control 3', [{'fat': 0, 'sodium': 4.9}, 100, 15], ['fat free', 'sodium free', 'sugar free']]],\n [['small serving per 50 g', [{'fat': 1, 'fiber': 1, 'sodium': 30, 'sugars': 0.2}, 15, 15], ['low sodium']],\n  ['racc exactly 30', [{'fat': 2, 'sodium': 100}, 20, 30], ['sugar free']],\n  ['empty', [{}, 100, 100], ['fat free', 'sodium free', 'sugar free']],\n  ['regression: stricter of two bases', [{'fat': 0, 'fiber': 1, 'sodium': 35, 'sugars': 0.5}, 55, 15],\n   ['fat free', 'very low sodium']],\n  ['repair check: stricter of two bases', [{'fat': 0, 'fiber': 4.9, 'sodium': 30, 'sugars': 2}, 20, 15],\n   ['fat free', 'good source of fiber', 'low sodium']],\n  ['generated control 1', [{'fat': 4, 'sugars': 2}, 10, 20], ['sodium free']],\n  ['generated control 2', [{'fat': 0, 'fiber': 4.9, 'sodium': 36}, 40, 240],\n   ['fat free', 'good source of fiber', 'low sodium', 'sugar free']],\n  ['generated control 3', [{'fat': 0.3, 'fiber': 4.9, 'sodium': 100, 'sugars': 2}, 30, 20],\n   ['good source of fiber', 'low fat']]],\n [['racc exactly 30', [{'fat': 2, 'sodium': 100}, 20, 30], ['sugar free']],\n  ['empty', [{}, 100, 100], ['fat free', 'sodium free', 'sugar free']],\n  ['large serving', [{'fat': 2, 'fiber': 5, 'sodium': 100, 'sugars': 0}, 240, 240],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['regression: stricter of two bases', [{'fat': 0.3, 'sodium': 141, 'sugars': 2}, 100, 30], ['fat free']],\n  ['repair check: stricter of two bases', [{'fat': 1, 'fiber': 2.5, 'sodium': 4.9, 'sugars': 0}, 15, 15],\n   ['good source of fiber', 'sugar free', 'very low sodium']],\n  ['generated control 1', [{'fat': 3, 'fiber': 0}, 30, 15], ['sodium free', 'sugar free']],\n  ['generated control 2', [{'fat': 0, 'fiber': 6, 'sodium': 100, 'sugars': 0}, 15, 15],\n   ['fat free', 'high fiber', 'sugar free']],\n  ['generated control 3', [{'fat': 2.5, 'fiber': 0, 'sodium': 141, 'sugars': 0.2}, 10, 40],\n   ['low fat', 'sugar free']]],\n [['empty', [{}, 100, 100], ['fat free', 'sodium free', 'sugar free']],\n  ['large serving', [{'fat': 2, 'fiber': 5, 'sodium': 100, 'sugars': 0}, 240, 240],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['small serving per 50 g', [{'fat': 1, 'fiber': 1, 'sodium': 30, 'sugars': 0.2}, 15, 15], ['low sodium']],\n  ['regression: stricter of two bases', [{'fat': 0.5, 'fiber': 2.5, 'sodium': 140, 'sugars': 0.4}, 55, 15],\n   ['good source of fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['repair check: stricter of two bases', [{'sodium': 140, 'sugars': 2}, 20, 15], ['fat free']],\n  ['generated control 1', [{'fat': 2.5, 'fiber': 3, 'sodium': 141, 'sugars': 0.2}, 55, 40],\n   ['good source of fiber', 'low fat', 'sugar free']],\n  ['generated control 2', [{'fat': 1, 'fiber': 5, 'sodium': 36}, 40, 31],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['generated control 3', [{'fiber': 3, 'sodium': 36, 'sugars': 0.4}, 10, 40],\n   ['fat free', 'good source of fiber', 'low sodium', 'sugar free']]],\n [['large serving', [{'fat': 2, 'fiber': 5, 'sodium': 100, 'sugars': 0}, 240, 240],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['small serving per 50 g', [{'fat': 1, 'fiber': 1, 'sodium': 30, 'sugars': 0.2}, 15, 15], ['low sodium']],\n  ['racc exactly 30', [{'fat': 2, 'sodium': 100}, 20, 30], ['sugar free']],\n  ['regression: stricter of two bases', [{'fat': 0, 'fiber': 0, 'sodium': 36, 'sugars': 2}, 240, 20],\n   ['fat free', 'low sodium']],\n  ['repair check: stricter of two bases', [{'fat': 4, 'fiber': 0, 'sodium': 3, 'sugars': 0.2}, 10, 15],\n   ['very low sodium']],\n  ['generated control 1', [{'sodium': 4.9, 'sugars': 0}, 15, 31], ['fat free', 'sodium free', 'sugar free']],\n  ['generated control 2', [{'fat': 0.5, 'sodium': 4.9}, 55, 40], ['low fat', 'sodium free', 'sugar free']],\n  ['generated control 3', [{'fat': 0, 'fiber': 5, 'sodium': 3, 'sugars': 0.4}, 100, 20],\n   ['fat free', 'high fiber', 'sodium free', 'sugar free']]]]\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":"babfcf476fad5b4e4e7a8f512611b5df6727b7673c2d0d72af07f265663ced9f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(per_serving, serving_g, racc_g):\n    small = racc_g <= 30\n    def basis(k):\n        v = Fraction(str(per_serving.get(k, 0)))\n        if small:\n            v = v * 50 / Fraction(str(serving_g))\n        return v\n    claims = []\n    na = basis('sodium')\n    if na < 5:\n        claims.append('sodium free')\n    elif na <= 35:\n        claims.append('very low sodium')\n    elif na <= 140:\n        claims.append('low sodium')\n    fat = basis('fat')\n    if fat < Fraction(1, 2):\n        claims.append('fat free')\n    elif fat <= 3:\n        claims.append('low fat')\n    fib = Fraction(str(per_serving.get('fiber', 0)))\n    if fib >= 5:\n        claims.append('high fiber')\n    elif fib >= Fraction(5, 2):\n        claims.append('good source of fiber')\n    if basis('sugars') < Fraction(1, 2):\n        claims.append('sugar free')\n    return sorted(claims)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['large serving', [{'fat': 2, 'fiber': 5, 'sodium': 100, 'sugars': 0}, 240, 240],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['small serving per 50 g', [{'fat': 1, 'fiber': 1, 'sodium': 30, 'sugars': 0.2}, 15, 15], ['low sodium']],\n  ['racc exactly 30', [{'fat': 2, 'sodium': 100}, 20, 30], ['sugar free']],\n  ['regression: stricter of two bases', [{'fat': 1, 'fiber': 5, 'sodium': 4.9, 'sugars': 2}, 240, 20],\n   ['high fiber', 'low fat', 'sodium free']],\n  ['repair check: stricter of two bases', [{'fat': 2.5, 'fiber': 4.9, 'sodium': 100, 'sugars': 0.5}, 15, 20],\n   ['good source of fiber']],\n  ['generated control 1', [{'fat': 0, 'fiber': 0, 'sodium': 100, 'sugars': 2}, 28, 50],\n   ['fat free', 'low sodium']],\n  ['generated control 2', [{'sodium': 5, 'sugars': 0.5}, 10, 15], ['fat free', 'very low sodium']],\n  ['generated control 3', [{'fat': 0, 'sodium': 4.9}, 100, 15], ['fat free', 'sodium free', 'sugar free']]],\n [['small serving per 50 g', [{'fat': 1, 'fiber': 1, 'sodium': 30, 'sugars': 0.2}, 15, 15], ['low sodium']],\n  ['racc exactly 30', [{'fat': 2, 'sodium': 100}, 20, 30], ['sugar free']],\n  ['empty', [{}, 100, 100], ['fat free', 'sodium free', 'sugar free']],\n  ['regression: stricter of two bases', [{'fat': 0, 'fiber': 1, 'sodium': 35, 'sugars': 0.5}, 55, 15],\n   ['fat free', 'very low sodium']],\n  ['repair check: stricter of two bases', [{'fat': 0, 'fiber': 4.9, 'sodium': 30, 'sugars': 2}, 20, 15],\n   ['fat free', 'good source of fiber', 'low sodium']],\n  ['generated control 1', [{'fat': 4, 'sugars': 2}, 10, 20], ['sodium free']],\n  ['generated control 2', [{'fat': 0, 'fiber': 4.9, 'sodium': 36}, 40, 240],\n   ['fat free', 'good source of fiber', 'low sodium', 'sugar free']],\n  ['generated control 3', [{'fat': 0.3, 'fiber': 4.9, 'sodium': 100, 'sugars': 2}, 30, 20],\n   ['good source of fiber', 'low fat']]],\n [['racc exactly 30', [{'fat': 2, 'sodium': 100}, 20, 30], ['sugar free']],\n  ['empty', [{}, 100, 100], ['fat free', 'sodium free', 'sugar free']],\n  ['large serving', [{'fat': 2, 'fiber': 5, 'sodium': 100, 'sugars': 0}, 240, 240],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['regression: stricter of two bases', [{'fat': 0.3, 'sodium': 141, 'sugars': 2}, 100, 30], ['fat free']],\n  ['repair check: stricter of two bases', [{'fat': 1, 'fiber': 2.5, 'sodium': 4.9, 'sugars': 0}, 15, 15],\n   ['good source of fiber', 'sugar free', 'very low sodium']],\n  ['generated control 1', [{'fat': 3, 'fiber': 0}, 30, 15], ['sodium free', 'sugar free']],\n  ['generated control 2', [{'fat': 0, 'fiber': 6, 'sodium': 100, 'sugars': 0}, 15, 15],\n   ['fat free', 'high fiber', 'sugar free']],\n  ['generated control 3', [{'fat': 2.5, 'fiber': 0, 'sodium': 141, 'sugars': 0.2}, 10, 40],\n   ['low fat', 'sugar free']]],\n [['empty', [{}, 100, 100], ['fat free', 'sodium free', 'sugar free']],\n  ['large serving', [{'fat': 2, 'fiber': 5, 'sodium': 100, 'sugars': 0}, 240, 240],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['small serving per 50 g', [{'fat': 1, 'fiber': 1, 'sodium': 30, 'sugars': 0.2}, 15, 15], ['low sodium']],\n  ['regression: stricter of two bases', [{'fat': 0.5, 'fiber': 2.5, 'sodium': 140, 'sugars': 0.4}, 55, 15],\n   ['good source of fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['repair check: stricter of two bases', [{'sodium': 140, 'sugars': 2}, 20, 15], ['fat free']],\n  ['generated control 1', [{'fat': 2.5, 'fiber': 3, 'sodium': 141, 'sugars': 0.2}, 55, 40],\n   ['good source of fiber', 'low fat', 'sugar free']],\n  ['generated control 2', [{'fat': 1, 'fiber': 5, 'sodium': 36}, 40, 31],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['generated control 3', [{'fiber': 3, 'sodium': 36, 'sugars': 0.4}, 10, 40],\n   ['fat free', 'good source of fiber', 'low sodium', 'sugar free']]],\n [['large serving', [{'fat': 2, 'fiber': 5, 'sodium': 100, 'sugars': 0}, 240, 240],\n   ['high fiber', 'low fat', 'low sodium', 'sugar free']],\n  ['small serving per 50 g', [{'fat': 1, 'fiber': 1, 'sodium': 30, 'sugars': 0.2}, 15, 15], ['low sodium']],\n  ['racc exactly 30', [{'fat': 2, 'sodium': 100}, 20, 30], ['sugar free']],\n  ['regression: stricter of two bases', [{'fat': 0, 'fiber': 0, 'sodium': 36, 'sugars': 2}, 240, 20],\n   ['fat free', 'low sodium']],\n  ['repair check: stricter of two bases', [{'fat': 4, 'fiber': 0, 'sodium': 3, 'sugars': 0.2}, 10, 15],\n   ['very low sodium']],\n  ['generated control 1', [{'sodium': 4.9, 'sugars': 0}, 15, 31], ['fat free', 'sodium free', 'sugar free']],\n  ['generated control 2', [{'fat': 0.5, 'sodium': 4.9}, 55, 40], ['low fat', 'sodium free', 'sugar free']],\n  ['generated control 3', [{'fat': 0, 'fiber': 5, 'sodium': 3, 'sugars': 0.4}, 100, 20],\n   ['fat free', 'high fiber', 'sodium free', 'sugar free']]]]\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-content-claims-stricter-of-two-bases","generated_at":"2026-09-29T14:52:29.544817+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Front-of-pack claims depend on per-serving and small-serving reference amount rules.","root_cause":"The per-50 g value replaces the per-serving value instead of taking the stricter of the two.","sha256":"6fc18f6e57b6aa14ac2ee543b114013ba0a066af49958e8e94cc008c52be7725","title":"Nutrient content claim screener: stricter of two bases · 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":42.56,"exit_code":1,"observations":[{"actual":["high fiber","low fat","low sodium","sugar free"],"check":"large serving","expected":["high fiber","low fat","low sodium","sugar free"],"passed":true},{"actual":["low fat","sugar free","very low sodium"],"check":"small serving per 50 g","expected":["low sodium"],"passed":false},{"actual":["low fat","low sodium","sugar free"],"check":"racc exactly 30","expected":["sugar free"],"passed":false},{"actual":["fat free","high fiber","sodium free","sugar free"],"check":"regression: stricter of two bases","expected":["high fiber","low fat","sodium free"],"passed":false},{"actual":["good source of fiber","low fat","low sodium"],"check":"repair check: stricter of two bases","expected":["good source of fiber"],"passed":false},{"actual":["fat free","low sodium"],"check":"generated control 1","expected":["fat free","low sodium"],"passed":true},{"actual":["fat free","very low sodium"],"check":"generated control 2","expected":["fat free","very low sodium"],"passed":true},{"actual":["fat free","sodium free","sugar free"],"check":"generated control 3","expected":["fat free","sodium free","sugar free"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"large serving\", \"actual\": [\"high fiber\", \"low fat\", \"low sodium\", \"sugar free\"], \"expected\": [\"high fiber\", \"low fat\", \"low sodium\", \"sugar free\"], \"passed\": true}, {\"check\": \"small serving per 50 g\", \"actual\": [\"low fat\", \"sugar free\", \"very low sodium\"], \"expected\": [\"low sodium\"], \"passed\": false}, {\"check\": \"racc exactly 30\", \"actual\": [\"low fat\", \"low sodium\", \"sugar free\"], \"expected\": [\"sugar free\"], \"passed\": false}, {\"check\": \"regression: stricter of two bases\", \"actual\": [\"fat free\", \"high fiber\", \"sodium free\", \"sugar free\"], \"expected\": [\"high fiber\", \"low fat\", \"sodium free\"], \"passed\": false}, {\"check\": \"repair check: stricter of two bases\", \"actual\": [\"good source of fiber\", \"low fat\", \"low sodium\"], \"expected\": [\"good source of fiber\"], \"passed\": false}, {\"check\": \"generated control 1\", \"actual\": [\"fat free\", \"low sodium\"], \"expected\": [\"fat free\", \"low sodium\"], \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": [\"fat free\", \"very low sodium\"], \"expected\": [\"fat free\", \"very low sodium\"], \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": [\"fat free\", \"sodium free\", \"sugar free\"], \"expected\": [\"fat free\", \"sodium free\", \"sugar free\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.02,"exit_code":1,"observations":[{"actual":["high fiber","low fat","low sodium","sugar free"],"check":"large serving","expected":["high fiber","low fat","low sodium","sugar free"],"passed":true},{"actual":["low sodium"],"check":"small serving per 50 g","expected":["low sodium"],"passed":true},{"actual":["sugar free"],"check":"racc exactly 30","expected":["sugar free"],"passed":true},{"actual":["fat free","high fiber","sodium free","sugar free"],"check":"regression: stricter of two bases","expected":["high fiber","low fat","sodium free"],"passed":false},{"actual":["good source of fiber"],"check":"repair check: stricter of two bases","expected":["good source of fiber"],"passed":true},{"actual":["fat free","low sodium"],"check":"generated control 1","expected":["fat free","low sodium"],"passed":true},{"actual":["fat free","very low sodium"],"check":"generated control 2","expected":["fat free","very low sodium"],"passed":true},{"actual":["fat free","sodium free","sugar free"],"check":"generated control 3","expected":["fat free","sodium free","sugar free"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"large serving\", \"actual\": [\"high fiber\", \"low fat\", \"low sodium\", \"sugar free\"], \"expected\": [\"high fiber\", \"low fat\", \"low sodium\", \"sugar free\"], \"passed\": true}, {\"check\": \"small serving per 50 g\", \"actual\": [\"low sodium\"], \"expected\": [\"low sodium\"], \"passed\": true}, {\"check\": \"racc exactly 30\", \"actual\": [\"sugar free\"], \"expected\": [\"sugar free\"], \"passed\": true}, {\"check\": \"regression: stricter of two bases\", \"actual\": [\"fat free\", \"high fiber\", \"sodium free\", \"sugar free\"], \"expected\": [\"high fiber\", \"low fat\", \"sodium free\"], \"passed\": false}, {\"check\": \"repair check: stricter of two bases\", \"actual\": [\"good source of fiber\"], \"expected\": [\"good source of fiber\"], \"passed\": true}, {\"check\": \"generated control 1\", \"actual\": [\"fat free\", \"low sodium\"], \"expected\": [\"fat free\", \"low sodium\"], \"passed\": true}, {\"check\": \"generated control 2\", \"actual\": [\"fat free\", \"very low sodium\"], \"expected\": [\"fat free\", \"very low sodium\"], \"passed\": true}, {\"check\": \"generated control 3\", \"actual\": [\"fat free\", \"sodium free\", \"sugar free\"], \"expected\": [\"fat free\", \"sodium free\", \"sugar free\"], \"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."}}