{"abstract":"Susceptibles go negative once supply exceeds the remaining pool.","category":"Epidemic compartment models","checks":7,"contract":"Each day from day index start_day (inclusive), dose=min(doses_per_day, S) is given to susceptibles before transmission; dose*efficacy moves S->V; failed vaccinees stay in S; mixing uses the full pop; return [S, I, R, V, doses administered] rounded to 3.","contract_signature":"beta, gamma, pop, i0, doses_per_day, start_day, efficacy, days","evaluation_group":"w2-epidemic-vaccine-campaign","failed_approach":"Capping at non-vaccinated population counts infected and recovered people as eligible.","family":"w2-epidemic-vaccine-campaign-dose-supply-cap","id":"FA-65066","implementations":{"attempt":{"sha256":"56ccaf9a794a8573c5f8198db858aeefb4892f6ecc6214fb74c1a18e161ac125","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(beta, gamma, pop, i0, doses_per_day, start_day, efficacy, days):\n    s, i, r, v = float(pop - i0), float(i0), 0.0, 0.0\n    given = 0.0\n    for day in range(days):\n        if day >= start_day:\n            dose = min(doses_per_day, pop - v)\n            s -= dose * efficacy\n            v += dose * efficacy\n            given += dose\n        inf = beta * s * i / pop\n        rec = gamma * i\n        s -= inf\n        i += inf - rec\n        r += rec\n    return [round(s, 3), round(i, 3), round(r, 3), round(v, 3), round(given, 3)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('control: city campaign from day 5',\n   (0.4, 0.2, 10000, 20, 200, 5, 0.9, 30),\n   [4007.174, 324.024, 1168.803, 4500.0, 5000.0]),\n  ('control: campaign from day 0',\n   (0.5, 0.25, 2000, 10, 50, 0, 0.8, 20),\n   [872.113, 79.727, 248.159, 800.0, 1000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('control: late campaign never starts',\n   (0.3, 0.1, 1000, 5, 100, 50, 0.9, 20),\n   [777.374, 141.242, 81.385, 0.0, 0.0]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: poor vaccine',\n   (0.45, 0.15, 3000, 30, 150, 3, 0.4, 25),\n   [237.471, 307.647, 1134.882, 1320.0, 3300.0]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0])],\n [('control: city campaign from day 5',\n   (0.4, 0.2, 10000, 20, 200, 5, 0.9, 30),\n   [4007.174, 324.024, 1168.803, 4500.0, 5000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('control: late campaign never starts',\n   (0.3, 0.1, 1000, 5, 100, 50, 0.9, 20),\n   [777.374, 141.242, 81.385, 0.0, 0.0]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: poor vaccine',\n   (0.45, 0.15, 3000, 30, 150, 3, 0.4, 25),\n   [237.471, 307.647, 1134.882, 1320.0, 3300.0]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0]),\n  ('control: start day one', (0.35, 0.1, 800, 4, 30, 1, 0.7, 12), [519.85, 32.463, 16.687, 231.0, 330.0])],\n [('control: city campaign from day 5',\n   (0.4, 0.2, 10000, 20, 200, 5, 0.9, 30),\n   [4007.174, 324.024, 1168.803, 4500.0, 5000.0]),\n  ('control: campaign from day 0',\n   (0.5, 0.25, 2000, 10, 50, 0, 0.8, 20),\n   [872.113, 79.727, 248.159, 800.0, 1000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('control: late campaign never starts',\n   (0.3, 0.1, 1000, 5, 100, 50, 0.9, 20),\n   [777.374, 141.242, 81.385, 0.0, 0.0]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0]),\n  ('control: start day one', (0.35, 0.1, 800, 4, 30, 1, 0.7, 12), [519.85, 32.463, 16.687, 231.0, 330.0])],\n [('control: campaign from day 0',\n   (0.5, 0.25, 2000, 10, 50, 0, 0.8, 20),\n   [872.113, 79.727, 248.159, 800.0, 1000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('control: late campaign never starts',\n   (0.3, 0.1, 1000, 5, 100, 50, 0.9, 20),\n   [777.374, 141.242, 81.385, 0.0, 0.0]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: poor vaccine',\n   (0.45, 0.15, 3000, 30, 150, 3, 0.4, 25),\n   [237.471, 307.647, 1134.882, 1320.0, 3300.0]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0]),\n  ('control: start day one', (0.35, 0.1, 800, 4, 30, 1, 0.7, 12), [519.85, 32.463, 16.687, 231.0, 330.0])],\n [('control: city campaign from day 5',\n   (0.4, 0.2, 10000, 20, 200, 5, 0.9, 30),\n   [4007.174, 324.024, 1168.803, 4500.0, 5000.0]),\n  ('control: campaign from day 0',\n   (0.5, 0.25, 2000, 10, 50, 0, 0.8, 20),\n   [872.113, 79.727, 248.159, 800.0, 1000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: poor vaccine',\n   (0.45, 0.15, 3000, 30, 150, 3, 0.4, 25),\n   [237.471, 307.647, 1134.882, 1320.0, 3300.0]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0]),\n  ('control: start day one', (0.35, 0.1, 800, 4, 30, 1, 0.7, 12), [519.85, 32.463, 16.687, 231.0, 330.0])]]\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":"e229421b0c2b43b7ddbaded225d6b82b4b05a6e13fed1e6f0870973db15621fb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(beta, gamma, pop, i0, doses_per_day, start_day, efficacy, days):\n    s, i, r, v = float(pop - i0), float(i0), 0.0, 0.0\n    given = 0.0\n    for day in range(days):\n        if day >= start_day:\n            dose = doses_per_day\n            s -= dose * efficacy\n            v += dose * efficacy\n            given += dose\n        inf = beta * s * i / pop\n        rec = gamma * i\n        s -= inf\n        i += inf - rec\n        r += rec\n    return [round(s, 3), round(i, 3), round(r, 3), round(v, 3), round(given, 3)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('control: city campaign from day 5',\n   (0.4, 0.2, 10000, 20, 200, 5, 0.9, 30),\n   [4007.174, 324.024, 1168.803, 4500.0, 5000.0]),\n  ('control: campaign from day 0',\n   (0.5, 0.25, 2000, 10, 50, 0, 0.8, 20),\n   [872.113, 79.727, 248.159, 800.0, 1000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('control: late campaign never starts',\n   (0.3, 0.1, 1000, 5, 100, 50, 0.9, 20),\n   [777.374, 141.242, 81.385, 0.0, 0.0]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: poor vaccine',\n   (0.45, 0.15, 3000, 30, 150, 3, 0.4, 25),\n   [237.471, 307.647, 1134.882, 1320.0, 3300.0]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0])],\n [('control: city campaign from day 5',\n   (0.4, 0.2, 10000, 20, 200, 5, 0.9, 30),\n   [4007.174, 324.024, 1168.803, 4500.0, 5000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('control: late campaign never starts',\n   (0.3, 0.1, 1000, 5, 100, 50, 0.9, 20),\n   [777.374, 141.242, 81.385, 0.0, 0.0]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: poor vaccine',\n   (0.45, 0.15, 3000, 30, 150, 3, 0.4, 25),\n   [237.471, 307.647, 1134.882, 1320.0, 3300.0]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0]),\n  ('control: start day one', (0.35, 0.1, 800, 4, 30, 1, 0.7, 12), [519.85, 32.463, 16.687, 231.0, 330.0])],\n [('control: city campaign from day 5',\n   (0.4, 0.2, 10000, 20, 200, 5, 0.9, 30),\n   [4007.174, 324.024, 1168.803, 4500.0, 5000.0]),\n  ('control: campaign from day 0',\n   (0.5, 0.25, 2000, 10, 50, 0, 0.8, 20),\n   [872.113, 79.727, 248.159, 800.0, 1000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('control: late campaign never starts',\n   (0.3, 0.1, 1000, 5, 100, 50, 0.9, 20),\n   [777.374, 141.242, 81.385, 0.0, 0.0]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0]),\n  ('control: start day one', (0.35, 0.1, 800, 4, 30, 1, 0.7, 12), [519.85, 32.463, 16.687, 231.0, 330.0])],\n [('control: campaign from day 0',\n   (0.5, 0.25, 2000, 10, 50, 0, 0.8, 20),\n   [872.113, 79.727, 248.159, 800.0, 1000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('control: late campaign never starts',\n   (0.3, 0.1, 1000, 5, 100, 50, 0.9, 20),\n   [777.374, 141.242, 81.385, 0.0, 0.0]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: poor vaccine',\n   (0.45, 0.15, 3000, 30, 150, 3, 0.4, 25),\n   [237.471, 307.647, 1134.882, 1320.0, 3300.0]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0]),\n  ('control: start day one', (0.35, 0.1, 800, 4, 30, 1, 0.7, 12), [519.85, 32.463, 16.687, 231.0, 330.0])],\n [('control: city campaign from day 5',\n   (0.4, 0.2, 10000, 20, 200, 5, 0.9, 30),\n   [4007.174, 324.024, 1168.803, 4500.0, 5000.0]),\n  ('control: campaign from day 0',\n   (0.5, 0.25, 2000, 10, 50, 0, 0.8, 20),\n   [872.113, 79.727, 248.159, 800.0, 1000.0]),\n  ('regression: supply exceeds susceptibles',\n   (0.3, 0.1, 100, 2, 80, 1, 0.95, 6),\n   [0.0, 1.516, 1.233, 97.251, 102.369]),\n  ('regression: perfect vaccine small town',\n   (0.6, 0.2, 500, 5, 40, 2, 1.0, 15),\n   [0.0, 10.271, 55.609, 434.12, 434.12]),\n  ('control: poor vaccine',\n   (0.45, 0.15, 3000, 30, 150, 3, 0.4, 25),\n   [237.471, 307.647, 1134.882, 1320.0, 3300.0]),\n  ('control: no doses', (0.4, 0.2, 1000, 10, 0, 0, 0.9, 10), [896.73, 54.094, 49.176, 0.0, 0.0]),\n  ('control: start day one', (0.35, 0.1, 800, 4, 30, 1, 0.7, 12), [519.85, 32.463, 16.687, 231.0, 330.0])]]\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":"Deterministic bounded teaching model with a stipulated contract; not a validated scientific or public-health modelling library. 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-epidemic-vaccine-campaign-dose-supply-cap","generated_at":"2026-09-29T14:47:30.630369+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Compartmental epidemic calculations drive outbreak forecasts, vaccine targets and hospital planning; a single wrong flow, rate conversion or boundary silently changes every downstream number.","root_cause":"Doses are not capped by the susceptibles available.","sha256":"8ca999083b313a306fef27cdfb1cb3ef3a7fa883a19b35aebf60b176a00901d0","title":"SIR with daily all-or-nothing vaccination campaign: dose supply cap · 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":41.019,"exit_code":1,"observations":[{"actual":[4007.174,324.024,1168.803,4500.0,5000.0],"check":"control: city campaign from day 5","expected":[4007.174,324.024,1168.803,4500.0,5000.0],"passed":true},{"actual":[872.113,79.727,248.159,800.0,1000.0],"check":"control: campaign from day 0","expected":[872.113,79.727,248.159,800.0,1000.0],"passed":true},{"actual":[-2.686,1.463,1.223,100.0,105.263],"check":"regression: supply exceeds susceptibles","expected":[0.0,1.516,1.233,97.251,102.369],"passed":false},{"actual":[777.374,141.242,81.385,0.0,0.0],"check":"control: late campaign never starts","expected":[777.374,141.242,81.385,0.0,0.0],"passed":true},{"actual":[-63.943,8.56,55.383,500.0,500.0],"check":"regression: perfect vaccine small town","expected":[0.0,10.271,55.609,434.12,434.12],"passed":false},{"actual":[237.471,307.647,1134.882,1320.0,3300.0],"check":"control: poor vaccine","expected":[237.471,307.647,1134.882,1320.0,3300.0],"passed":true},{"actual":[896.73,54.094,49.176,0.0,0.0],"check":"control: no doses","expected":[896.73,54.094,49.176,0.0,0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control: city campaign from day 5\", \"actual\": [4007.174, 324.024, 1168.803, 4500.0, 5000.0], \"expected\": [4007.174, 324.024, 1168.803, 4500.0, 5000.0], \"passed\": true}, {\"check\": \"control: campaign from day 0\", \"actual\": [872.113, 79.727, 248.159, 800.0, 1000.0], \"expected\": [872.113, 79.727, 248.159, 800.0, 1000.0], \"passed\": true}, {\"check\": \"regression: supply exceeds susceptibles\", \"actual\": [-2.686, 1.463, 1.223, 100.0, 105.263], \"expected\": [0.0, 1.516, 1.233, 97.251, 102.369], \"passed\": false}, {\"check\": \"control: late campaign never starts\", \"actual\": [777.374, 141.242, 81.385, 0.0, 0.0], \"expected\": [777.374, 141.242, 81.385, 0.0, 0.0], \"passed\": true}, {\"check\": \"regression: perfect vaccine small town\", \"actual\": [-63.943, 8.56, 55.383, 500.0, 500.0], \"expected\": [0.0, 10.271, 55.609, 434.12, 434.12], \"passed\": false}, {\"check\": \"control: poor vaccine\", \"actual\": [237.471, 307.647, 1134.882, 1320.0, 3300.0], \"expected\": [237.471, 307.647, 1134.882, 1320.0, 3300.0], \"passed\": true}, {\"check\": \"control: no doses\", \"actual\": [896.73, 54.094, 49.176, 0.0, 0.0], \"expected\": [896.73, 54.094, 49.176, 0.0, 0.0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.313,"exit_code":1,"observations":[{"actual":[4007.174,324.024,1168.803,4500.0,5000.0],"check":"control: city campaign from day 5","expected":[4007.174,324.024,1168.803,4500.0,5000.0],"passed":true},{"actual":[872.113,79.727,248.159,800.0,1000.0],"check":"control: campaign from day 0","expected":[872.113,79.727,248.159,800.0,1000.0],"passed":true},{"actual":[-280.963,0.014,0.949,380.0,400.0],"check":"regression: supply exceeds susceptibles","expected":[0.0,1.516,1.233,97.251,102.369],"passed":false},{"actual":[777.374,141.242,81.385,0.0,0.0],"check":"control: late campaign never starts","expected":[777.374,141.242,81.385,0.0,0.0],"passed":true},{"actual":[-83.658,8.275,55.383,520.0,520.0],"check":"regression: perfect vaccine small town","expected":[0.0,10.271,55.609,434.12,434.12],"passed":false},{"actual":[237.471,307.647,1134.882,1320.0,3300.0],"check":"control: poor vaccine","expected":[237.471,307.647,1134.882,1320.0,3300.0],"passed":true},{"actual":[896.73,54.094,49.176,0.0,0.0],"check":"control: no doses","expected":[896.73,54.094,49.176,0.0,0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control: city campaign from day 5\", \"actual\": [4007.174, 324.024, 1168.803, 4500.0, 5000.0], \"expected\": [4007.174, 324.024, 1168.803, 4500.0, 5000.0], \"passed\": true}, {\"check\": \"control: campaign from day 0\", \"actual\": [872.113, 79.727, 248.159, 800.0, 1000.0], \"expected\": [872.113, 79.727, 248.159, 800.0, 1000.0], \"passed\": true}, {\"check\": \"regression: supply exceeds susceptibles\", \"actual\": [-280.963, 0.014, 0.949, 380.0, 400.0], \"expected\": [0.0, 1.516, 1.233, 97.251, 102.369], \"passed\": false}, {\"check\": \"control: late campaign never starts\", \"actual\": [777.374, 141.242, 81.385, 0.0, 0.0], \"expected\": [777.374, 141.242, 81.385, 0.0, 0.0], \"passed\": true}, {\"check\": \"regression: perfect vaccine small town\", \"actual\": [-83.658, 8.275, 55.383, 520.0, 520.0], \"expected\": [0.0, 10.271, 55.609, 434.12, 434.12], \"passed\": false}, {\"check\": \"control: poor vaccine\", \"actual\": [237.471, 307.647, 1134.882, 1320.0, 3300.0], \"expected\": [237.471, 307.647, 1134.882, 1320.0, 3300.0], \"passed\": true}, {\"check\": \"control: no doses\", \"actual\": [896.73, 54.094, 49.176, 0.0, 0.0], \"expected\": [896.73, 54.094, 49.176, 0.0, 0.0], \"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."}}