FA-64921 / Epidemic compartment models / Open access
SEIR R0 with vital dynamics and vaccine coverage: infeasible coverage boundary · case 01
A campaign that needs exactly 100% coverage is reported as infeasible.
ROOT CAUSE
The feasibility test treats coverage equal to one as impossible.
VERIFIED REPAIR
Restore the infeasible coverage boundary rule: `if coverage > 1:`.
Unsuccessful approach: Rounding to two decimals before comparing also rejects 99.5% or more.
Case contract
R0 = beta*sigma/((sigma+mu)*(gamma+mu)); when R0<=1 return [R0,0.0,0.0]; herd threshold 1-1/R0; critical coverage threshold/efficacy, None if it exceeds 1 (exactly 1 is feasible); values rounded to 6; None for invalid rates or efficacy outside (0,1].
Why this case matters
Compartmental epidemic calculations drive outbreak forecasts, vaccine targets and hospital planning; a single wrong flow, rate conversion or boundary silently changes every downstream number.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(beta, sigma, gamma, mu, efficacy):
if min(beta, sigma, gamma) <= 0 or mu < 0 or not 0 < efficacy <= 1:
return None
r0 = beta * sigma / ((sigma + mu) * (gamma + mu))
if r0 <= 1:
return [round(r0, 6), 0.0, 0.0]
threshold = 1 - 1 / r0
coverage = threshold / efficacy
if coverage >= 1:
coverage = None
else:
coverage = round(coverage, 6)
return [round(r0, 6), round(threshold, 6), coverage]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('control: measles-like high R0', (1.8, 0.1, 0.125, 0.0, 0.95), [14.4, 0.930556, 0.979532]),
('control: flu-like moderate R0 with births', (0.5, 0.5, 0.25, 0.02, 0.6), [1.780627, 0.4384, 0.730667]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: infeasible coverage poor vaccine', (1.2, 0.3, 0.2, 0.01, 0.5), [5.529954, 0.819167, None]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6])],
[('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: infeasible coverage poor vaccine', (1.2, 0.3, 0.2, 0.01, 0.5), [5.529954, 0.819167, None]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6]),
('control: invalid efficacy zero', (1.0, 0.5, 0.2, 0.0, 0.0), None),
('control: invalid negative mortality', (1.0, 0.5, 0.2, -0.1, 0.9), None)],
[('control: measles-like high R0', (1.8, 0.1, 0.125, 0.0, 0.95), [14.4, 0.930556, 0.979532]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6]),
('control: invalid efficacy zero', (1.0, 0.5, 0.2, 0.0, 0.0), None),
('control: invalid negative mortality', (1.0, 0.5, 0.2, -0.1, 0.9), None),
('control: perfect vaccine', (0.9, 0.25, 0.2, 0.001, 1.0), [4.459773, 0.775773, 0.775773]),
('control: long latency high mortality', (2.4, 0.05, 0.3, 0.04, 0.85), [3.921569, 0.745, 0.876471])],
[('control: measles-like high R0', (1.8, 0.1, 0.125, 0.0, 0.95), [14.4, 0.930556, 0.979532]),
('control: flu-like moderate R0 with births', (0.5, 0.5, 0.25, 0.02, 0.6), [1.780627, 0.4384, 0.730667]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: perfect vaccine', (0.9, 0.25, 0.2, 0.001, 1.0), [4.459773, 0.775773, 0.775773]),
('control: long latency high mortality', (2.4, 0.05, 0.3, 0.04, 0.85), [3.921569, 0.745, 0.876471])],
[('control: flu-like moderate R0 with births', (0.5, 0.5, 0.25, 0.02, 0.6), [1.780627, 0.4384, 0.730667]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: infeasible coverage poor vaccine', (1.2, 0.3, 0.2, 0.01, 0.5), [5.529954, 0.819167, None]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6]),
('control: invalid efficacy zero', (1.0, 0.5, 0.2, 0.0, 0.0), None)]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control: measles-like high R0 | [14.4, 0.930556, 0.979532] | [14.4, 0.930556, 0.979532] | Passed |
| control: flu-like moderate R0 with births | [1.780627, 0.4384, 0.730667] | [1.780627, 0.4384, 0.730667] | Passed |
| regression: exact R0 of two with half efficacy | [2.0, 0.5, None] | [2.0, 0.5, 1.0] | Failed |
| control: subcritical with mortality | [0.8, 0.0, 0.0] | [0.8, 0.0, 0.0] | Passed |
| control: boundary R0 exactly one | [1.0, 0.0, 0.0] | [1.0, 0.0, 0.0] | Passed |
| control: infeasible coverage poor vaccine | [5.529954, 0.819167, None] | [5.529954, 0.819167, None] | Passed |
| control: high mortality relative to latency | [2.5, 0.6, 0.6] | [2.5, 0.6, 0.6] | Passed |
SHA-256 / 07482ae8f3cdc8f379681f5feb2162f49041b58b3150074dfe5d48f110c6a0ad
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(beta, sigma, gamma, mu, efficacy):
if min(beta, sigma, gamma) <= 0 or mu < 0 or not 0 < efficacy <= 1:
return None
r0 = beta * sigma / ((sigma + mu) * (gamma + mu))
if r0 <= 1:
return [round(r0, 6), 0.0, 0.0]
threshold = 1 - 1 / r0
coverage = threshold / efficacy
if round(coverage, 2) >= 1:
coverage = None
else:
coverage = round(coverage, 6)
return [round(r0, 6), round(threshold, 6), coverage]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('control: measles-like high R0', (1.8, 0.1, 0.125, 0.0, 0.95), [14.4, 0.930556, 0.979532]),
('control: flu-like moderate R0 with births', (0.5, 0.5, 0.25, 0.02, 0.6), [1.780627, 0.4384, 0.730667]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: infeasible coverage poor vaccine', (1.2, 0.3, 0.2, 0.01, 0.5), [5.529954, 0.819167, None]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6])],
[('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: infeasible coverage poor vaccine', (1.2, 0.3, 0.2, 0.01, 0.5), [5.529954, 0.819167, None]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6]),
('control: invalid efficacy zero', (1.0, 0.5, 0.2, 0.0, 0.0), None),
('control: invalid negative mortality', (1.0, 0.5, 0.2, -0.1, 0.9), None)],
[('control: measles-like high R0', (1.8, 0.1, 0.125, 0.0, 0.95), [14.4, 0.930556, 0.979532]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6]),
('control: invalid efficacy zero', (1.0, 0.5, 0.2, 0.0, 0.0), None),
('control: invalid negative mortality', (1.0, 0.5, 0.2, -0.1, 0.9), None),
('control: perfect vaccine', (0.9, 0.25, 0.2, 0.001, 1.0), [4.459773, 0.775773, 0.775773]),
('control: long latency high mortality', (2.4, 0.05, 0.3, 0.04, 0.85), [3.921569, 0.745, 0.876471])],
[('control: measles-like high R0', (1.8, 0.1, 0.125, 0.0, 0.95), [14.4, 0.930556, 0.979532]),
('control: flu-like moderate R0 with births', (0.5, 0.5, 0.25, 0.02, 0.6), [1.780627, 0.4384, 0.730667]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: perfect vaccine', (0.9, 0.25, 0.2, 0.001, 1.0), [4.459773, 0.775773, 0.775773]),
('control: long latency high mortality', (2.4, 0.05, 0.3, 0.04, 0.85), [3.921569, 0.745, 0.876471])],
[('control: flu-like moderate R0 with births', (0.5, 0.5, 0.25, 0.02, 0.6), [1.780627, 0.4384, 0.730667]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: infeasible coverage poor vaccine', (1.2, 0.3, 0.2, 0.01, 0.5), [5.529954, 0.819167, None]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6]),
('control: invalid efficacy zero', (1.0, 0.5, 0.2, 0.0, 0.0), None)]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control: measles-like high R0 | [14.4, 0.930556, 0.979532] | [14.4, 0.930556, 0.979532] | Passed |
| control: flu-like moderate R0 with births | [1.780627, 0.4384, 0.730667] | [1.780627, 0.4384, 0.730667] | Passed |
| regression: exact R0 of two with half efficacy | [2.0, 0.5, None] | [2.0, 0.5, 1.0] | Failed |
| control: subcritical with mortality | [0.8, 0.0, 0.0] | [0.8, 0.0, 0.0] | Passed |
| control: boundary R0 exactly one | [1.0, 0.0, 0.0] | [1.0, 0.0, 0.0] | Passed |
| control: infeasible coverage poor vaccine | [5.529954, 0.819167, None] | [5.529954, 0.819167, None] | Passed |
| control: high mortality relative to latency | [2.5, 0.6, 0.6] | [2.5, 0.6, 0.6] | Passed |
SHA-256 / a000967f0e23dbc2f4dc0cc08d9b6c2ea4a8dde7499d62965dc71a1c84459f4f
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(beta, sigma, gamma, mu, efficacy):
if min(beta, sigma, gamma) <= 0 or mu < 0 or not 0 < efficacy <= 1:
return None
r0 = beta * sigma / ((sigma + mu) * (gamma + mu))
if r0 <= 1:
return [round(r0, 6), 0.0, 0.0]
threshold = 1 - 1 / r0
coverage = threshold / efficacy
if coverage > 1:
coverage = None
else:
coverage = round(coverage, 6)
return [round(r0, 6), round(threshold, 6), coverage]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('control: measles-like high R0', (1.8, 0.1, 0.125, 0.0, 0.95), [14.4, 0.930556, 0.979532]),
('control: flu-like moderate R0 with births', (0.5, 0.5, 0.25, 0.02, 0.6), [1.780627, 0.4384, 0.730667]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: infeasible coverage poor vaccine', (1.2, 0.3, 0.2, 0.01, 0.5), [5.529954, 0.819167, None]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6])],
[('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: infeasible coverage poor vaccine', (1.2, 0.3, 0.2, 0.01, 0.5), [5.529954, 0.819167, None]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6]),
('control: invalid efficacy zero', (1.0, 0.5, 0.2, 0.0, 0.0), None),
('control: invalid negative mortality', (1.0, 0.5, 0.2, -0.1, 0.9), None)],
[('control: measles-like high R0', (1.8, 0.1, 0.125, 0.0, 0.95), [14.4, 0.930556, 0.979532]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6]),
('control: invalid efficacy zero', (1.0, 0.5, 0.2, 0.0, 0.0), None),
('control: invalid negative mortality', (1.0, 0.5, 0.2, -0.1, 0.9), None),
('control: perfect vaccine', (0.9, 0.25, 0.2, 0.001, 1.0), [4.459773, 0.775773, 0.775773]),
('control: long latency high mortality', (2.4, 0.05, 0.3, 0.04, 0.85), [3.921569, 0.745, 0.876471])],
[('control: measles-like high R0', (1.8, 0.1, 0.125, 0.0, 0.95), [14.4, 0.930556, 0.979532]),
('control: flu-like moderate R0 with births', (0.5, 0.5, 0.25, 0.02, 0.6), [1.780627, 0.4384, 0.730667]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: perfect vaccine', (0.9, 0.25, 0.2, 0.001, 1.0), [4.459773, 0.775773, 0.775773]),
('control: long latency high mortality', (2.4, 0.05, 0.3, 0.04, 0.85), [3.921569, 0.745, 0.876471])],
[('control: flu-like moderate R0 with births', (0.5, 0.5, 0.25, 0.02, 0.6), [1.780627, 0.4384, 0.730667]),
('regression: exact R0 of two with half efficacy', (2.0, 1.0, 1.0, 0.0, 0.5), [2.0, 0.5, 1.0]),
('control: subcritical with mortality', (0.3, 0.2, 0.25, 0.05, 0.9), [0.8, 0.0, 0.0]),
('control: boundary R0 exactly one', (1.0, 1.0, 1.0, 0.0, 0.8), [1.0, 0.0, 0.0]),
('control: infeasible coverage poor vaccine', (1.2, 0.3, 0.2, 0.01, 0.5), [5.529954, 0.819167, None]),
('control: high mortality relative to latency', (3.0, 0.1, 0.5, 0.1, 1.0), [2.5, 0.6, 0.6]),
('control: invalid efficacy zero', (1.0, 0.5, 0.2, 0.0, 0.0), None)]]
for label, args, expected in fixtures[N - 1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| control: measles-like high R0 | [14.4, 0.930556, 0.979532] | [14.4, 0.930556, 0.979532] | Passed |
| control: flu-like moderate R0 with births | [1.780627, 0.4384, 0.730667] | [1.780627, 0.4384, 0.730667] | Passed |
| regression: exact R0 of two with half efficacy | [2.0, 0.5, 1.0] | [2.0, 0.5, 1.0] | Passed |
| control: subcritical with mortality | [0.8, 0.0, 0.0] | [0.8, 0.0, 0.0] | Passed |
| control: boundary R0 exactly one | [1.0, 0.0, 0.0] | [1.0, 0.0, 0.0] | Passed |
| control: infeasible coverage poor vaccine | [5.529954, 0.819167, None] | [5.529954, 0.819167, None] | Passed |
| control: high mortality relative to latency | [2.5, 0.6, 0.6] | [2.5, 0.6, 0.6] | Passed |
SHA-256 / d361f1650b9244a43ebbbc848ffc8345b0c738bc59eb4b032fb5403d9740a68f
Verification & scope
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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:47:29.346622+00:00.
Case digest / c6135b39671b941b3705a990ff3fc3a13f1317384e39fd01089ce68163328add