{"abstract":"Every delay is shifted by one day, understating resolved cases.","category":"Epidemic compartment models","checks":7,"contract":"naive CFR = sum(deaths)/sum(cases); delay_pmf[j] is the probability that death occurs j days after onset (j from 0); known = sum_t sum_j cases[t-j]*pmf[j] over t in the series; adjusted = min(sum(deaths)/known, 1); return [naive rounded 6, adjusted rounded 6 or None when known is 0]; None when there are no cases.","contract_signature":"cases, deaths, delay_pmf","evaluation_group":"w2-epidemic-delay-cfr","failed_approach":"Dropping the lag-0 mass loses same-day deaths.","family":"w2-epidemic-delay-cfr-pmf-lag-origin","id":"FA-65251","implementations":{"attempt":{"sha256":"7c1fcd20187d33abe91c7ef4e7b1a080b479bbf20050b91f81b3305bedbfb743","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(cases, deaths, delay_pmf):\n    total_cases = sum(cases)\n    total_deaths = sum(deaths)\n    if total_cases <= 0:\n        return None\n    naive = total_deaths / total_cases\n    known = 0.0\n    for t in range(len(cases)):\n        for j, f in enumerate(delay_pmf[1:]):\n            if t - j >= 0:\n                known += cases[t - j] * f\n    if known <= 0:\n        return [round(naive, 6), None]\n    adjusted = min(total_deaths / known, 1.0)\n    return [round(naive, 6), round(adjusted, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: growing epidemic',\n   ([10, 20, 40, 80, 160], [0, 0, 1, 2, 5], [0.1, 0.3, 0.4, 0.2]),\n   [0.025806, 0.072727]),\n  ('regression: stable epidemic',\n   ([50, 50, 50, 50, 50, 50], [0, 1, 2, 2, 2, 2], [0.2, 0.5, 0.3]),\n   [0.03, 0.036735]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: immediate deaths', ([20, 30, 25], [2, 3, 2], [1.0]), [0.093333, 0.093333]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667])],\n [('regression: growing epidemic',\n   ([10, 20, 40, 80, 160], [0, 0, 1, 2, 5], [0.1, 0.3, 0.4, 0.2]),\n   [0.025806, 0.072727]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: immediate deaths', ([20, 30, 25], [2, 3, 2], [1.0]), [0.093333, 0.093333]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667]),\n  ('regression: late surge',\n   ([5, 5, 5, 60, 90], [0, 0, 1, 1, 2], [0.05, 0.25, 0.4, 0.3]),\n   [0.024242, 0.111111])],\n [('regression: growing epidemic',\n   ([10, 20, 40, 80, 160], [0, 0, 1, 2, 5], [0.1, 0.3, 0.4, 0.2]),\n   [0.025806, 0.072727]),\n  ('regression: stable epidemic',\n   ([50, 50, 50, 50, 50, 50], [0, 1, 2, 2, 2, 2], [0.2, 0.5, 0.3]),\n   [0.03, 0.036735]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667]),\n  ('regression: late surge',\n   ([5, 5, 5, 60, 90], [0, 0, 1, 1, 2], [0.05, 0.25, 0.4, 0.3]),\n   [0.024242, 0.111111])],\n [('regression: stable epidemic',\n   ([50, 50, 50, 50, 50, 50], [0, 1, 2, 2, 2, 2], [0.2, 0.5, 0.3]),\n   [0.03, 0.036735]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: immediate deaths', ([20, 30, 25], [2, 3, 2], [1.0]), [0.093333, 0.093333]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667]),\n  ('regression: late surge',\n   ([5, 5, 5, 60, 90], [0, 0, 1, 1, 2], [0.05, 0.25, 0.4, 0.3]),\n   [0.024242, 0.111111])],\n [('regression: growing epidemic',\n   ([10, 20, 40, 80, 160], [0, 0, 1, 2, 5], [0.1, 0.3, 0.4, 0.2]),\n   [0.025806, 0.072727]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: immediate deaths', ([20, 30, 25], [2, 3, 2], [1.0]), [0.093333, 0.093333]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667]),\n  ('regression: late surge',\n   ([5, 5, 5, 60, 90], [0, 0, 1, 1, 2], [0.05, 0.25, 0.4, 0.3]),\n   [0.024242, 0.111111])]]\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":"dc530a1f35ed8fbd088fef29f97fdcc6ddb36ac3abf9228ea1d5ef42c62ffc86","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(cases, deaths, delay_pmf):\n    total_cases = sum(cases)\n    total_deaths = sum(deaths)\n    if total_cases <= 0:\n        return None\n    naive = total_deaths / total_cases\n    known = 0.0\n    for t in range(len(cases)):\n        for j, f in enumerate(delay_pmf, 1):\n            if t - j >= 0:\n                known += cases[t - j] * f\n    if known <= 0:\n        return [round(naive, 6), None]\n    adjusted = min(total_deaths / known, 1.0)\n    return [round(naive, 6), round(adjusted, 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: growing epidemic',\n   ([10, 20, 40, 80, 160], [0, 0, 1, 2, 5], [0.1, 0.3, 0.4, 0.2]),\n   [0.025806, 0.072727]),\n  ('regression: stable epidemic',\n   ([50, 50, 50, 50, 50, 50], [0, 1, 2, 2, 2, 2], [0.2, 0.5, 0.3]),\n   [0.03, 0.036735]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: immediate deaths', ([20, 30, 25], [2, 3, 2], [1.0]), [0.093333, 0.093333]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667])],\n [('regression: growing epidemic',\n   ([10, 20, 40, 80, 160], [0, 0, 1, 2, 5], [0.1, 0.3, 0.4, 0.2]),\n   [0.025806, 0.072727]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: immediate deaths', ([20, 30, 25], [2, 3, 2], [1.0]), [0.093333, 0.093333]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667]),\n  ('regression: late surge',\n   ([5, 5, 5, 60, 90], [0, 0, 1, 1, 2], [0.05, 0.25, 0.4, 0.3]),\n   [0.024242, 0.111111])],\n [('regression: growing epidemic',\n   ([10, 20, 40, 80, 160], [0, 0, 1, 2, 5], [0.1, 0.3, 0.4, 0.2]),\n   [0.025806, 0.072727]),\n  ('regression: stable epidemic',\n   ([50, 50, 50, 50, 50, 50], [0, 1, 2, 2, 2, 2], [0.2, 0.5, 0.3]),\n   [0.03, 0.036735]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667]),\n  ('regression: late surge',\n   ([5, 5, 5, 60, 90], [0, 0, 1, 1, 2], [0.05, 0.25, 0.4, 0.3]),\n   [0.024242, 0.111111])],\n [('regression: stable epidemic',\n   ([50, 50, 50, 50, 50, 50], [0, 1, 2, 2, 2, 2], [0.2, 0.5, 0.3]),\n   [0.03, 0.036735]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: immediate deaths', ([20, 30, 25], [2, 3, 2], [1.0]), [0.093333, 0.093333]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667]),\n  ('regression: late surge',\n   ([5, 5, 5, 60, 90], [0, 0, 1, 1, 2], [0.05, 0.25, 0.4, 0.3]),\n   [0.024242, 0.111111])],\n [('regression: growing epidemic',\n   ([10, 20, 40, 80, 160], [0, 0, 1, 2, 5], [0.1, 0.3, 0.4, 0.2]),\n   [0.025806, 0.072727]),\n  ('control: long delay no outcomes', ([5, 8, 12], [0, 0, 0], [0, 0, 0, 0, 0, 1]), [0.0, None]),\n  ('control: no cases', ([0, 0, 0], [0, 0, 0], [0.5, 0.5]), None),\n  ('regression: adjusted exceeds one', ([1, 1, 50], [1, 1, 2], [0.0, 0.0, 1.0]), [0.076923, 1.0]),\n  ('regression: immediate deaths', ([20, 30, 25], [2, 3, 2], [1.0]), [0.093333, 0.093333]),\n  ('regression: single day', ([40], [1], [0.6, 0.4]), [0.025, 0.041667]),\n  ('regression: late surge',\n   ([5, 5, 5, 60, 90], [0, 0, 1, 1, 2], [0.05, 0.25, 0.4, 0.3]),\n   [0.024242, 0.111111])]]\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-delay-cfr-pmf-lag-origin","generated_at":"2026-09-29T14:47:32.382363+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 pmf index is treated as starting at lag 1.","sha256":"ea07c2de20b2fafd922299c6963419015c6c69693dbfd41c0de953b313a5c4e4","title":"Delay-adjusted case fatality ratio: pmf lag origin · 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":42.74,"exit_code":1,"observations":[{"actual":[0.025806,0.047904],"check":"regression: growing epidemic","expected":[0.025806,0.072727],"passed":false},{"actual":[0.03,0.04],"check":"regression: stable epidemic","expected":[0.03,0.036735],"passed":false},{"actual":[0.0,null],"check":"control: long delay no outcomes","expected":[0.0,null],"passed":true},{"actual":null,"check":"control: no cases","expected":null,"passed":true},{"actual":[0.076923,1.0],"check":"regression: adjusted exceeds one","expected":[0.076923,1.0],"passed":true},{"actual":[0.093333,null],"check":"regression: immediate deaths","expected":[0.093333,0.093333],"passed":false},{"actual":[0.025,0.0625],"check":"regression: single day","expected":[0.025,0.041667],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: growing epidemic\", \"actual\": [0.025806, 0.047904], \"expected\": [0.025806, 0.072727], \"passed\": false}, {\"check\": \"regression: stable epidemic\", \"actual\": [0.03, 0.04], \"expected\": [0.03, 0.036735], \"passed\": false}, {\"check\": \"control: long delay no outcomes\", \"actual\": [0.0, null], \"expected\": [0.0, null], \"passed\": true}, {\"check\": \"control: no cases\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"regression: adjusted exceeds one\", \"actual\": [0.076923, 1.0], \"expected\": [0.076923, 1.0], \"passed\": true}, {\"check\": \"regression: immediate deaths\", \"actual\": [0.093333, null], \"expected\": [0.093333, 0.093333], \"passed\": false}, {\"check\": \"regression: single day\", \"actual\": [0.025, 0.0625], \"expected\": [0.025, 0.041667], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.201,"exit_code":1,"observations":[{"actual":[0.025806,0.16],"check":"regression: growing epidemic","expected":[0.025806,0.072727],"passed":false},{"actual":[0.03,0.046154],"check":"regression: stable epidemic","expected":[0.03,0.036735],"passed":false},{"actual":[0.0,null],"check":"control: long delay no outcomes","expected":[0.0,null],"passed":true},{"actual":null,"check":"control: no cases","expected":null,"passed":true},{"actual":[0.076923,null],"check":"regression: adjusted exceeds one","expected":[0.076923,1.0],"passed":false},{"actual":[0.093333,0.14],"check":"regression: immediate deaths","expected":[0.093333,0.093333],"passed":false},{"actual":[0.025,null],"check":"regression: single day","expected":[0.025,0.041667],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: growing epidemic\", \"actual\": [0.025806, 0.16], \"expected\": [0.025806, 0.072727], \"passed\": false}, {\"check\": \"regression: stable epidemic\", \"actual\": [0.03, 0.046154], \"expected\": [0.03, 0.036735], \"passed\": false}, {\"check\": \"control: long delay no outcomes\", \"actual\": [0.0, null], \"expected\": [0.0, null], \"passed\": true}, {\"check\": \"control: no cases\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"regression: adjusted exceeds one\", \"actual\": [0.076923, null], \"expected\": [0.076923, 1.0], \"passed\": false}, {\"check\": \"regression: immediate deaths\", \"actual\": [0.093333, 0.14], \"expected\": [0.093333, 0.093333], \"passed\": false}, {\"check\": \"regression: single day\", \"actual\": [0.025, null], \"expected\": [0.025, 0.041667], \"passed\": false}], \"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."}}