{"abstract":"Stacked items in one category exceed that category's maximum.","category":"Insurance premium rating","checks":9,"contract":"Input premium, items [[category, per mille; negative is a credit]], caps {category: max abs per mille}, max_credit, max_debit. Unknown category -> 'unknown category <name>'. Items are summed per category, each category clamped to its cap, the total clamped to [-max_credit, max_debit], and premium*(1000+total)/1000 rounded half-up. Return [total, premium].","evaluation_group":"w2-insurance_premium_rating-schedule-rating","failed_approach":"Clamping only debits leaves category credits unlimited.","family":"w2-insurance_premium_rating-schedule-rating-category-cap","id":"FA-63041","implementations":{"attempt":{"sha256":"488320c1064240aedff791305c14c08df951869484d9b1f33471d0435bcad64c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    per={}\n    for cat,v in x['items']:\n        if cat not in x['caps']: return 'unknown category '+cat\n        per[cat]=per.get(cat,0)+v\n    tot=0\n    for cat,v in sorted(per.items()):\n        c=x['caps'][cat]\n        tot+=min(c,v)\n    tot=max(-x['max_credit'],min(x['max_debit'],tot))\n    return [tot, math.floor(x['premium']*Fraction(1000+tot,1000)+Fraction(1,2))]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['split credits in one category', {'premium': 589010, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 553669]], ['category cap binds on debit', {'premium': 872720, 'items': [['equipment', 30], ['equipment', 26], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 898902]], ['overall credit cap binds', {'premium': 194515, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 155612]], ['overall debit cap binds', {'premium': 730552, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 818218]], ['unknown credit category', {'premium': 820316, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 179351, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 275874, 'items': [['premises', -7], ['employees', -2], ['management', -17]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-26, 268701]], ['no items', {'premium': 289888, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 289888]], ['credit within caps', {'premium': 802858, 'items': [['management', -31], ['employees', -7]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-38, 772349]]], [['split credits in one category', {'premium': 366527, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 344535]], ['category cap binds on debit', {'premium': 688814, 'items': [['equipment', 30], ['equipment', 27], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 709478]], ['overall credit cap binds', {'premium': 391467, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 313174]], ['overall debit cap binds', {'premium': 605730, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 678418]], ['unknown credit category', {'premium': 554487, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 377083, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 645018, 'items': [['premises', 12], ['employees', -6], ['management', 11]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [17, 655983]], ['no items', {'premium': 197679, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 197679]], ['credit within caps', {'premium': 746783, 'items': [['management', -30], ['employees', -7]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-37, 719152]]], [['split credits in one category', {'premium': 149318, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 140359]], ['category cap binds on debit', {'premium': 776580, 'items': [['equipment', 30], ['equipment', 28], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 799877]], ['overall credit cap binds', {'premium': 205836, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 164669]], ['overall debit cap binds', {'premium': 685528, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 767791]], ['unknown credit category', {'premium': 672687, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 231208, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 466715, 'items': [['premises', -26], ['employees', 7], ['management', 25]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [6, 469515]], ['no items', {'premium': 280573, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 280573]], ['credit within caps', {'premium': 847372, 'items': [['management', -15], ['employees', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-20, 830425]]], [['split credits in one category', {'premium': 259668, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 244088]], ['category cap binds on debit', {'premium': 544757, 'items': [['equipment', 30], ['equipment', 29], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 561100]], ['overall credit cap binds', {'premium': 105294, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 84235]], ['overall debit cap binds', {'premium': 228463, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 255879]], ['unknown credit category', {'premium': 336609, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 528562, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 111054, 'items': [['premises', -5], ['employees', -3], ['management', -26]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-34, 107278]], ['no items', {'premium': 432026, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 432026]], ['credit within caps', {'premium': 578818, 'items': [['management', -23], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-33, 559717]]], [['split credits in one category', {'premium': 838683, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 788362]], ['category cap binds on debit', {'premium': 190937, 'items': [['equipment', 30], ['equipment', 30], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 196665]], ['overall credit cap binds', {'premium': 878341, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 702673]], ['overall debit cap binds', {'premium': 467322, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 523401]], ['unknown credit category', {'premium': 352112, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 280978, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 150014, 'items': [['premises', 12], ['employees', -23], ['management', 12]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [1, 150164]], ['no items', {'premium': 788931, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 788931]], ['credit within caps', {'premium': 263345, 'items': [['management', -19], ['employees', -17]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-36, 253865]]]]\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":"b91fc1c39f70995254bfe6538ec66189c6a38fd1511476379f246596a1278af9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    per={}\n    for cat,v in x['items']:\n        if cat not in x['caps']: return 'unknown category '+cat\n        per[cat]=per.get(cat,0)+v\n    tot=0\n    for cat,v in sorted(per.items()):\n        c=x['caps'][cat]\n        tot+=v\n    tot=max(-x['max_credit'],min(x['max_debit'],tot))\n    return [tot, math.floor(x['premium']*Fraction(1000+tot,1000)+Fraction(1,2))]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['split credits in one category', {'premium': 589010, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 553669]], ['category cap binds on debit', {'premium': 872720, 'items': [['equipment', 30], ['equipment', 26], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 898902]], ['overall credit cap binds', {'premium': 194515, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 155612]], ['overall debit cap binds', {'premium': 730552, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 818218]], ['unknown credit category', {'premium': 820316, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 179351, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 275874, 'items': [['premises', -7], ['employees', -2], ['management', -17]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-26, 268701]], ['no items', {'premium': 289888, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 289888]], ['credit within caps', {'premium': 802858, 'items': [['management', -31], ['employees', -7]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-38, 772349]]], [['split credits in one category', {'premium': 366527, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 344535]], ['category cap binds on debit', {'premium': 688814, 'items': [['equipment', 30], ['equipment', 27], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 709478]], ['overall credit cap binds', {'premium': 391467, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 313174]], ['overall debit cap binds', {'premium': 605730, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 678418]], ['unknown credit category', {'premium': 554487, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 377083, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 645018, 'items': [['premises', 12], ['employees', -6], ['management', 11]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [17, 655983]], ['no items', {'premium': 197679, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 197679]], ['credit within caps', {'premium': 746783, 'items': [['management', -30], ['employees', -7]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-37, 719152]]], [['split credits in one category', {'premium': 149318, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 140359]], ['category cap binds on debit', {'premium': 776580, 'items': [['equipment', 30], ['equipment', 28], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 799877]], ['overall credit cap binds', {'premium': 205836, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 164669]], ['overall debit cap binds', {'premium': 685528, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 767791]], ['unknown credit category', {'premium': 672687, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 231208, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 466715, 'items': [['premises', -26], ['employees', 7], ['management', 25]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [6, 469515]], ['no items', {'premium': 280573, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 280573]], ['credit within caps', {'premium': 847372, 'items': [['management', -15], ['employees', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-20, 830425]]], [['split credits in one category', {'premium': 259668, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 244088]], ['category cap binds on debit', {'premium': 544757, 'items': [['equipment', 30], ['equipment', 29], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 561100]], ['overall credit cap binds', {'premium': 105294, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 84235]], ['overall debit cap binds', {'premium': 228463, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 255879]], ['unknown credit category', {'premium': 336609, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 528562, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 111054, 'items': [['premises', -5], ['employees', -3], ['management', -26]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-34, 107278]], ['no items', {'premium': 432026, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 432026]], ['credit within caps', {'premium': 578818, 'items': [['management', -23], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-33, 559717]]], [['split credits in one category', {'premium': 838683, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 788362]], ['category cap binds on debit', {'premium': 190937, 'items': [['equipment', 30], ['equipment', 30], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 196665]], ['overall credit cap binds', {'premium': 878341, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 702673]], ['overall debit cap binds', {'premium': 467322, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 523401]], ['unknown credit category', {'premium': 352112, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 280978, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 150014, 'items': [['premises', 12], ['employees', -23], ['management', 12]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [1, 150164]], ['no items', {'premium': 788931, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 788931]], ['credit within caps', {'premium': 263345, 'items': [['management', -19], ['employees', -17]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-36, 253865]]]]\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"},"fixed":{"sha256":"ebfd9010dff521a690232b39999acadf971220cfa514b6480c50102e2a576f5a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    per={}\n    for cat,v in x['items']:\n        if cat not in x['caps']: return 'unknown category '+cat\n        per[cat]=per.get(cat,0)+v\n    tot=0\n    for cat,v in sorted(per.items()):\n        c=x['caps'][cat]\n        tot+=max(-c,min(c,v))\n    tot=max(-x['max_credit'],min(x['max_debit'],tot))\n    return [tot, math.floor(x['premium']*Fraction(1000+tot,1000)+Fraction(1,2))]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['split credits in one category', {'premium': 589010, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 553669]], ['category cap binds on debit', {'premium': 872720, 'items': [['equipment', 30], ['equipment', 26], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 898902]], ['overall credit cap binds', {'premium': 194515, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 155612]], ['overall debit cap binds', {'premium': 730552, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 818218]], ['unknown credit category', {'premium': 820316, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 179351, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 275874, 'items': [['premises', -7], ['employees', -2], ['management', -17]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-26, 268701]], ['no items', {'premium': 289888, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 289888]], ['credit within caps', {'premium': 802858, 'items': [['management', -31], ['employees', -7]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-38, 772349]]], [['split credits in one category', {'premium': 366527, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 344535]], ['category cap binds on debit', {'premium': 688814, 'items': [['equipment', 30], ['equipment', 27], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 709478]], ['overall credit cap binds', {'premium': 391467, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 313174]], ['overall debit cap binds', {'premium': 605730, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 678418]], ['unknown credit category', {'premium': 554487, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 377083, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 645018, 'items': [['premises', 12], ['employees', -6], ['management', 11]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [17, 655983]], ['no items', {'premium': 197679, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 197679]], ['credit within caps', {'premium': 746783, 'items': [['management', -30], ['employees', -7]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-37, 719152]]], [['split credits in one category', {'premium': 149318, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 140359]], ['category cap binds on debit', {'premium': 776580, 'items': [['equipment', 30], ['equipment', 28], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 799877]], ['overall credit cap binds', {'premium': 205836, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 164669]], ['overall debit cap binds', {'premium': 685528, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 767791]], ['unknown credit category', {'premium': 672687, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 231208, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 466715, 'items': [['premises', -26], ['employees', 7], ['management', 25]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [6, 469515]], ['no items', {'premium': 280573, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 280573]], ['credit within caps', {'premium': 847372, 'items': [['management', -15], ['employees', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-20, 830425]]], [['split credits in one category', {'premium': 259668, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 244088]], ['category cap binds on debit', {'premium': 544757, 'items': [['equipment', 30], ['equipment', 29], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 561100]], ['overall credit cap binds', {'premium': 105294, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 84235]], ['overall debit cap binds', {'premium': 228463, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 255879]], ['unknown credit category', {'premium': 336609, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 528562, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 111054, 'items': [['premises', -5], ['employees', -3], ['management', -26]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-34, 107278]], ['no items', {'premium': 432026, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 432026]], ['credit within caps', {'premium': 578818, 'items': [['management', -23], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-33, 559717]]], [['split credits in one category', {'premium': 838683, 'items': [['management', -50], ['management', -45], ['premises', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-60, 788362]], ['category cap binds on debit', {'premium': 190937, 'items': [['equipment', 30], ['equipment', 30], ['employees', -10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [30, 196665]], ['overall credit cap binds', {'premium': 878341, 'items': [['premises', -50], ['employees', -60], ['management', -80], ['equipment', -40], ['premises', -5]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 200, 'max_debit': 150}, [-200, 702673]], ['overall debit cap binds', {'premium': 467322, 'items': [['premises', 50], ['employees', 60], ['management', 60]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 120}, [120, 523401]], ['unknown credit category', {'premium': 352112, 'items': [['weather', -20], ['premises', 10]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['unknown debit category', {'premium': 280978, 'items': [['weather', 20]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, 'unknown category weather'], ['mixed small items', {'premium': 150014, 'items': [['premises', 12], ['employees', -23], ['management', 12]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [1, 150164]], ['no items', {'premium': 788931, 'items': [], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [0, 788931]], ['credit within caps', {'premium': 263345, 'items': [['management', -19], ['employees', -17]], 'caps': {'premises': 50, 'employees': 60, 'management': 80, 'equipment': 40}, 'max_credit': 250, 'max_debit': 150}, [-36, 253865]]]]\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 bounded teaching model of a stipulated toy rating contract. Amounts are integer cents and factors exact rationals; it makes no claim of conformance with any filed rating plan, bureau manual or jurisdiction. 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-insurance_premium_rating-schedule-rating-category-cap","generated_at":"2026-09-29T14:47:10.473603+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Premium rating engines apply ordered tabular rules where one misplaced boundary or step silently misprices policies.","repair":"Clamp each category sum to [-cap, cap].","root_cause":"Category sums are added to the total without clamping.","sha256":"100efc1a44a7bd4902ce49e497bacc1337fc50a554e4aeff7aaf110272fb8cbd","title":"Schedule rating credits and debits: Category caps are not applied · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.363,"exit_code":1,"observations":[{"actual":[-75,544834],"check":"split credits in one category","expected":[-60,553669],"passed":false},{"actual":[30,898902],"check":"category cap binds on debit","expected":[30,898902],"passed":true},{"actual":[-200,155612],"check":"overall credit cap binds","expected":[-200,155612],"passed":true},{"actual":[120,818218],"check":"overall debit cap binds","expected":[120,818218],"passed":true},{"actual":"unknown category weather","check":"unknown credit category","expected":"unknown category weather","passed":true},{"actual":"unknown category weather","check":"unknown debit category","expected":"unknown category weather","passed":true},{"actual":[-26,268701],"check":"mixed small items","expected":[-26,268701],"passed":true},{"actual":[0,289888],"check":"no items","expected":[0,289888],"passed":true},{"actual":[-38,772349],"check":"credit within caps","expected":[-38,772349],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"split credits in one category\", \"actual\": [-75, 544834], \"expected\": [-60, 553669], \"passed\": false}, {\"check\": \"category cap binds on debit\", \"actual\": [30, 898902], \"expected\": [30, 898902], \"passed\": true}, {\"check\": \"overall credit cap binds\", \"actual\": [-200, 155612], \"expected\": [-200, 155612], \"passed\": true}, {\"check\": \"overall debit cap binds\", \"actual\": [120, 818218], \"expected\": [120, 818218], \"passed\": true}, {\"check\": \"unknown credit category\", \"actual\": \"unknown category weather\", \"expected\": \"unknown category weather\", \"passed\": true}, {\"check\": \"unknown debit category\", \"actual\": \"unknown category weather\", \"expected\": \"unknown category weather\", \"passed\": true}, {\"check\": \"mixed small items\", \"actual\": [-26, 268701], \"expected\": [-26, 268701], \"passed\": true}, {\"check\": \"no items\", \"actual\": [0, 289888], \"expected\": [0, 289888], \"passed\": true}, {\"check\": \"credit within caps\", \"actual\": [-38, 772349], \"expected\": [-38, 772349], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.39,"exit_code":1,"observations":[{"actual":[-75,544834],"check":"split credits in one category","expected":[-60,553669],"passed":false},{"actual":[46,912865],"check":"category cap binds on debit","expected":[30,898902],"passed":false},{"actual":[-200,155612],"check":"overall credit cap binds","expected":[-200,155612],"passed":true},{"actual":[120,818218],"check":"overall debit cap binds","expected":[120,818218],"passed":true},{"actual":"unknown category weather","check":"unknown credit category","expected":"unknown category weather","passed":true},{"actual":"unknown category weather","check":"unknown debit category","expected":"unknown category weather","passed":true},{"actual":[-26,268701],"check":"mixed small items","expected":[-26,268701],"passed":true},{"actual":[0,289888],"check":"no items","expected":[0,289888],"passed":true},{"actual":[-38,772349],"check":"credit within caps","expected":[-38,772349],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"split credits in one category\", \"actual\": [-75, 544834], \"expected\": [-60, 553669], \"passed\": false}, {\"check\": \"category cap binds on debit\", \"actual\": [46, 912865], \"expected\": [30, 898902], \"passed\": false}, {\"check\": \"overall credit cap binds\", \"actual\": [-200, 155612], \"expected\": [-200, 155612], \"passed\": true}, {\"check\": \"overall debit cap binds\", \"actual\": [120, 818218], \"expected\": [120, 818218], \"passed\": true}, {\"check\": \"unknown credit category\", \"actual\": \"unknown category weather\", \"expected\": \"unknown category weather\", \"passed\": true}, {\"check\": \"unknown debit category\", \"actual\": \"unknown category weather\", \"expected\": \"unknown category weather\", \"passed\": true}, {\"check\": \"mixed small items\", \"actual\": [-26, 268701], \"expected\": [-26, 268701], \"passed\": true}, {\"check\": \"no items\", \"actual\": [0, 289888], \"expected\": [0, 289888], \"passed\": true}, {\"check\": \"credit within caps\", \"actual\": [-38, 772349], \"expected\": [-38, 772349], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.517,"exit_code":0,"observations":[{"actual":[-60,553669],"check":"split credits in one category","expected":[-60,553669],"passed":true},{"actual":[30,898902],"check":"category cap binds on debit","expected":[30,898902],"passed":true},{"actual":[-200,155612],"check":"overall credit cap binds","expected":[-200,155612],"passed":true},{"actual":[120,818218],"check":"overall debit cap binds","expected":[120,818218],"passed":true},{"actual":"unknown category weather","check":"unknown credit category","expected":"unknown category weather","passed":true},{"actual":"unknown category weather","check":"unknown debit category","expected":"unknown category weather","passed":true},{"actual":[-26,268701],"check":"mixed small items","expected":[-26,268701],"passed":true},{"actual":[0,289888],"check":"no items","expected":[0,289888],"passed":true},{"actual":[-38,772349],"check":"credit within caps","expected":[-38,772349],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"split credits in one category\", \"actual\": [-60, 553669], \"expected\": [-60, 553669], \"passed\": true}, {\"check\": \"category cap binds on debit\", \"actual\": [30, 898902], \"expected\": [30, 898902], \"passed\": true}, {\"check\": \"overall credit cap binds\", \"actual\": [-200, 155612], \"expected\": [-200, 155612], \"passed\": true}, {\"check\": \"overall debit cap binds\", \"actual\": [120, 818218], \"expected\": [120, 818218], \"passed\": true}, {\"check\": \"unknown credit category\", \"actual\": \"unknown category weather\", \"expected\": \"unknown category weather\", \"passed\": true}, {\"check\": \"unknown debit category\", \"actual\": \"unknown category weather\", \"expected\": \"unknown category weather\", \"passed\": true}, {\"check\": \"mixed small items\", \"actual\": [-26, 268701], \"expected\": [-26, 268701], \"passed\": true}, {\"check\": \"no items\", \"actual\": [0, 289888], \"expected\": [0, 289888], \"passed\": true}, {\"check\": \"credit within caps\", \"actual\": [-38, 772349], \"expected\": [-38, 772349], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}