{"abstract":"Growing populations receive inflated extinction probabilities.","category":"Ecological population dynamics","checks":7,"contract":"Log growth increments ln(N[t+1]/N[t]); mu = mean, sigma^2 = sample variance (q-1); d = ln(N_last/threshold); d<=0 gives probability 1.0; zero variance gives 1.0 if mu*T <= -d else 0.0; otherwise P = Phi((-d-muT)/(s sqrtT)) + exp(-2 mu d/s^2) Phi((-d+muT)/(s sqrtT)) capped at 1; return [mu, var, P] rounded 6; None with fewer than three counts, non-positive counts or threshold.","evaluation_group":"w2-ecopop-count-pva","failed_approach":"Dropping the factor 2 misstates the reflection term.","family":"w2-ecopop-count-pva-reflection-term-sign","id":"FA-65831","implementations":{"attempt":{"sha256":"e67b36bfb2fe91a3eb2ffad898daa71a5e3be56ac5b59fbca243f4f29911d923","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(counts, threshold, horizon):\n    if len(counts) < 3 or min(counts) <= 0 or threshold <= 0:\n        return None\n    logs = [math.log(counts[t + 1] / counts[t]) for t in range(len(counts) - 1)]\n    q = len(logs)\n    mu = sum(logs) / q\n    var = sum((x - mu) ** 2 for x in logs) / (q - 1)\n    d = math.log(counts[-1] / threshold)\n    if d <= 0:\n        return [round(mu, 6), round(var, 6), 1.0]\n    if var == 0:\n        return [round(mu, 6), 0.0, 1.0 if mu * horizon <= -d else 0.0]\n    sd = math.sqrt(var * horizon)\n    phi = lambda z: 0.5 * (1 + math.erf(z / math.sqrt(2)))\n    prob = phi((-d - mu * horizon) / sd) + math.exp(-mu * d / var) * phi((-d + mu * horizon) / sd)\n    return [round(mu, 6), round(var, 6), round(min(prob, 1.0), 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('regression: growing', ([30, 36, 40, 50, 55, 66], 10, 30), [0.157691, 0.003032, 0.0]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919])],\n [('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])],\n [('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])],\n [('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('regression: growing', ([30, 36, 40, 50, 55, 66], 10, 30), [0.157691, 0.003032, 0.0]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])],\n [('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])]]\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":"23e137cc45e13ed31b716223c2ebc59276a5f225449902ad2cb2f05a0f074757","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(counts, threshold, horizon):\n    if len(counts) < 3 or min(counts) <= 0 or threshold <= 0:\n        return None\n    logs = [math.log(counts[t + 1] / counts[t]) for t in range(len(counts) - 1)]\n    q = len(logs)\n    mu = sum(logs) / q\n    var = sum((x - mu) ** 2 for x in logs) / (q - 1)\n    d = math.log(counts[-1] / threshold)\n    if d <= 0:\n        return [round(mu, 6), round(var, 6), 1.0]\n    if var == 0:\n        return [round(mu, 6), 0.0, 1.0 if mu * horizon <= -d else 0.0]\n    sd = math.sqrt(var * horizon)\n    phi = lambda z: 0.5 * (1 + math.erf(z / math.sqrt(2)))\n    prob = phi((-d - mu * horizon) / sd) + math.exp(2 * mu * d / var) * phi((-d + mu * horizon) / sd)\n    return [round(mu, 6), round(var, 6), round(min(prob, 1.0), 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('regression: growing', ([30, 36, 40, 50, 55, 66], 10, 30), [0.157691, 0.003032, 0.0]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919])],\n [('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])],\n [('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])],\n [('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('regression: growing', ([30, 36, 40, 50, 55, 66], 10, 30), [0.157691, 0.003032, 0.0]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])],\n [('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])]]\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":"9ad32d83f3262b6f25b5c2e18fd6f78411bf99b4762bcbb9bf33006092070bed","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(counts, threshold, horizon):\n    if len(counts) < 3 or min(counts) <= 0 or threshold <= 0:\n        return None\n    logs = [math.log(counts[t + 1] / counts[t]) for t in range(len(counts) - 1)]\n    q = len(logs)\n    mu = sum(logs) / q\n    var = sum((x - mu) ** 2 for x in logs) / (q - 1)\n    d = math.log(counts[-1] / threshold)\n    if d <= 0:\n        return [round(mu, 6), round(var, 6), 1.0]\n    if var == 0:\n        return [round(mu, 6), 0.0, 1.0 if mu * horizon <= -d else 0.0]\n    sd = math.sqrt(var * horizon)\n    phi = lambda z: 0.5 * (1 + math.erf(z / math.sqrt(2)))\n    prob = phi((-d - mu * horizon) / sd) + math.exp(-2 * mu * d / var) * phi((-d + mu * horizon) / sd)\n    return [round(mu, 6), round(var, 6), round(min(prob, 1.0), 6)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('regression: growing', ([30, 36, 40, 50, 55, 66], 10, 30), [0.157691, 0.003032, 0.0]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919])],\n [('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])],\n [('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])],\n [('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('regression: growing', ([30, 36, 40, 50, 55, 66], 10, 30), [0.157691, 0.003032, 0.0]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])],\n [('regression: grizzly census decline',\n   ([45, 42, 44, 38, 36, 35, 31], 10, 20),\n   [-0.062113, 0.004743, 0.688257]),\n  ('regression: fluctuating stable', ([100, 120, 90, 110, 95, 105], 20, 50), [0.009758, 0.046826, 0.191687]),\n  ('control: already below threshold', ([30, 20, 8], 10, 10), [-0.660878, 0.130471, 1.0]),\n  ('control: constant decline', ([80, 40, 20], 5, 5), [-0.693147, 0.0, 1.0]),\n  ('control: too short', ([10, 9], 5, 5), None),\n  ('regression: high variance', ([200, 100, 260, 90, 300, 120], 30, 25), [-0.102165, 1.188964, 0.882919]),\n  ('regression: peak then decline', ([60, 120, 80, 70, 65], 15, 40), [0.020011, 0.222192, 0.539603])]]\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-count-pva-reflection-term-sign","generated_at":"2026-09-29T14:47:37.726599+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.","repair":"Restore the reflection term sign rule: `math.exp(-2 * mu * d / var)`.","root_cause":"The sign of the reflection exponent is reversed.","sha256":"43e219a5b86b4f268e22085a9cf5b1c6b01fb273951fc05585216f5fe896c7c3","title":"Count-based population viability (diffusion approximation): reflection term sign · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.468,"exit_code":1,"observations":[{"actual":[-0.062113,0.004743,0.640544],"check":"regression: grizzly census decline","expected":[-0.062113,0.004743,0.688257],"passed":false},{"actual":[0.009758,0.046826,0.237635],"check":"regression: fluctuating stable","expected":[0.009758,0.046826,0.191687],"passed":false},{"actual":[0.157691,0.003032,0.0],"check":"regression: growing","expected":[0.157691,0.003032,0.0],"passed":true},{"actual":[-0.660878,0.130471,1.0],"check":"control: already below threshold","expected":[-0.660878,0.130471,1.0],"passed":true},{"actual":[-0.693147,0.0,1.0],"check":"control: constant decline","expected":[-0.693147,0.0,1.0],"passed":true},{"actual":null,"check":"control: too short","expected":null,"passed":true},{"actual":[-0.102165,1.188964,0.849441],"check":"regression: high variance","expected":[-0.102165,1.188964,0.882919],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: grizzly census decline\", \"actual\": [-0.062113, 0.004743, 0.640544], \"expected\": [-0.062113, 0.004743, 0.688257], \"passed\": false}, {\"check\": \"regression: fluctuating stable\", \"actual\": [0.009758, 0.046826, 0.237635], \"expected\": [0.009758, 0.046826, 0.191687], \"passed\": false}, {\"check\": \"regression: growing\", \"actual\": [0.157691, 0.003032, 0.0], \"expected\": [0.157691, 0.003032, 0.0], \"passed\": true}, {\"check\": \"control: already below threshold\", \"actual\": [-0.660878, 0.130471, 1.0], \"expected\": [-0.660878, 0.130471, 1.0], \"passed\": true}, {\"check\": \"control: constant decline\", \"actual\": [-0.693147, 0.0, 1.0], \"expected\": [-0.693147, 0.0, 1.0], \"passed\": true}, {\"check\": \"control: too short\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"regression: high variance\", \"actual\": [-0.102165, 1.188964, 0.849441], \"expected\": [-0.102165, 1.188964, 0.882919], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.903,"exit_code":1,"observations":[{"actual":[-0.062113,0.004743,0.640544],"check":"regression: grizzly census decline","expected":[-0.062113,0.004743,0.688257],"passed":false},{"actual":[0.009758,0.046826,0.523827],"check":"regression: fluctuating stable","expected":[0.009758,0.046826,0.191687],"passed":false},{"actual":[0.157691,0.003032,1.0],"check":"regression: growing","expected":[0.157691,0.003032,0.0],"passed":false},{"actual":[-0.660878,0.130471,1.0],"check":"control: already below threshold","expected":[-0.660878,0.130471,1.0],"passed":true},{"actual":[-0.693147,0.0,1.0],"check":"control: constant decline","expected":[-0.693147,0.0,1.0],"passed":true},{"actual":null,"check":"control: too short","expected":null,"passed":true},{"actual":[-0.102165,1.188964,0.769923],"check":"regression: high variance","expected":[-0.102165,1.188964,0.882919],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: grizzly census decline\", \"actual\": [-0.062113, 0.004743, 0.640544], \"expected\": [-0.062113, 0.004743, 0.688257], \"passed\": false}, {\"check\": \"regression: fluctuating stable\", \"actual\": [0.009758, 0.046826, 0.523827], \"expected\": [0.009758, 0.046826, 0.191687], \"passed\": false}, {\"check\": \"regression: growing\", \"actual\": [0.157691, 0.003032, 1.0], \"expected\": [0.157691, 0.003032, 0.0], \"passed\": false}, {\"check\": \"control: already below threshold\", \"actual\": [-0.660878, 0.130471, 1.0], \"expected\": [-0.660878, 0.130471, 1.0], \"passed\": true}, {\"check\": \"control: constant decline\", \"actual\": [-0.693147, 0.0, 1.0], \"expected\": [-0.693147, 0.0, 1.0], \"passed\": true}, {\"check\": \"control: too short\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"regression: high variance\", \"actual\": [-0.102165, 1.188964, 0.769923], \"expected\": [-0.102165, 1.188964, 0.882919], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.614,"exit_code":0,"observations":[{"actual":[-0.062113,0.004743,0.688257],"check":"regression: grizzly census decline","expected":[-0.062113,0.004743,0.688257],"passed":true},{"actual":[0.009758,0.046826,0.191687],"check":"regression: fluctuating stable","expected":[0.009758,0.046826,0.191687],"passed":true},{"actual":[0.157691,0.003032,0.0],"check":"regression: growing","expected":[0.157691,0.003032,0.0],"passed":true},{"actual":[-0.660878,0.130471,1.0],"check":"control: already below threshold","expected":[-0.660878,0.130471,1.0],"passed":true},{"actual":[-0.693147,0.0,1.0],"check":"control: constant decline","expected":[-0.693147,0.0,1.0],"passed":true},{"actual":null,"check":"control: too short","expected":null,"passed":true},{"actual":[-0.102165,1.188964,0.882919],"check":"regression: high variance","expected":[-0.102165,1.188964,0.882919],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: grizzly census decline\", \"actual\": [-0.062113, 0.004743, 0.688257], \"expected\": [-0.062113, 0.004743, 0.688257], \"passed\": true}, {\"check\": \"regression: fluctuating stable\", \"actual\": [0.009758, 0.046826, 0.191687], \"expected\": [0.009758, 0.046826, 0.191687], \"passed\": true}, {\"check\": \"regression: growing\", \"actual\": [0.157691, 0.003032, 0.0], \"expected\": [0.157691, 0.003032, 0.0], \"passed\": true}, {\"check\": \"control: already below threshold\", \"actual\": [-0.660878, 0.130471, 1.0], \"expected\": [-0.660878, 0.130471, 1.0], \"passed\": true}, {\"check\": \"control: constant decline\", \"actual\": [-0.693147, 0.0, 1.0], \"expected\": [-0.693147, 0.0, 1.0], \"passed\": true}, {\"check\": \"control: too short\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"regression: high variance\", \"actual\": [-0.102165, 1.188964, 0.882919], \"expected\": [-0.102165, 1.188964, 0.882919], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}