{"abstract":"Heavily discounted small policies are billed below the minimum premium.","category":"Insurance premium rating","checks":8,"contract":"Input premium, discounts [[group, code, per mille]], cap per mille, min_premium. A code repeated within a group counts once at its largest value; codes within a group add; groups combine multiplicatively; the total discount 1-product is capped; net = premium*(1-d) rounded half-up, then floored at min_premium.","evaluation_group":"w2-insurance_premium_rating-discount-stacking","failed_approach":"Skipping the floor for capped policies leaves the same gap for them.","family":"w2-insurance_premium_rating-discount-stacking-minimum-premium","id":"FA-63136","implementations":{"attempt":{"sha256":"8e897958ad4d33699f57367eed30537d09ce7ebb4d9f734c5ee4a54be7ffcd83","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    groups={}\n    for g,code,v in x['discounts']:\n        groups.setdefault(g,{})\n        groups[g][code]=max(groups[g].get(code,0),v)\n    f=Fraction(1)\n    for g in sorted(groups):\n        f*=1-Fraction(sum(groups[g].values()),1000)\n    d=min(Fraction(x['cap'],1000),1-f)\n    net=math.floor(x['premium']*(1-d)+Fraction(1,2))\n    return max(net,x['min_premium']) if d<Fraction(x['cap'],1000) else net\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['two groups multiply', {'premium': 179834, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 51], ['driver', 'student', 40]], 'cap': 350, 'min_premium': 20000}, 147122], ['duplicate discount code', {'premium': 83536, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 350, 'min_premium': 20000}, 72676], ['duplicate code rising value', {'premium': 216432, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 300, 'min_premium': 20000}, 199377], ['cap binds', {'premium': 295817, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 221863], ['single group', {'premium': 83079, 'discounts': [['vehicle', 'abs', 45], ['vehicle', 'alarm', 25]], 'cap': 350, 'min_premium': 20000}, 77263], ['minimum premium binds', {'premium': 22100, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 300, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 114606, 'discounts': [], 'cap': 350, 'min_premium': 20000}, 114606]], [['two groups multiply', {'premium': 259533, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 52], ['driver', 'student', 40]], 'cap': 300, 'min_premium': 20000}, 212090], ['duplicate discount code', {'premium': 222796, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 350, 'min_premium': 20000}, 193833], ['duplicate code rising value', {'premium': 264635, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 300, 'min_premium': 20000}, 243782], ['cap binds', {'premium': 274466, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 205850], ['single group', {'premium': 122187, 'discounts': [['vehicle', 'abs', 48], ['vehicle', 'alarm', 51]], 'cap': 350, 'min_premium': 20000}, 110090], ['minimum premium binds', {'premium': 22200, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 300, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 67195, 'discounts': [], 'cap': 300, 'min_premium': 20000}, 67195]], [['two groups multiply', {'premium': 246480, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 53], ['driver', 'student', 40]], 'cap': 300, 'min_premium': 20000}, 201202], ['duplicate discount code', {'premium': 212077, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 350, 'min_premium': 20000}, 184507], ['duplicate code rising value', {'premium': 239143, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 300, 'min_premium': 20000}, 220299], ['cap binds', {'premium': 260788, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 195591], ['single group', {'premium': 76428, 'discounts': [['vehicle', 'abs', 25], ['vehicle', 'alarm', 25]], 'cap': 350, 'min_premium': 20000}, 72607], ['minimum premium binds', {'premium': 22300, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 350, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 231596, 'discounts': [], 'cap': 300, 'min_premium': 20000}, 231596]], [['two groups multiply', {'premium': 234855, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 54], ['driver', 'student', 40]], 'cap': 300, 'min_premium': 20000}, 191501], ['duplicate discount code', {'premium': 62000, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 300, 'min_premium': 20000}, 53940], ['duplicate code rising value', {'premium': 164924, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 350, 'min_premium': 20000}, 151928], ['cap binds', {'premium': 160428, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 120321], ['single group', {'premium': 150010, 'discounts': [['vehicle', 'abs', 53], ['vehicle', 'alarm', 34]], 'cap': 350, 'min_premium': 20000}, 136959], ['minimum premium binds', {'premium': 22400, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 350, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 64059, 'discounts': [], 'cap': 350, 'min_premium': 20000}, 64059]], [['two groups multiply', {'premium': 70322, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 55], ['driver', 'student', 40]], 'cap': 350, 'min_premium': 20000}, 57277], ['duplicate discount code', {'premium': 120452, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 300, 'min_premium': 20000}, 104793], ['duplicate code rising value', {'premium': 89846, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 350, 'min_premium': 20000}, 82766], ['cap binds', {'premium': 116342, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 87257], ['single group', {'premium': 214086, 'discounts': [['vehicle', 'abs', 20], ['vehicle', 'alarm', 44]], 'cap': 300, 'min_premium': 20000}, 200384], ['minimum premium binds', {'premium': 22500, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 350, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 211453, 'discounts': [], 'cap': 300, 'min_premium': 20000}, 211453]]]\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":"78eaae8fe29e72f3b0bd9a45d3350ba1fd9ac38a7564ccbc483b74793a05cfb3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    groups={}\n    for g,code,v in x['discounts']:\n        groups.setdefault(g,{})\n        groups[g][code]=max(groups[g].get(code,0),v)\n    f=Fraction(1)\n    for g in sorted(groups):\n        f*=1-Fraction(sum(groups[g].values()),1000)\n    d=min(Fraction(x['cap'],1000),1-f)\n    net=math.floor(x['premium']*(1-d)+Fraction(1,2))\n    return net\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['two groups multiply', {'premium': 179834, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 51], ['driver', 'student', 40]], 'cap': 350, 'min_premium': 20000}, 147122], ['duplicate discount code', {'premium': 83536, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 350, 'min_premium': 20000}, 72676], ['duplicate code rising value', {'premium': 216432, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 300, 'min_premium': 20000}, 199377], ['cap binds', {'premium': 295817, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 221863], ['single group', {'premium': 83079, 'discounts': [['vehicle', 'abs', 45], ['vehicle', 'alarm', 25]], 'cap': 350, 'min_premium': 20000}, 77263], ['minimum premium binds', {'premium': 22100, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 300, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 114606, 'discounts': [], 'cap': 350, 'min_premium': 20000}, 114606]], [['two groups multiply', {'premium': 259533, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 52], ['driver', 'student', 40]], 'cap': 300, 'min_premium': 20000}, 212090], ['duplicate discount code', {'premium': 222796, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 350, 'min_premium': 20000}, 193833], ['duplicate code rising value', {'premium': 264635, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 300, 'min_premium': 20000}, 243782], ['cap binds', {'premium': 274466, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 205850], ['single group', {'premium': 122187, 'discounts': [['vehicle', 'abs', 48], ['vehicle', 'alarm', 51]], 'cap': 350, 'min_premium': 20000}, 110090], ['minimum premium binds', {'premium': 22200, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 300, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 67195, 'discounts': [], 'cap': 300, 'min_premium': 20000}, 67195]], [['two groups multiply', {'premium': 246480, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 53], ['driver', 'student', 40]], 'cap': 300, 'min_premium': 20000}, 201202], ['duplicate discount code', {'premium': 212077, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 350, 'min_premium': 20000}, 184507], ['duplicate code rising value', {'premium': 239143, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 300, 'min_premium': 20000}, 220299], ['cap binds', {'premium': 260788, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 195591], ['single group', {'premium': 76428, 'discounts': [['vehicle', 'abs', 25], ['vehicle', 'alarm', 25]], 'cap': 350, 'min_premium': 20000}, 72607], ['minimum premium binds', {'premium': 22300, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 350, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 231596, 'discounts': [], 'cap': 300, 'min_premium': 20000}, 231596]], [['two groups multiply', {'premium': 234855, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 54], ['driver', 'student', 40]], 'cap': 300, 'min_premium': 20000}, 191501], ['duplicate discount code', {'premium': 62000, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 300, 'min_premium': 20000}, 53940], ['duplicate code rising value', {'premium': 164924, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 350, 'min_premium': 20000}, 151928], ['cap binds', {'premium': 160428, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 120321], ['single group', {'premium': 150010, 'discounts': [['vehicle', 'abs', 53], ['vehicle', 'alarm', 34]], 'cap': 350, 'min_premium': 20000}, 136959], ['minimum premium binds', {'premium': 22400, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 350, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 64059, 'discounts': [], 'cap': 350, 'min_premium': 20000}, 64059]], [['two groups multiply', {'premium': 70322, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 55], ['driver', 'student', 40]], 'cap': 350, 'min_premium': 20000}, 57277], ['duplicate discount code', {'premium': 120452, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 300, 'min_premium': 20000}, 104793], ['duplicate code rising value', {'premium': 89846, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 350, 'min_premium': 20000}, 82766], ['cap binds', {'premium': 116342, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 87257], ['single group', {'premium': 214086, 'discounts': [['vehicle', 'abs', 20], ['vehicle', 'alarm', 44]], 'cap': 300, 'min_premium': 20000}, 200384], ['minimum premium binds', {'premium': 22500, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 350, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 211453, 'discounts': [], 'cap': 300, 'min_premium': 20000}, 211453]]]\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":"f98e14812180ea94dbb4d2c9ce412cfab2f5a2868e3a23cf11a4c348598344ed","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    groups={}\n    for g,code,v in x['discounts']:\n        groups.setdefault(g,{})\n        groups[g][code]=max(groups[g].get(code,0),v)\n    f=Fraction(1)\n    for g in sorted(groups):\n        f*=1-Fraction(sum(groups[g].values()),1000)\n    d=min(Fraction(x['cap'],1000),1-f)\n    net=math.floor(x['premium']*(1-d)+Fraction(1,2))\n    return max(net,x['min_premium'])\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['two groups multiply', {'premium': 179834, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 51], ['driver', 'student', 40]], 'cap': 350, 'min_premium': 20000}, 147122], ['duplicate discount code', {'premium': 83536, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 350, 'min_premium': 20000}, 72676], ['duplicate code rising value', {'premium': 216432, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 300, 'min_premium': 20000}, 199377], ['cap binds', {'premium': 295817, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 221863], ['single group', {'premium': 83079, 'discounts': [['vehicle', 'abs', 45], ['vehicle', 'alarm', 25]], 'cap': 350, 'min_premium': 20000}, 77263], ['minimum premium binds', {'premium': 22100, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 300, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 114606, 'discounts': [], 'cap': 350, 'min_premium': 20000}, 114606]], [['two groups multiply', {'premium': 259533, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 52], ['driver', 'student', 40]], 'cap': 300, 'min_premium': 20000}, 212090], ['duplicate discount code', {'premium': 222796, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 350, 'min_premium': 20000}, 193833], ['duplicate code rising value', {'premium': 264635, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 300, 'min_premium': 20000}, 243782], ['cap binds', {'premium': 274466, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 205850], ['single group', {'premium': 122187, 'discounts': [['vehicle', 'abs', 48], ['vehicle', 'alarm', 51]], 'cap': 350, 'min_premium': 20000}, 110090], ['minimum premium binds', {'premium': 22200, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 300, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 67195, 'discounts': [], 'cap': 300, 'min_premium': 20000}, 67195]], [['two groups multiply', {'premium': 246480, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 53], ['driver', 'student', 40]], 'cap': 300, 'min_premium': 20000}, 201202], ['duplicate discount code', {'premium': 212077, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 350, 'min_premium': 20000}, 184507], ['duplicate code rising value', {'premium': 239143, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 300, 'min_premium': 20000}, 220299], ['cap binds', {'premium': 260788, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 195591], ['single group', {'premium': 76428, 'discounts': [['vehicle', 'abs', 25], ['vehicle', 'alarm', 25]], 'cap': 350, 'min_premium': 20000}, 72607], ['minimum premium binds', {'premium': 22300, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 350, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 231596, 'discounts': [], 'cap': 300, 'min_premium': 20000}, 231596]], [['two groups multiply', {'premium': 234855, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 54], ['driver', 'student', 40]], 'cap': 300, 'min_premium': 20000}, 191501], ['duplicate discount code', {'premium': 62000, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 300, 'min_premium': 20000}, 53940], ['duplicate code rising value', {'premium': 164924, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 350, 'min_premium': 20000}, 151928], ['cap binds', {'premium': 160428, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 120321], ['single group', {'premium': 150010, 'discounts': [['vehicle', 'abs', 53], ['vehicle', 'alarm', 34]], 'cap': 350, 'min_premium': 20000}, 136959], ['minimum premium binds', {'premium': 22400, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 350, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 64059, 'discounts': [], 'cap': 350, 'min_premium': 20000}, 64059]], [['two groups multiply', {'premium': 70322, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 55], ['driver', 'student', 40]], 'cap': 350, 'min_premium': 20000}, 57277], ['duplicate discount code', {'premium': 120452, 'discounts': [['policy', 'home', 100], ['policy', 'home', 80], ['policy', 'life', 30]], 'cap': 300, 'min_premium': 20000}, 104793], ['duplicate code rising value', {'premium': 89846, 'discounts': [['driver', 'safe', 40], ['driver', 'safe', 60], ['vehicle', 'abs', 20]], 'cap': 350, 'min_premium': 20000}, 82766], ['cap binds', {'premium': 116342, 'discounts': [['policy', 'home', 150], ['driver', 'safe', 150], ['vehicle', 'abs', 100], ['vehicle', 'alarm', 50]], 'cap': 250, 'min_premium': 20000}, 87257], ['single group', {'premium': 214086, 'discounts': [['vehicle', 'abs', 20], ['vehicle', 'alarm', 44]], 'cap': 300, 'min_premium': 20000}, 200384], ['minimum premium binds', {'premium': 22500, 'discounts': [['policy', 'home', 100], ['driver', 'safe', 80]], 'cap': 350, 'min_premium': 20000}, 20000], ['capped policy at minimum', {'premium': 28000, 'discounts': [['policy', 'home', 200], ['driver', 'safe', 200]], 'cap': 300, 'min_premium': 20000}, 20000], ['no discounts', {'premium': 211453, 'discounts': [], 'cap': 300, 'min_premium': 20000}, 211453]]]\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-discount-stacking-minimum-premium","generated_at":"2026-09-29T14:47:11.502379+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":"Floor the net premium at min_premium.","root_cause":"The minimum premium floor is missing after discounts.","sha256":"1a8ca78b5f54dfc43c2a7b4bcf9f707ba2239be00601750ffe9284c4a5abe93f","title":"Multi-policy discount stacking: Discounted premium falls below the minimum · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.317,"exit_code":1,"observations":[{"actual":147122,"check":"two groups multiply","expected":147122,"passed":true},{"actual":72676,"check":"duplicate discount code","expected":72676,"passed":true},{"actual":199377,"check":"duplicate code rising value","expected":199377,"passed":true},{"actual":221863,"check":"cap binds","expected":221863,"passed":true},{"actual":77263,"check":"single group","expected":77263,"passed":true},{"actual":20000,"check":"minimum premium binds","expected":20000,"passed":true},{"actual":19600,"check":"capped policy at minimum","expected":20000,"passed":false},{"actual":114606,"check":"no discounts","expected":114606,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two groups multiply\", \"actual\": 147122, \"expected\": 147122, \"passed\": true}, {\"check\": \"duplicate discount code\", \"actual\": 72676, \"expected\": 72676, \"passed\": true}, {\"check\": \"duplicate code rising value\", \"actual\": 199377, \"expected\": 199377, \"passed\": true}, {\"check\": \"cap binds\", \"actual\": 221863, \"expected\": 221863, \"passed\": true}, {\"check\": \"single group\", \"actual\": 77263, \"expected\": 77263, \"passed\": true}, {\"check\": \"minimum premium binds\", \"actual\": 20000, \"expected\": 20000, \"passed\": true}, {\"check\": \"capped policy at minimum\", \"actual\": 19600, \"expected\": 20000, \"passed\": false}, {\"check\": \"no discounts\", \"actual\": 114606, \"expected\": 114606, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.918,"exit_code":1,"observations":[{"actual":147122,"check":"two groups multiply","expected":147122,"passed":true},{"actual":72676,"check":"duplicate discount code","expected":72676,"passed":true},{"actual":199377,"check":"duplicate code rising value","expected":199377,"passed":true},{"actual":221863,"check":"cap binds","expected":221863,"passed":true},{"actual":77263,"check":"single group","expected":77263,"passed":true},{"actual":18299,"check":"minimum premium binds","expected":20000,"passed":false},{"actual":19600,"check":"capped policy at minimum","expected":20000,"passed":false},{"actual":114606,"check":"no discounts","expected":114606,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two groups multiply\", \"actual\": 147122, \"expected\": 147122, \"passed\": true}, {\"check\": \"duplicate discount code\", \"actual\": 72676, \"expected\": 72676, \"passed\": true}, {\"check\": \"duplicate code rising value\", \"actual\": 199377, \"expected\": 199377, \"passed\": true}, {\"check\": \"cap binds\", \"actual\": 221863, \"expected\": 221863, \"passed\": true}, {\"check\": \"single group\", \"actual\": 77263, \"expected\": 77263, \"passed\": true}, {\"check\": \"minimum premium binds\", \"actual\": 18299, \"expected\": 20000, \"passed\": false}, {\"check\": \"capped policy at minimum\", \"actual\": 19600, \"expected\": 20000, \"passed\": false}, {\"check\": \"no discounts\", \"actual\": 114606, \"expected\": 114606, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":45.105,"exit_code":0,"observations":[{"actual":147122,"check":"two groups multiply","expected":147122,"passed":true},{"actual":72676,"check":"duplicate discount code","expected":72676,"passed":true},{"actual":199377,"check":"duplicate code rising value","expected":199377,"passed":true},{"actual":221863,"check":"cap binds","expected":221863,"passed":true},{"actual":77263,"check":"single group","expected":77263,"passed":true},{"actual":20000,"check":"minimum premium binds","expected":20000,"passed":true},{"actual":20000,"check":"capped policy at minimum","expected":20000,"passed":true},{"actual":114606,"check":"no discounts","expected":114606,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two groups multiply\", \"actual\": 147122, \"expected\": 147122, \"passed\": true}, {\"check\": \"duplicate discount code\", \"actual\": 72676, \"expected\": 72676, \"passed\": true}, {\"check\": \"duplicate code rising value\", \"actual\": 199377, \"expected\": 199377, \"passed\": true}, {\"check\": \"cap binds\", \"actual\": 221863, \"expected\": 221863, \"passed\": true}, {\"check\": \"single group\", \"actual\": 77263, \"expected\": 77263, \"passed\": true}, {\"check\": \"minimum premium binds\", \"actual\": 20000, \"expected\": 20000, \"passed\": true}, {\"check\": \"capped policy at minimum\", \"actual\": 20000, \"expected\": 20000, \"passed\": true}, {\"check\": \"no discounts\", \"actual\": 114606, \"expected\": 114606, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}