{"abstract":"Same-day cases are counted as their own infectors.","category":"Epidemic compartment models","checks":7,"contract":"weights[s-1] is the serial-interval weight at lag s>=1 (unnormalised); daily infection pressure Lambda_k = sum_s w_s*I[k-s]/sum of available weights (lags reaching before day 0 dropped); Rt = sum_{k=t-window+1..t} I_k / sum Lambda_k; None if the window reaches day 0, t is out of range or the denominator is zero; result rounded 6.","evaluation_group":"w2-epidemic-renewal-rt","failed_approach":"Starting at 1 but dropping the final lag loses the tail of the serial interval.","family":"w2-epidemic-renewal-rt-serial-interval-lag-origin","id":"FA-65116","implementations":{"attempt":{"sha256":"dd4cb32ebcd50f160ce769e6c41cd687009d2b88004adb214952ade106fc8ada","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(incidence, weights, t, window):\n    if window < 1 or t - window + 1 < 1 or t >= len(incidence):\n        return None\n    num = 0.0\n    den = 0.0\n    for k in range(t - window + 1, t + 1):\n        pressure = 0.0\n        mass = 0.0\n        for s in range(1, len(weights)):\n            if k - s < 0:\n                break\n            pressure += weights[s - 1] * incidence[k - s]\n            mass += weights[s - 1]\n        if mass > 0:\n            pressure /= mass\n        num += incidence[k]\n        den += pressure\n    if den <= 0:\n        return None\n    return round(num / den, 6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: growing outbreak', ([1, 2, 4, 7, 12, 20, 33, 50, 80], [0.2, 0.5, 0.3], 8, 3), 2.515432),\n  ('regression: declining outbreak', ([90, 80, 60, 45, 30, 20, 12, 8], [0.3, 0.4, 0.3], 7, 2), 0.383877),\n  ('regression: unnormalised weights', ([5, 6, 8, 9, 11, 14, 16], [2, 3, 1], 6, 2), 1.417323),\n  ('regression: early window truncation', ([3, 5, 9, 14, 20], [0.1, 0.2, 0.3, 0.4], 3, 2), 2.76),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('regression: early window truncation', ([3, 5, 9, 14, 20], [0.1, 0.2, 0.3, 0.4], 3, 2), 2.76),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('regression: window starting on day 1', ([4, 6, 9, 12], [0.5, 0.5], 2, 2), 1.666667),\n  ('regression: single day window at day 1', ([3, 5, 8], [1.0], 1, 1), 1.666667),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('regression: zero history', ([0, 0, 0, 5, 7], [0.6, 0.4], 3, 2), None),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('regression: single day window at day 1', ([3, 5, 8], [1.0], 1, 1), 1.666667),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('regression: zero history', ([0, 0, 0, 5, 7], [0.6, 0.4], 3, 2), None),\n  ('regression: single day window', ([10, 12, 15, 17, 22, 25], [0.25, 0.5, 0.25], 5, 1), 1.408451),\n  ('regression: long serial interval',\n   ([2, 3, 5, 8, 11, 15, 19, 24, 30, 36], [0.1, 0.15, 0.2, 0.25, 0.3], 9, 4),\n   2.289916),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('regression: growing outbreak', ([1, 2, 4, 7, 12, 20, 33, 50, 80], [0.2, 0.5, 0.3], 8, 3), 2.515432),\n  ('regression: declining outbreak', ([90, 80, 60, 45, 30, 20, 12, 8], [0.3, 0.4, 0.3], 7, 2), 0.383877),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('regression: single day window', ([10, 12, 15, 17, 22, 25], [0.25, 0.5, 0.25], 5, 1), 1.408451),\n  ('regression: long serial interval',\n   ([2, 3, 5, 8, 11, 15, 19, 24, 30, 36], [0.1, 0.15, 0.2, 0.25, 0.3], 9, 4),\n   2.289916),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('regression: growing outbreak', ([1, 2, 4, 7, 12, 20, 33, 50, 80], [0.2, 0.5, 0.3], 8, 3), 2.515432),\n  ('regression: declining outbreak', ([90, 80, 60, 45, 30, 20, 12, 8], [0.3, 0.4, 0.3], 7, 2), 0.383877),\n  ('regression: unnormalised weights', ([5, 6, 8, 9, 11, 14, 16], [2, 3, 1], 6, 2), 1.417323),\n  ('regression: early window truncation', ([3, 5, 9, 14, 20], [0.1, 0.2, 0.3, 0.4], 3, 2), 2.76),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.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":"28beddcf0c0a538364922b01b5f1a05e8b7056337a5e4299c3b48614808c9ec9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(incidence, weights, t, window):\n    if window < 1 or t - window + 1 < 1 or t >= len(incidence):\n        return None\n    num = 0.0\n    den = 0.0\n    for k in range(t - window + 1, t + 1):\n        pressure = 0.0\n        mass = 0.0\n        for s in range(0, len(weights)):\n            if k - s < 0:\n                break\n            pressure += weights[s - 1] * incidence[k - s]\n            mass += weights[s - 1]\n        if mass > 0:\n            pressure /= mass\n        num += incidence[k]\n        den += pressure\n    if den <= 0:\n        return None\n    return round(num / den, 6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: growing outbreak', ([1, 2, 4, 7, 12, 20, 33, 50, 80], [0.2, 0.5, 0.3], 8, 3), 2.515432),\n  ('regression: declining outbreak', ([90, 80, 60, 45, 30, 20, 12, 8], [0.3, 0.4, 0.3], 7, 2), 0.383877),\n  ('regression: unnormalised weights', ([5, 6, 8, 9, 11, 14, 16], [2, 3, 1], 6, 2), 1.417323),\n  ('regression: early window truncation', ([3, 5, 9, 14, 20], [0.1, 0.2, 0.3, 0.4], 3, 2), 2.76),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('regression: early window truncation', ([3, 5, 9, 14, 20], [0.1, 0.2, 0.3, 0.4], 3, 2), 2.76),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('regression: window starting on day 1', ([4, 6, 9, 12], [0.5, 0.5], 2, 2), 1.666667),\n  ('regression: single day window at day 1', ([3, 5, 8], [1.0], 1, 1), 1.666667),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('regression: zero history', ([0, 0, 0, 5, 7], [0.6, 0.4], 3, 2), None),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('regression: single day window at day 1', ([3, 5, 8], [1.0], 1, 1), 1.666667),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('regression: zero history', ([0, 0, 0, 5, 7], [0.6, 0.4], 3, 2), None),\n  ('regression: single day window', ([10, 12, 15, 17, 22, 25], [0.25, 0.5, 0.25], 5, 1), 1.408451),\n  ('regression: long serial interval',\n   ([2, 3, 5, 8, 11, 15, 19, 24, 30, 36], [0.1, 0.15, 0.2, 0.25, 0.3], 9, 4),\n   2.289916),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('regression: growing outbreak', ([1, 2, 4, 7, 12, 20, 33, 50, 80], [0.2, 0.5, 0.3], 8, 3), 2.515432),\n  ('regression: declining outbreak', ([90, 80, 60, 45, 30, 20, 12, 8], [0.3, 0.4, 0.3], 7, 2), 0.383877),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('regression: single day window', ([10, 12, 15, 17, 22, 25], [0.25, 0.5, 0.25], 5, 1), 1.408451),\n  ('regression: long serial interval',\n   ([2, 3, 5, 8, 11, 15, 19, 24, 30, 36], [0.1, 0.15, 0.2, 0.25, 0.3], 9, 4),\n   2.289916),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('regression: growing outbreak', ([1, 2, 4, 7, 12, 20, 33, 50, 80], [0.2, 0.5, 0.3], 8, 3), 2.515432),\n  ('regression: declining outbreak', ([90, 80, 60, 45, 30, 20, 12, 8], [0.3, 0.4, 0.3], 7, 2), 0.383877),\n  ('regression: unnormalised weights', ([5, 6, 8, 9, 11, 14, 16], [2, 3, 1], 6, 2), 1.417323),\n  ('regression: early window truncation', ([3, 5, 9, 14, 20], [0.1, 0.2, 0.3, 0.4], 3, 2), 2.76),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.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":"c49651ec288500eee55f9e435e07d2e3ffc9ab1f3f37efdec44e72b20a40e98f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(incidence, weights, t, window):\n    if window < 1 or t - window + 1 < 1 or t >= len(incidence):\n        return None\n    num = 0.0\n    den = 0.0\n    for k in range(t - window + 1, t + 1):\n        pressure = 0.0\n        mass = 0.0\n        for s in range(1, len(weights) + 1):\n            if k - s < 0:\n                break\n            pressure += weights[s - 1] * incidence[k - s]\n            mass += weights[s - 1]\n        if mass > 0:\n            pressure /= mass\n        num += incidence[k]\n        den += pressure\n    if den <= 0:\n        return None\n    return round(num / den, 6)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: growing outbreak', ([1, 2, 4, 7, 12, 20, 33, 50, 80], [0.2, 0.5, 0.3], 8, 3), 2.515432),\n  ('regression: declining outbreak', ([90, 80, 60, 45, 30, 20, 12, 8], [0.3, 0.4, 0.3], 7, 2), 0.383877),\n  ('regression: unnormalised weights', ([5, 6, 8, 9, 11, 14, 16], [2, 3, 1], 6, 2), 1.417323),\n  ('regression: early window truncation', ([3, 5, 9, 14, 20], [0.1, 0.2, 0.3, 0.4], 3, 2), 2.76),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('regression: early window truncation', ([3, 5, 9, 14, 20], [0.1, 0.2, 0.3, 0.4], 3, 2), 2.76),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('regression: window starting on day 1', ([4, 6, 9, 12], [0.5, 0.5], 2, 2), 1.666667),\n  ('regression: single day window at day 1', ([3, 5, 8], [1.0], 1, 1), 1.666667),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('regression: zero history', ([0, 0, 0, 5, 7], [0.6, 0.4], 3, 2), None),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('regression: single day window at day 1', ([3, 5, 8], [1.0], 1, 1), 1.666667),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('regression: zero history', ([0, 0, 0, 5, 7], [0.6, 0.4], 3, 2), None),\n  ('regression: single day window', ([10, 12, 15, 17, 22, 25], [0.25, 0.5, 0.25], 5, 1), 1.408451),\n  ('regression: long serial interval',\n   ([2, 3, 5, 8, 11, 15, 19, 24, 30, 36], [0.1, 0.15, 0.2, 0.25, 0.3], 9, 4),\n   2.289916),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('regression: growing outbreak', ([1, 2, 4, 7, 12, 20, 33, 50, 80], [0.2, 0.5, 0.3], 8, 3), 2.515432),\n  ('regression: declining outbreak', ([90, 80, 60, 45, 30, 20, 12, 8], [0.3, 0.4, 0.3], 7, 2), 0.383877),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('regression: single day window', ([10, 12, 15, 17, 22, 25], [0.25, 0.5, 0.25], 5, 1), 1.408451),\n  ('regression: long serial interval',\n   ([2, 3, 5, 8, 11, 15, 19, 24, 30, 36], [0.1, 0.15, 0.2, 0.25, 0.3], 9, 4),\n   2.289916),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.0)],\n [('regression: growing outbreak', ([1, 2, 4, 7, 12, 20, 33, 50, 80], [0.2, 0.5, 0.3], 8, 3), 2.515432),\n  ('regression: declining outbreak', ([90, 80, 60, 45, 30, 20, 12, 8], [0.3, 0.4, 0.3], 7, 2), 0.383877),\n  ('regression: unnormalised weights', ([5, 6, 8, 9, 11, 14, 16], [2, 3, 1], 6, 2), 1.417323),\n  ('regression: early window truncation', ([3, 5, 9, 14, 20], [0.1, 0.2, 0.3, 0.4], 3, 2), 2.76),\n  ('control: boundary window reaching day 0', ([4, 6, 9, 12], [0.5, 0.5], 2, 3), None),\n  ('control: t out of range', ([4, 6, 9], [0.5, 0.5], 3, 1), None),\n  ('control: flat incidence', ([10, 10, 10, 10, 10, 10], [0.5, 0.3, 0.2], 5, 3), 1.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-renewal-rt-serial-interval-lag-origin","generated_at":"2026-09-29T14:47:30.852589+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 serial-interval lag origin rule: `range(1, len(weights) + 1)`.","root_cause":"The lag loop starts at 0, so same-day incidence is weighted by the wrapped-around last weight.","sha256":"3ea9c31b4daf6717734b653c3e9fe0aa5915fc35975573016353d4bcb8e5c3bc","title":"Windowed renewal-equation Rt estimate: serial-interval lag origin · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.669,"exit_code":1,"observations":[{"actual":2.148776,"check":"regression: growing outbreak","expected":2.515432,"passed":false},{"actual":0.472973,"check":"regression: declining outbreak","expected":0.383877,"passed":false},{"actual":1.363636,"check":"regression: unnormalised weights","expected":1.417323,"passed":false},{"actual":2.76,"check":"regression: early window truncation","expected":2.76,"passed":true},{"actual":null,"check":"control: boundary window reaching day 0","expected":null,"passed":true},{"actual":null,"check":"control: t out of range","expected":null,"passed":true},{"actual":1.0,"check":"control: flat incidence","expected":1.0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: growing outbreak\", \"actual\": 2.148776, \"expected\": 2.515432, \"passed\": false}, {\"check\": \"regression: declining outbreak\", \"actual\": 0.472973, \"expected\": 0.383877, \"passed\": false}, {\"check\": \"regression: unnormalised weights\", \"actual\": 1.363636, \"expected\": 1.417323, \"passed\": false}, {\"check\": \"regression: early window truncation\", \"actual\": 2.76, \"expected\": 2.76, \"passed\": true}, {\"check\": \"control: boundary window reaching day 0\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control: t out of range\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control: flat incidence\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.046,"exit_code":1,"observations":[{"actual":1.598039,"check":"regression: growing outbreak","expected":2.515432,"passed":false},{"actual":0.561798,"check":"regression: declining outbreak","expected":0.383877,"passed":false},{"actual":1.285714,"check":"regression: unnormalised weights","expected":1.417323,"passed":false},{"actual":1.521739,"check":"regression: early window truncation","expected":2.76,"passed":false},{"actual":null,"check":"control: boundary window reaching day 0","expected":null,"passed":true},{"actual":null,"check":"control: t out of range","expected":null,"passed":true},{"actual":1.0,"check":"control: flat incidence","expected":1.0,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: growing outbreak\", \"actual\": 1.598039, \"expected\": 2.515432, \"passed\": false}, {\"check\": \"regression: declining outbreak\", \"actual\": 0.561798, \"expected\": 0.383877, \"passed\": false}, {\"check\": \"regression: unnormalised weights\", \"actual\": 1.285714, \"expected\": 1.417323, \"passed\": false}, {\"check\": \"regression: early window truncation\", \"actual\": 1.521739, \"expected\": 2.76, \"passed\": false}, {\"check\": \"control: boundary window reaching day 0\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control: t out of range\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control: flat incidence\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.967,"exit_code":0,"observations":[{"actual":2.515432,"check":"regression: growing outbreak","expected":2.515432,"passed":true},{"actual":0.383877,"check":"regression: declining outbreak","expected":0.383877,"passed":true},{"actual":1.417323,"check":"regression: unnormalised weights","expected":1.417323,"passed":true},{"actual":2.76,"check":"regression: early window truncation","expected":2.76,"passed":true},{"actual":null,"check":"control: boundary window reaching day 0","expected":null,"passed":true},{"actual":null,"check":"control: t out of range","expected":null,"passed":true},{"actual":1.0,"check":"control: flat incidence","expected":1.0,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: growing outbreak\", \"actual\": 2.515432, \"expected\": 2.515432, \"passed\": true}, {\"check\": \"regression: declining outbreak\", \"actual\": 0.383877, \"expected\": 0.383877, \"passed\": true}, {\"check\": \"regression: unnormalised weights\", \"actual\": 1.417323, \"expected\": 1.417323, \"passed\": true}, {\"check\": \"regression: early window truncation\", \"actual\": 2.76, \"expected\": 2.76, \"passed\": true}, {\"check\": \"control: boundary window reaching day 0\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control: t out of range\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control: flat incidence\", \"actual\": 1.0, \"expected\": 1.0, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}