FA-97026 / Recipe scaling and nutrition / Open access
Percent daily value formatter: vitamin d IU conversion · case 01
400 IU of vitamin D reports 80000% DV.
ROOT CAUSE
International units are multiplied by 40 instead of divided when converting to mcg.
VERIFIED REPAIR
Divide IU by 40 and treat the result as mcg.
Unsuccessful approach: Labelling the converted amount mg makes it a thousand times too large.
Case contract
DVs: sodium 2300 mg, fat 78 g, fiber 28 g, calcium 1300 mg, vitamin d 20 mcg, added sugars 50 g, protein 50 g. Names are trimmed, case-insensitive; unknown -> "error: no daily value". Units g, mg, mcg convert exactly; "iu" is allowed only for vitamin d (40 IU = 1 mcg), else "error: unit". pct = amount/DV*100. Zero -> "0%". Calcium and vitamin d: <2 -> "<2%", <=10 -> nearest 2, <=50 -> nearest 5, else nearest 10. Others: <1 -> "<1%", else nearest 1. Half-up.
Why this case matters
Label software prints %DV with different increments for micronutrients and macronutrients.
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(nutrient, amount, unit):
DV = {'sodium': (2300, 'mg'), 'fat': (78, 'g'), 'fiber': (28, 'g'), 'calcium': (1300, 'mg'),
'vitamin d': (20, 'mcg'), 'added sugars': (50, 'g'), 'protein': (50, 'g')}
SCALE = {'g': 1000000, 'mg': 1000, 'mcg': 1}
key = nutrient.strip().lower()
if key not in DV:
return 'error: no daily value'
amt = Fraction(str(amount))
if unit == 'iu':
if key != 'vitamin d':
return 'error: unit'
amt, unit = amt * 40, 'mcg'
if unit not in SCALE:
return 'error: unit'
dv, dvu = DV[key]
p = amt * SCALE[unit] / (dv * SCALE[dvu]) * 100
def near(v, s):
return math.floor(v / s + Fraction(1, 2)) * s
if p == 0:
return '0%'
if key in ('calcium', 'vitamin d'):
if p < 2:
return '<2%'
v = near(p, 2) if p <= 10 else near(p, 5) if p <= 50 else near(p, 10)
else:
if p < 1:
return '<1%'
v = near(p, 1)
return '%d%%' % v
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['sodium control', ['sodium', 460, 'mg'], '20%'],
['calcium exactly two percent', ['calcium', 26, 'mg'], '2%'],
['vitamin d in IU', ['vitamin d', 400, 'iu'], '50%'],
['regression: vitamin d IU conversion', ['vitamin d', 5, 'iu'], '<2%'],
['repair check: vitamin d IU conversion', ['vitamin d', 7.8, 'iu'], '<2%'],
['generated control 1', [' Sodium', 650, 'mg'], '28%'],
['generated control 2', ['fiber', 700, 'g'], '2500%'],
['generated control 3', ['protein', 0.2, 'g'], '<1%']],
[['calcium exactly two percent', ['calcium', 26, 'mg'], '2%'],
['vitamin d in IU', ['vitamin d', 400, 'iu'], '50%'], ['fat in grams', ['fat', 3, 'g'], '4%'],
['regression: vitamin d IU conversion', ['vitamin d', 40, 'iu'], '6%'],
['repair check: vitamin d IU conversion', ['vitamin d', 5, 'iu'], '<2%'],
['generated control 1', ['fiber', 1, 'mcg'], '<1%'], ['generated control 2', ['calcium', 0, 'mg'], '0%'],
['generated control 3', ['protein', 130, 'mcg'], '<1%']],
[['vitamin d in IU', ['vitamin d', 400, 'iu'], '50%'], ['fat in grams', ['fat', 3, 'g'], '4%'],
['zero calcium', ['calcium', 0, 'mg'], '0%'],
['regression: vitamin d IU conversion', ['vitamin d', 1000, 'iu'], '130%'],
['repair check: vitamin d IU conversion', ['vitamin d', 0.5, 'iu'], '<2%'],
['generated control 1', ['fat', 26, 'mcg'], '<1%'],
['generated control 2', ['vitamin d', 1500, 'mg'], '7500000%'],
['generated control 3', ['CALCIUM', 7.8, 'mcg'], '<2%']],
[['fat in grams', ['fat', 3, 'g'], '4%'], ['zero calcium', ['calcium', 0, 'mg'], '0%'],
['iu for sodium rejected', ['sodium', 10, 'iu'], 'error: unit'],
['regression: vitamin d IU conversion', ['vitamin d', 2, 'iu'], '<2%'],
['repair check: vitamin d IU conversion', ['vitamin d', 26, 'iu'], '4%'],
['generated control 1', [' Sodium', 0.39, 'g'], '17%'],
['generated control 2', ['added sugars', 700, 'g'], '1400%'],
['generated control 3', ['iron', 10, 'mg'], 'error: no daily value']],
[['zero calcium', ['calcium', 0, 'mg'], '0%'],
['iu for sodium rejected', ['sodium', 10, 'iu'], 'error: unit'],
['sodium control', ['sodium', 460, 'mg'], '20%'],
['regression: vitamin d IU conversion', ['vitamin d', 1, 'iu'], '<2%'],
['repair check: vitamin d IU conversion', ['vitamin d', 650, 'iu'], '80%'],
['generated control 1', ['vitamin d', 130, 'g'], '650000000%'],
['generated control 2', ['fiber', 0.2, 'g'], '<1%'],
['generated control 3', ['calcium', 40, 'g'], '3080%']]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| sodium control | 20% | 20% | Passed |
| calcium exactly two percent | 2% | 2% | Passed |
| vitamin d in IU | 80000% | 50% | Failed |
| regression: vitamin d IU conversion | 1000% | <2% | Failed |
| repair check: vitamin d IU conversion | 1560% | <2% | Failed |
| generated control 1 | 28% | 28% | Passed |
| generated control 2 | 2500% | 2500% | Passed |
| generated control 3 | <1% | <1% | Passed |
SHA-256 / 8359d13899f1e17c3116d6bbf0dae8d6422583a361e5fa7617c16aecd94ad1ae
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(nutrient, amount, unit):
DV = {'sodium': (2300, 'mg'), 'fat': (78, 'g'), 'fiber': (28, 'g'), 'calcium': (1300, 'mg'),
'vitamin d': (20, 'mcg'), 'added sugars': (50, 'g'), 'protein': (50, 'g')}
SCALE = {'g': 1000000, 'mg': 1000, 'mcg': 1}
key = nutrient.strip().lower()
if key not in DV:
return 'error: no daily value'
amt = Fraction(str(amount))
if unit == 'iu':
if key != 'vitamin d':
return 'error: unit'
amt, unit = amt / 40, 'mg'
if unit not in SCALE:
return 'error: unit'
dv, dvu = DV[key]
p = amt * SCALE[unit] / (dv * SCALE[dvu]) * 100
def near(v, s):
return math.floor(v / s + Fraction(1, 2)) * s
if p == 0:
return '0%'
if key in ('calcium', 'vitamin d'):
if p < 2:
return '<2%'
v = near(p, 2) if p <= 10 else near(p, 5) if p <= 50 else near(p, 10)
else:
if p < 1:
return '<1%'
v = near(p, 1)
return '%d%%' % v
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['sodium control', ['sodium', 460, 'mg'], '20%'],
['calcium exactly two percent', ['calcium', 26, 'mg'], '2%'],
['vitamin d in IU', ['vitamin d', 400, 'iu'], '50%'],
['regression: vitamin d IU conversion', ['vitamin d', 5, 'iu'], '<2%'],
['repair check: vitamin d IU conversion', ['vitamin d', 7.8, 'iu'], '<2%'],
['generated control 1', [' Sodium', 650, 'mg'], '28%'],
['generated control 2', ['fiber', 700, 'g'], '2500%'],
['generated control 3', ['protein', 0.2, 'g'], '<1%']],
[['calcium exactly two percent', ['calcium', 26, 'mg'], '2%'],
['vitamin d in IU', ['vitamin d', 400, 'iu'], '50%'], ['fat in grams', ['fat', 3, 'g'], '4%'],
['regression: vitamin d IU conversion', ['vitamin d', 40, 'iu'], '6%'],
['repair check: vitamin d IU conversion', ['vitamin d', 5, 'iu'], '<2%'],
['generated control 1', ['fiber', 1, 'mcg'], '<1%'], ['generated control 2', ['calcium', 0, 'mg'], '0%'],
['generated control 3', ['protein', 130, 'mcg'], '<1%']],
[['vitamin d in IU', ['vitamin d', 400, 'iu'], '50%'], ['fat in grams', ['fat', 3, 'g'], '4%'],
['zero calcium', ['calcium', 0, 'mg'], '0%'],
['regression: vitamin d IU conversion', ['vitamin d', 1000, 'iu'], '130%'],
['repair check: vitamin d IU conversion', ['vitamin d', 0.5, 'iu'], '<2%'],
['generated control 1', ['fat', 26, 'mcg'], '<1%'],
['generated control 2', ['vitamin d', 1500, 'mg'], '7500000%'],
['generated control 3', ['CALCIUM', 7.8, 'mcg'], '<2%']],
[['fat in grams', ['fat', 3, 'g'], '4%'], ['zero calcium', ['calcium', 0, 'mg'], '0%'],
['iu for sodium rejected', ['sodium', 10, 'iu'], 'error: unit'],
['regression: vitamin d IU conversion', ['vitamin d', 2, 'iu'], '<2%'],
['repair check: vitamin d IU conversion', ['vitamin d', 26, 'iu'], '4%'],
['generated control 1', [' Sodium', 0.39, 'g'], '17%'],
['generated control 2', ['added sugars', 700, 'g'], '1400%'],
['generated control 3', ['iron', 10, 'mg'], 'error: no daily value']],
[['zero calcium', ['calcium', 0, 'mg'], '0%'],
['iu for sodium rejected', ['sodium', 10, 'iu'], 'error: unit'],
['sodium control', ['sodium', 460, 'mg'], '20%'],
['regression: vitamin d IU conversion', ['vitamin d', 1, 'iu'], '<2%'],
['repair check: vitamin d IU conversion', ['vitamin d', 650, 'iu'], '80%'],
['generated control 1', ['vitamin d', 130, 'g'], '650000000%'],
['generated control 2', ['fiber', 0.2, 'g'], '<1%'],
['generated control 3', ['calcium', 40, 'g'], '3080%']]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| sodium control | 20% | 20% | Passed |
| calcium exactly two percent | 2% | 2% | Passed |
| vitamin d in IU | 50000% | 50% | Failed |
| regression: vitamin d IU conversion | 630% | <2% | Failed |
| repair check: vitamin d IU conversion | 980% | <2% | Failed |
| generated control 1 | 28% | 28% | Passed |
| generated control 2 | 2500% | 2500% | Passed |
| generated control 3 | <1% | <1% | Passed |
SHA-256 / 515bc5ac0077a002dbc26493170105795a201c10cd92d1fcbd517c318eed124f
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(nutrient, amount, unit):
DV = {'sodium': (2300, 'mg'), 'fat': (78, 'g'), 'fiber': (28, 'g'), 'calcium': (1300, 'mg'),
'vitamin d': (20, 'mcg'), 'added sugars': (50, 'g'), 'protein': (50, 'g')}
SCALE = {'g': 1000000, 'mg': 1000, 'mcg': 1}
key = nutrient.strip().lower()
if key not in DV:
return 'error: no daily value'
amt = Fraction(str(amount))
if unit == 'iu':
if key != 'vitamin d':
return 'error: unit'
amt, unit = amt / 40, 'mcg'
if unit not in SCALE:
return 'error: unit'
dv, dvu = DV[key]
p = amt * SCALE[unit] / (dv * SCALE[dvu]) * 100
def near(v, s):
return math.floor(v / s + Fraction(1, 2)) * s
if p == 0:
return '0%'
if key in ('calcium', 'vitamin d'):
if p < 2:
return '<2%'
v = near(p, 2) if p <= 10 else near(p, 5) if p <= 50 else near(p, 10)
else:
if p < 1:
return '<1%'
v = near(p, 1)
return '%d%%' % v
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['sodium control', ['sodium', 460, 'mg'], '20%'],
['calcium exactly two percent', ['calcium', 26, 'mg'], '2%'],
['vitamin d in IU', ['vitamin d', 400, 'iu'], '50%'],
['regression: vitamin d IU conversion', ['vitamin d', 5, 'iu'], '<2%'],
['repair check: vitamin d IU conversion', ['vitamin d', 7.8, 'iu'], '<2%'],
['generated control 1', [' Sodium', 650, 'mg'], '28%'],
['generated control 2', ['fiber', 700, 'g'], '2500%'],
['generated control 3', ['protein', 0.2, 'g'], '<1%']],
[['calcium exactly two percent', ['calcium', 26, 'mg'], '2%'],
['vitamin d in IU', ['vitamin d', 400, 'iu'], '50%'], ['fat in grams', ['fat', 3, 'g'], '4%'],
['regression: vitamin d IU conversion', ['vitamin d', 40, 'iu'], '6%'],
['repair check: vitamin d IU conversion', ['vitamin d', 5, 'iu'], '<2%'],
['generated control 1', ['fiber', 1, 'mcg'], '<1%'], ['generated control 2', ['calcium', 0, 'mg'], '0%'],
['generated control 3', ['protein', 130, 'mcg'], '<1%']],
[['vitamin d in IU', ['vitamin d', 400, 'iu'], '50%'], ['fat in grams', ['fat', 3, 'g'], '4%'],
['zero calcium', ['calcium', 0, 'mg'], '0%'],
['regression: vitamin d IU conversion', ['vitamin d', 1000, 'iu'], '130%'],
['repair check: vitamin d IU conversion', ['vitamin d', 0.5, 'iu'], '<2%'],
['generated control 1', ['fat', 26, 'mcg'], '<1%'],
['generated control 2', ['vitamin d', 1500, 'mg'], '7500000%'],
['generated control 3', ['CALCIUM', 7.8, 'mcg'], '<2%']],
[['fat in grams', ['fat', 3, 'g'], '4%'], ['zero calcium', ['calcium', 0, 'mg'], '0%'],
['iu for sodium rejected', ['sodium', 10, 'iu'], 'error: unit'],
['regression: vitamin d IU conversion', ['vitamin d', 2, 'iu'], '<2%'],
['repair check: vitamin d IU conversion', ['vitamin d', 26, 'iu'], '4%'],
['generated control 1', [' Sodium', 0.39, 'g'], '17%'],
['generated control 2', ['added sugars', 700, 'g'], '1400%'],
['generated control 3', ['iron', 10, 'mg'], 'error: no daily value']],
[['zero calcium', ['calcium', 0, 'mg'], '0%'],
['iu for sodium rejected', ['sodium', 10, 'iu'], 'error: unit'],
['sodium control', ['sodium', 460, 'mg'], '20%'],
['regression: vitamin d IU conversion', ['vitamin d', 1, 'iu'], '<2%'],
['repair check: vitamin d IU conversion', ['vitamin d', 650, 'iu'], '80%'],
['generated control 1', ['vitamin d', 130, 'g'], '650000000%'],
['generated control 2', ['fiber', 0.2, 'g'], '<1%'],
['generated control 3', ['calcium', 40, 'g'], '3080%']]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| sodium control | 20% | 20% | Passed |
| calcium exactly two percent | 2% | 2% | Passed |
| vitamin d in IU | 50% | 50% | Passed |
| regression: vitamin d IU conversion | <2% | <2% | Passed |
| repair check: vitamin d IU conversion | <2% | <2% | Passed |
| generated control 1 | 28% | 28% | Passed |
| generated control 2 | 2500% | 2500% | Passed |
| generated control 3 | <1% | <1% | Passed |
SHA-256 / 3a3f9e9047c0754ab693e6fe5f35e2ac8c10ddd5d59cdaad14fff303804bd388
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.179871+00:00.
Case digest / ecf145b362aa0cf82d3253ae2dd4e5eee74c563507b28478dbaf64802a8a6aea