{"abstract":"Breeding seasons that span the new year never occur.","category":"Ecological population dynamics","checks":7,"contract":"Calendar month of step t is ((start_month-1+t) mod 12)+1; the breeding window is inclusive and may wrap across the new year (start > end); each month survival is applied first, then in breeding months births fecundity*N*max(0,1-N/cap); return monthly N rounded 4.","contract_signature":"n0, monthly_survival, fecundity, breed_start, breed_end, start_month, months, cap","evaluation_group":"w2-ecopop-birth-pulse","failed_approach":"Checking only the start month misses January to breed_end.","family":"w2-ecopop-birth-pulse-wrapping-window","id":"FA-65771","implementations":{"attempt":{"sha256":"ae6d9400957cc987b7c9666d5377bb8b1d5a3e46b26b25fe3351a2082bd90bb3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(n0, monthly_survival, fecundity, breed_start, breed_end, start_month, months, cap):\n    n = float(n0)\n    traj = []\n    for t in range(months):\n        month = (start_month - 1 + t) % 12 + 1\n        if breed_start <= breed_end:\n            breeding = breed_start <= month <= breed_end\n        else:\n            breeding = month >= breed_start\n        n *= monthly_survival\n        if breeding:\n            n += fecundity * n * max(0.0, 1 - n / cap)\n        traj.append(round(n, 4))\n    return traj\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('control: deer spring births',\n   (100, 0.97, 0.4, 5, 6, 3, 6, 400),\n   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),\n  ('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),\n  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],\n [('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),\n  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),\n  ('control: late-autumn window through december',\n   (80, 0.98, 0.3, 11, 12, 10, 4, 500),\n   [78.4, 96.3397, 117.3885, 115.0407]),\n  ('regression: start inside wrap',\n   (70, 0.93, 0.35, 10, 3, 1, 4, 250),\n   [81.9518, 94.7582, 108.0965, 100.5297])],\n [('control: deer spring births',\n   (100, 0.97, 0.4, 5, 6, 3, 6, 400),\n   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),\n  ('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),\n  ('control: late-autumn window through december',\n   (80, 0.98, 0.3, 11, 12, 10, 4, 500),\n   [78.4, 96.3397, 117.3885, 115.0407]),\n  ('regression: start inside wrap',\n   (70, 0.93, 0.35, 10, 3, 1, 4, 250),\n   [81.9518, 94.7582, 108.0965, 100.5297])],\n [('control: deer spring births',\n   (100, 0.97, 0.4, 5, 6, 3, 6, 400),\n   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),\n  ('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),\n  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],\n [('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),\n  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),\n  ('control: late-autumn window through december',\n   (80, 0.98, 0.3, 11, 12, 10, 4, 500),\n   [78.4, 96.3397, 117.3885, 115.0407]),\n  ('regression: start inside wrap',\n   (70, 0.93, 0.35, 10, 3, 1, 4, 250),\n   [81.9518, 94.7582, 108.0965, 100.5297])]]\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":"8e5748269a132ebf9170f672c55e559e134adcb0a0135f25d1d1594202f3e47f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(n0, monthly_survival, fecundity, breed_start, breed_end, start_month, months, cap):\n    n = float(n0)\n    traj = []\n    for t in range(months):\n        month = (start_month - 1 + t) % 12 + 1\n        if breed_start <= breed_end:\n            breeding = breed_start <= month <= breed_end\n        else:\n            breeding = month >= breed_start and month <= breed_end\n        n *= monthly_survival\n        if breeding:\n            n += fecundity * n * max(0.0, 1 - n / cap)\n        traj.append(round(n, 4))\n    return traj\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('control: deer spring births',\n   (100, 0.97, 0.4, 5, 6, 3, 6, 400),\n   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),\n  ('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),\n  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],\n [('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),\n  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),\n  ('control: late-autumn window through december',\n   (80, 0.98, 0.3, 11, 12, 10, 4, 500),\n   [78.4, 96.3397, 117.3885, 115.0407]),\n  ('regression: start inside wrap',\n   (70, 0.93, 0.35, 10, 3, 1, 4, 250),\n   [81.9518, 94.7582, 108.0965, 100.5297])],\n [('control: deer spring births',\n   (100, 0.97, 0.4, 5, 6, 3, 6, 400),\n   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),\n  ('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),\n  ('control: late-autumn window through december',\n   (80, 0.98, 0.3, 11, 12, 10, 4, 500),\n   [78.4, 96.3397, 117.3885, 115.0407]),\n  ('regression: start inside wrap',\n   (70, 0.93, 0.35, 10, 3, 1, 4, 250),\n   [81.9518, 94.7582, 108.0965, 100.5297])],\n [('control: deer spring births',\n   (100, 0.97, 0.4, 5, 6, 3, 6, 400),\n   [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888]),\n  ('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('regression: december start', (80, 0.98, 0.25, 12, 1, 12, 3, 500), [94.9267, 111.9581, 109.7189]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),\n  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377])],\n [('regression: southern winter breeding wraps',\n   (50, 0.95, 0.3, 11, 2, 10, 6, 300),\n   [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636]),\n  ('control: single month window end', (60, 0.9, 0.5, 4, 4, 3, 3, 200), [54.0, 66.9951, 60.2956]),\n  ('control: above cap no births', (500, 0.99, 0.3, 1, 12, 1, 3, 400), [495.0, 490.05, 485.1495]),\n  ('control: no breeding months reached', (40, 0.95, 0.3, 8, 9, 1, 4, 200), [38.0, 36.1, 34.295, 32.5802]),\n  ('control: full year',\n   (30, 0.96, 0.2, 3, 5, 1, 12, 100),\n   [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377]),\n  ('control: late-autumn window through december',\n   (80, 0.98, 0.3, 11, 12, 10, 4, 500),\n   [78.4, 96.3397, 117.3885, 115.0407]),\n  ('regression: start inside wrap',\n   (70, 0.93, 0.35, 10, 3, 1, 4, 250),\n   [81.9518, 94.7582, 108.0965, 100.5297])]]\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-ecopop-birth-pulse-wrapping-window","generated_at":"2026-09-29T14:47:37.220018+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Population projections set harvest quotas, conservation status and pest-control timing; a wrong update order, boundary or rate conversion silently changes management advice.","root_cause":"The wrap-around window uses \"and\", which is always false.","sha256":"ab2bafb3bb38cf733b7ee139f0ae73e3db6125d77ca44e878181e5034fb9acc4","title":"Monthly population with seasonal breeding window: wrapping window · 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":43.215,"exit_code":1,"observations":[{"actual":[97.0,94.09,119.4445,148.7818,144.3184,139.9888],"check":"control: deer spring births","expected":[97.0,94.09,119.4445,148.7818,144.3184,139.9888],"passed":true},{"actual":[47.5,56.6262,67.0395,63.6875,60.5032,57.478],"check":"regression: southern winter breeding wraps","expected":[47.5,56.6262,67.0395,78.7377,91.6459,87.0636],"passed":false},{"actual":[94.9267,93.0282,91.1676],"check":"regression: december start","expected":[94.9267,111.9581,109.7189],"passed":false},{"actual":[54.0,66.9951,60.2956],"check":"control: single month window end","expected":[54.0,66.9951,60.2956],"passed":true},{"actual":[495.0,490.05,485.1495],"check":"control: above cap no births","expected":[495.0,490.05,485.1495],"passed":true},{"actual":[38.0,36.1,34.295,32.5802],"check":"control: no breeding months reached","expected":[38.0,36.1,34.295,32.5802],"passed":true},{"actual":[28.8,27.648,30.4415,33.3606,36.38,34.9248,33.5278,32.1867,30.8993,29.6633,28.4768,27.3377],"check":"control: full year","expected":[28.8,27.648,30.4415,33.3606,36.38,34.9248,33.5278,32.1867,30.8993,29.6633,28.4768,27.3377],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control: deer spring births\", \"actual\": [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888], \"expected\": [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888], \"passed\": true}, {\"check\": \"regression: southern winter breeding wraps\", \"actual\": [47.5, 56.6262, 67.0395, 63.6875, 60.5032, 57.478], \"expected\": [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636], \"passed\": false}, {\"check\": \"regression: december start\", \"actual\": [94.9267, 93.0282, 91.1676], \"expected\": [94.9267, 111.9581, 109.7189], \"passed\": false}, {\"check\": \"control: single month window end\", \"actual\": [54.0, 66.9951, 60.2956], \"expected\": [54.0, 66.9951, 60.2956], \"passed\": true}, {\"check\": \"control: above cap no births\", \"actual\": [495.0, 490.05, 485.1495], \"expected\": [495.0, 490.05, 485.1495], \"passed\": true}, {\"check\": \"control: no breeding months reached\", \"actual\": [38.0, 36.1, 34.295, 32.5802], \"expected\": [38.0, 36.1, 34.295, 32.5802], \"passed\": true}, {\"check\": \"control: full year\", \"actual\": [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377], \"expected\": [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.787,"exit_code":1,"observations":[{"actual":[97.0,94.09,119.4445,148.7818,144.3184,139.9888],"check":"control: deer spring births","expected":[97.0,94.09,119.4445,148.7818,144.3184,139.9888],"passed":true},{"actual":[47.5,45.125,42.8687,40.7253,38.689,36.7546],"check":"regression: southern winter breeding wraps","expected":[47.5,56.6262,67.0395,78.7377,91.6459,87.0636],"passed":false},{"actual":[78.4,76.832,75.2954],"check":"regression: december start","expected":[94.9267,111.9581,109.7189],"passed":false},{"actual":[54.0,66.9951,60.2956],"check":"control: single month window end","expected":[54.0,66.9951,60.2956],"passed":true},{"actual":[495.0,490.05,485.1495],"check":"control: above cap no births","expected":[495.0,490.05,485.1495],"passed":true},{"actual":[38.0,36.1,34.295,32.5802],"check":"control: no breeding months reached","expected":[38.0,36.1,34.295,32.5802],"passed":true},{"actual":[28.8,27.648,30.4415,33.3606,36.38,34.9248,33.5278,32.1867,30.8993,29.6633,28.4768,27.3377],"check":"control: full year","expected":[28.8,27.648,30.4415,33.3606,36.38,34.9248,33.5278,32.1867,30.8993,29.6633,28.4768,27.3377],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control: deer spring births\", \"actual\": [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888], \"expected\": [97.0, 94.09, 119.4445, 148.7818, 144.3184, 139.9888], \"passed\": true}, {\"check\": \"regression: southern winter breeding wraps\", \"actual\": [47.5, 45.125, 42.8687, 40.7253, 38.689, 36.7546], \"expected\": [47.5, 56.6262, 67.0395, 78.7377, 91.6459, 87.0636], \"passed\": false}, {\"check\": \"regression: december start\", \"actual\": [78.4, 76.832, 75.2954], \"expected\": [94.9267, 111.9581, 109.7189], \"passed\": false}, {\"check\": \"control: single month window end\", \"actual\": [54.0, 66.9951, 60.2956], \"expected\": [54.0, 66.9951, 60.2956], \"passed\": true}, {\"check\": \"control: above cap no births\", \"actual\": [495.0, 490.05, 485.1495], \"expected\": [495.0, 490.05, 485.1495], \"passed\": true}, {\"check\": \"control: no breeding months reached\", \"actual\": [38.0, 36.1, 34.295, 32.5802], \"expected\": [38.0, 36.1, 34.295, 32.5802], \"passed\": true}, {\"check\": \"control: full year\", \"actual\": [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377], \"expected\": [28.8, 27.648, 30.4415, 33.3606, 36.38, 34.9248, 33.5278, 32.1867, 30.8993, 29.6633, 28.4768, 27.3377], \"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."}}