{"abstract":"Final sizes are only accurate to three decimals regardless of the requested tolerance.","category":"Epidemic compartment models","checks":7,"contract":"Attack fraction z is the positive root of z = 1-exp(-R0*z) found by bisection on (1e-9, 1] until the bracket is narrower than tol; for R0<=1 return [0.0, 0, 0.0]; return [z rounded 6, round(z*pop), overshoot z-(1-1/R0) rounded 6].","contract_signature":"r0, pop, tol","evaluation_group":"w2-epidemic-final-size","failed_approach":"Using a root of tol loosens the requested precision.","family":"w2-epidemic-final-size-convergence-tolerance","id":"FA-65046","implementations":{"attempt":{"sha256":"7a2c59e2dfa59e72aff0afe7c14133cb9705787105bf22c30efc663a71aa8676","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(r0, pop, tol):\n    if r0 <= 1:\n        return [0.0, 0, 0.0]\n    lo, hi = 1e-9, 1.0\n    for _ in range(200):\n        mid = (lo + hi) / 2\n        if mid - (1 - math.exp(-r0 * mid)) < 0:\n            lo = mid\n        else:\n            hi = mid\n        if hi - lo < tol ** 0.25:\n            break\n    z = (lo + hi) / 2\n    return [round(z, 6), round(z * pop), round(z - (1 - 1 / r0), 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('regression: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('regression: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('regression: near threshold 1.05', (1.05, 100000, 1e-12), [0.093702, 9370, 0.046083]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('regression: near threshold 1.05', (1.05, 100000, 1e-12), [0.093702, 9370, 0.046083]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('regression: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('regression: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('regression: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('regression: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('regression: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('regression: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('regression: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('regression: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('regression: near threshold 1.05', (1.05, 100000, 1e-12), [0.093702, 9370, 0.046083]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('regression: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('regression: near threshold 1.05', (1.05, 100000, 1e-12), [0.093702, 9370, 0.046083]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('regression: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.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":"ec12745371f580990a9ab3fc5998163aeedcc2c900d5e281e3c328872ff46330","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(r0, pop, tol):\n    if r0 <= 1:\n        return [0.0, 0, 0.0]\n    lo, hi = 1e-9, 1.0\n    for _ in range(200):\n        mid = (lo + hi) / 2\n        if mid - (1 - math.exp(-r0 * mid)) < 0:\n            lo = mid\n        else:\n            hi = mid\n        if hi - lo < 1e-3:\n            break\n    z = (lo + hi) / 2\n    return [round(z, 6), round(z * pop), round(z - (1 - 1 / r0), 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('regression: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('regression: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('regression: near threshold 1.05', (1.05, 100000, 1e-12), [0.093702, 9370, 0.046083]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('regression: near threshold 1.05', (1.05, 100000, 1e-12), [0.093702, 9370, 0.046083]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('regression: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('regression: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('regression: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('regression: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('regression: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('regression: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('regression: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('regression: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('regression: near threshold 1.05', (1.05, 100000, 1e-12), [0.093702, 9370, 0.046083]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('regression: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('regression: near threshold 1.05', (1.05, 100000, 1e-12), [0.093702, 9370, 0.046083]),\n  ('control: boundary R0 exactly 1', (1.0, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('regression: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('control: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.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-final-size-convergence-tolerance","generated_at":"2026-09-29T14:47:30.477903+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":"The bracket width test uses a hard-coded 1e-3 instead of tol.","sha256":"94a5c786ebdf34c75a07221ca4439fceb0b92328128d28be9434ba1195bf5e36","title":"Final epidemic size by bisection: convergence tolerance · 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":36.852,"exit_code":1,"observations":[{"actual":[0.58252,5825,0.249186],"check":"regression: flu-like R0 1.5","expected":[0.582812,5828,0.249478],"passed":false},{"actual":[0.999512,1000,0.082845],"check":"regression: measles-like R0 12","expected":[0.999994,1000,0.083327],"passed":false},{"actual":[0.796387,3982,0.296387],"check":"regression: R0 2","expected":[0.796812,3984,0.296812],"passed":false},{"actual":[0.093262,9326,0.045643],"check":"regression: near threshold 1.05","expected":[0.093702,9370,0.046083],"passed":false},{"actual":[0.0,0,0.0],"check":"control: boundary R0 exactly 1","expected":[0.0,0,0.0],"passed":true},{"actual":[0.0,0,0.0],"check":"control: subcritical 0.8","expected":[0.0,0,0.0],"passed":true},{"actual":[0.0,0,0.0],"check":"control: subcritical 0.5","expected":[0.0,0,0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: flu-like R0 1.5\", \"actual\": [0.58252, 5825, 0.249186], \"expected\": [0.582812, 5828, 0.249478], \"passed\": false}, {\"check\": \"regression: measles-like R0 12\", \"actual\": [0.999512, 1000, 0.082845], \"expected\": [0.999994, 1000, 0.083327], \"passed\": false}, {\"check\": \"regression: R0 2\", \"actual\": [0.796387, 3982, 0.296387], \"expected\": [0.796812, 3984, 0.296812], \"passed\": false}, {\"check\": \"regression: near threshold 1.05\", \"actual\": [0.093262, 9326, 0.045643], \"expected\": [0.093702, 9370, 0.046083], \"passed\": false}, {\"check\": \"control: boundary R0 exactly 1\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}, {\"check\": \"control: subcritical 0.8\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}, {\"check\": \"control: subcritical 0.5\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.144,"exit_code":1,"observations":[{"actual":[0.58252,5825,0.249186],"check":"regression: flu-like R0 1.5","expected":[0.582812,5828,0.249478],"passed":false},{"actual":[0.999512,1000,0.082845],"check":"regression: measles-like R0 12","expected":[0.999994,1000,0.083327],"passed":false},{"actual":[0.796387,3982,0.296387],"check":"regression: R0 2","expected":[0.796812,3984,0.296812],"passed":false},{"actual":[0.093262,9326,0.045643],"check":"regression: near threshold 1.05","expected":[0.093702,9370,0.046083],"passed":false},{"actual":[0.0,0,0.0],"check":"control: boundary R0 exactly 1","expected":[0.0,0,0.0],"passed":true},{"actual":[0.0,0,0.0],"check":"control: subcritical 0.8","expected":[0.0,0,0.0],"passed":true},{"actual":[0.0,0,0.0],"check":"control: subcritical 0.5","expected":[0.0,0,0.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: flu-like R0 1.5\", \"actual\": [0.58252, 5825, 0.249186], \"expected\": [0.582812, 5828, 0.249478], \"passed\": false}, {\"check\": \"regression: measles-like R0 12\", \"actual\": [0.999512, 1000, 0.082845], \"expected\": [0.999994, 1000, 0.083327], \"passed\": false}, {\"check\": \"regression: R0 2\", \"actual\": [0.796387, 3982, 0.296387], \"expected\": [0.796812, 3984, 0.296812], \"passed\": false}, {\"check\": \"regression: near threshold 1.05\", \"actual\": [0.093262, 9326, 0.045643], \"expected\": [0.093702, 9370, 0.046083], \"passed\": false}, {\"check\": \"control: boundary R0 exactly 1\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}, {\"check\": \"control: subcritical 0.8\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}, {\"check\": \"control: subcritical 0.5\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.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."}}