{"abstract":"Subcritical pathogens report a large positive overshoot.","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].","evaluation_group":"w2-epidemic-final-size","failed_approach":"Guarding only R0<=0 still evaluates subcritical cases.","family":"w2-epidemic-final-size-subcritical-regime","id":"FA-65031","implementations":{"attempt":{"sha256":"cddb4e5a26b9e1b19469f2ffc6335df718d79fbcd90f2c44611a3ad2a4ac51be","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(r0, pop, tol):\n    if r0 <= 0:\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:\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 = [[('control: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('control: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('control: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('control: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('control: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('control: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('control: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('control: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('regression: 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":"2653cf921869e5a72be2b7fa36967b458cab2d8b97da9d13fa8318de07c9b917","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(r0, pop, tol):\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:\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 = [[('control: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('control: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('control: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('control: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('control: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('control: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('control: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('control: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('regression: 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"},"fixed":{"sha256":"c7a3724cc5c945c33f074a0be032665523317c7daf491fc474d1f6f4b46c88ad","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:\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 = [[('control: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('control: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('control: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('control: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('control: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('control: R0 1.2 mid city', (1.2, 250000, 1e-10), [0.313698, 78425, 0.147032]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: flu-like R0 1.5', (1.5, 10000, 1e-12), [0.582812, 5828, 0.249478]),\n  ('control: measles-like R0 12', (12.0, 1000, 1e-12), [0.999994, 1000, 0.083327]),\n  ('control: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('regression: subcritical 0.5', (0.5, 100, 1e-12), [0.0, 0, 0.0])],\n [('control: R0 2', (2.0, 5000, 1e-12), [0.796812, 3984, 0.296812]),\n  ('control: 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  ('regression: subcritical 0.8', (0.8, 1000, 1e-12), [0.0, 0, 0.0]),\n  ('control: coarse tolerance', (2.5, 1000, 0.0001), [0.89267, 893, 0.29267]),\n  ('control: R0 3 small town', (3.0, 777, 1e-12), [0.94048, 731, 0.273813]),\n  ('regression: 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-subcritical-regime","generated_at":"2026-09-29T14:47:30.127370+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.","repair":"Restore the subcritical regime rule: `if r0 <= 1: / return [0.0, 0, 0.0]`.","root_cause":"The R0<=1 guard is missing so 1-1/R0 is negative in the overshoot.","sha256":"2625fbcaa032ab07ad61542c6e04cbb0e665cabbfc1c24c0d63370b47a78d7a2","title":"Final epidemic size by bisection: subcritical regime · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.517,"exit_code":1,"observations":[{"actual":[0.582812,5828,0.249478],"check":"control: flu-like R0 1.5","expected":[0.582812,5828,0.249478],"passed":true},{"actual":[0.999994,1000,0.083327],"check":"control: measles-like R0 12","expected":[0.999994,1000,0.083327],"passed":true},{"actual":[0.796812,3984,0.296812],"check":"control: R0 2","expected":[0.796812,3984,0.296812],"passed":true},{"actual":[0.093702,9370,0.046083],"check":"control: near threshold 1.05","expected":[0.093702,9370,0.046083],"passed":true},{"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.25],"check":"regression: subcritical 0.8","expected":[0.0,0,0.0],"passed":false},{"actual":[0.0,0,1.0],"check":"regression: subcritical 0.5","expected":[0.0,0,0.0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control: flu-like R0 1.5\", \"actual\": [0.582812, 5828, 0.249478], \"expected\": [0.582812, 5828, 0.249478], \"passed\": true}, {\"check\": \"control: measles-like R0 12\", \"actual\": [0.999994, 1000, 0.083327], \"expected\": [0.999994, 1000, 0.083327], \"passed\": true}, {\"check\": \"control: R0 2\", \"actual\": [0.796812, 3984, 0.296812], \"expected\": [0.796812, 3984, 0.296812], \"passed\": true}, {\"check\": \"control: near threshold 1.05\", \"actual\": [0.093702, 9370, 0.046083], \"expected\": [0.093702, 9370, 0.046083], \"passed\": true}, {\"check\": \"control: boundary R0 exactly 1\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}, {\"check\": \"regression: subcritical 0.8\", \"actual\": [0.0, 0, 0.25], \"expected\": [0.0, 0, 0.0], \"passed\": false}, {\"check\": \"regression: subcritical 0.5\", \"actual\": [0.0, 0, 1.0], \"expected\": [0.0, 0, 0.0], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.596,"exit_code":1,"observations":[{"actual":[0.582812,5828,0.249478],"check":"control: flu-like R0 1.5","expected":[0.582812,5828,0.249478],"passed":true},{"actual":[0.999994,1000,0.083327],"check":"control: measles-like R0 12","expected":[0.999994,1000,0.083327],"passed":true},{"actual":[0.796812,3984,0.296812],"check":"control: R0 2","expected":[0.796812,3984,0.296812],"passed":true},{"actual":[0.093702,9370,0.046083],"check":"control: near threshold 1.05","expected":[0.093702,9370,0.046083],"passed":true},{"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.25],"check":"regression: subcritical 0.8","expected":[0.0,0,0.0],"passed":false},{"actual":[0.0,0,1.0],"check":"regression: subcritical 0.5","expected":[0.0,0,0.0],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control: flu-like R0 1.5\", \"actual\": [0.582812, 5828, 0.249478], \"expected\": [0.582812, 5828, 0.249478], \"passed\": true}, {\"check\": \"control: measles-like R0 12\", \"actual\": [0.999994, 1000, 0.083327], \"expected\": [0.999994, 1000, 0.083327], \"passed\": true}, {\"check\": \"control: R0 2\", \"actual\": [0.796812, 3984, 0.296812], \"expected\": [0.796812, 3984, 0.296812], \"passed\": true}, {\"check\": \"control: near threshold 1.05\", \"actual\": [0.093702, 9370, 0.046083], \"expected\": [0.093702, 9370, 0.046083], \"passed\": true}, {\"check\": \"control: boundary R0 exactly 1\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}, {\"check\": \"regression: subcritical 0.8\", \"actual\": [0.0, 0, 0.25], \"expected\": [0.0, 0, 0.0], \"passed\": false}, {\"check\": \"regression: subcritical 0.5\", \"actual\": [0.0, 0, 1.0], \"expected\": [0.0, 0, 0.0], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.516,"exit_code":0,"observations":[{"actual":[0.582812,5828,0.249478],"check":"control: flu-like R0 1.5","expected":[0.582812,5828,0.249478],"passed":true},{"actual":[0.999994,1000,0.083327],"check":"control: measles-like R0 12","expected":[0.999994,1000,0.083327],"passed":true},{"actual":[0.796812,3984,0.296812],"check":"control: R0 2","expected":[0.796812,3984,0.296812],"passed":true},{"actual":[0.093702,9370,0.046083],"check":"control: near threshold 1.05","expected":[0.093702,9370,0.046083],"passed":true},{"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":"regression: subcritical 0.8","expected":[0.0,0,0.0],"passed":true},{"actual":[0.0,0,0.0],"check":"regression: subcritical 0.5","expected":[0.0,0,0.0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control: flu-like R0 1.5\", \"actual\": [0.582812, 5828, 0.249478], \"expected\": [0.582812, 5828, 0.249478], \"passed\": true}, {\"check\": \"control: measles-like R0 12\", \"actual\": [0.999994, 1000, 0.083327], \"expected\": [0.999994, 1000, 0.083327], \"passed\": true}, {\"check\": \"control: R0 2\", \"actual\": [0.796812, 3984, 0.296812], \"expected\": [0.796812, 3984, 0.296812], \"passed\": true}, {\"check\": \"control: near threshold 1.05\", \"actual\": [0.093702, 9370, 0.046083], \"expected\": [0.093702, 9370, 0.046083], \"passed\": true}, {\"check\": \"control: boundary R0 exactly 1\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}, {\"check\": \"regression: subcritical 0.8\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}, {\"check\": \"regression: subcritical 0.5\", \"actual\": [0.0, 0, 0.0], \"expected\": [0.0, 0, 0.0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}