{"abstract":"A treatment that lowered uptake reports an inverted complier effect.","category":"Experiment statistics","checks":8,"contract":"Outcome sums cover every assigned user. ITT = outcome_sum_t / assigned_t - outcome_sum_c / assigned_c. Compliance difference = took_t / assigned_t - took_c / assigned_c (control users can cross over). CACE = ITT / compliance difference when that difference is positive, else None. Nonpositive assignment counts -> None. Return [ITT, compliance difference, CACE] rounded to 6.","contract_signature":"assigned_c, took_c, outcome_sum_c, assigned_t, took_t, outcome_sum_t","evaluation_group":"w2-experiment-statistics-complier-effect","failed_approach":"Requiring compliance above one half discards legitimate low-uptake experiments.","family":"w2-experiment-statistics-complier-effect-weak-instrument","id":"FA-74701","implementations":{"attempt":{"sha256":"57b3fd19b0c614a6b77b8d0ec5bf248c814f1ea2299491f4408470655bdf7b61","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(assigned_c, took_c, outcome_sum_c, assigned_t, took_t, outcome_sum_t):\n    if assigned_c <= 0 or assigned_t <= 0:\n        return None\n    itt = outcome_sum_t / assigned_t - outcome_sum_c / assigned_c\n    comp = took_t / assigned_t - took_c / assigned_c\n    cace = round(itt / comp, 6) if comp > 0.5 else None\n    return [round(itt, 6), round(comp, 6), cace]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 1', [200, 22, 428, 400, 23, 389], [-1.1675, -0.0525, None]),\n  ('uptake sample 2', [100, 22, 279, 400, 165, 505], [-1.5275, 0.1925, -7.935065]),\n  ('uptake sample 3', [100, 11, 241, 400, 240, 17], [-2.3675, 0.49, -4.831633])],\n [('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 6', [400, 10, 585, 300, 223, 613], [0.580833, 0.718333, 0.808585]),\n  ('uptake sample 13', [200, 37, 126, 100, 31, 28], [-0.35, 0.125, -2.8]),\n  ('uptake sample 56', [200, 46, 138, 400, 11, 1127], [2.1275, -0.2025, None])],\n [('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 11', [400, 10, 635, 100, 93, 173], [0.1425, 0.905, 0.157459]),\n  ('uptake sample 31', [200, 36, 277, 100, 47, 205], [0.665, 0.29, 2.293103]),\n  ('uptake sample 34', [100, 16, 114, 100, 3, 9], [-1.05, -0.13, None])],\n [('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 16', [100, 6, 298, 300, 104, 511], [-1.276667, 0.286667, -4.453488]),\n  ('uptake sample 28', [200, 65, 83, 400, 91, 261], [0.2375, -0.0975, None]),\n  ('uptake sample 44', [400, 74, 499, 400, 166, 1064], [1.4125, 0.23, 6.141304])],\n [('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 18', [200, 43, 285, 300, 21, 666], [0.795, -0.145, None]),\n  ('uptake sample 21', [100, 18, 78, 100, 98, 114], [0.36, 0.8, 0.45]),\n  ('uptake sample 54', [100, 23, 3, 400, 181, 1088], [2.69, 0.2225, 12.089888])]]\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":"aa58bf24fc291d4caa9743b0c5e609da2e4b2202252155c56928d36e471adecf","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(assigned_c, took_c, outcome_sum_c, assigned_t, took_t, outcome_sum_t):\n    if assigned_c <= 0 or assigned_t <= 0:\n        return None\n    itt = outcome_sum_t / assigned_t - outcome_sum_c / assigned_c\n    comp = took_t / assigned_t - took_c / assigned_c\n    cace = round(itt / comp, 6) if comp != 0 else None\n    return [round(itt, 6), round(comp, 6), cace]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 1', [200, 22, 428, 400, 23, 389], [-1.1675, -0.0525, None]),\n  ('uptake sample 2', [100, 22, 279, 400, 165, 505], [-1.5275, 0.1925, -7.935065]),\n  ('uptake sample 3', [100, 11, 241, 400, 240, 17], [-2.3675, 0.49, -4.831633])],\n [('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 6', [400, 10, 585, 300, 223, 613], [0.580833, 0.718333, 0.808585]),\n  ('uptake sample 13', [200, 37, 126, 100, 31, 28], [-0.35, 0.125, -2.8]),\n  ('uptake sample 56', [200, 46, 138, 400, 11, 1127], [2.1275, -0.2025, None])],\n [('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 11', [400, 10, 635, 100, 93, 173], [0.1425, 0.905, 0.157459]),\n  ('uptake sample 31', [200, 36, 277, 100, 47, 205], [0.665, 0.29, 2.293103]),\n  ('uptake sample 34', [100, 16, 114, 100, 3, 9], [-1.05, -0.13, None])],\n [('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 16', [100, 6, 298, 300, 104, 511], [-1.276667, 0.286667, -4.453488]),\n  ('uptake sample 28', [200, 65, 83, 400, 91, 261], [0.2375, -0.0975, None]),\n  ('uptake sample 44', [400, 74, 499, 400, 166, 1064], [1.4125, 0.23, 6.141304])],\n [('crossover in control reduces compliance difference', [200, 20, 300, 200, 120, 420], [0.6, 0.5, 1.2]),\n  ('unequal arm sizes', [100, 0, 150, 400, 200, 800], [0.5, 0.5, 1.0]),\n  ('no uptake difference has no CACE', [100, 50, 100, 100, 50, 120], [0.2, 0.0, None]),\n  ('low but positive compliance still yields CACE', [100, 0, 100, 100, 30, 130], [0.3, 0.3, 1.0]),\n  ('negative compliance difference', [100, 60, 100, 100, 40, 90], [-0.1, -0.2, None]),\n  ('uptake sample 18', [200, 43, 285, 300, 21, 666], [0.795, -0.145, None]),\n  ('uptake sample 21', [100, 18, 78, 100, 98, 114], [0.36, 0.8, 0.45]),\n  ('uptake sample 54', [100, 23, 3, 400, 181, 1088], [2.69, 0.2225, 12.089888])]]\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":"A deterministic toy experiment-analysis model with a stipulated contract; results are rounded and are not a substitute for a validated statistics package. 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-experiment-statistics-complier-effect-weak-instrument","generated_at":"2026-09-29T14:48:59.148113+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Opt-in features have partial uptake; the effect on adopters needs an instrumental-variable estimate.","root_cause":"CACE is computed whenever the compliance difference is nonzero.","sha256":"374e8ac32e33f61646992613c6f062af3fcdd384bfc4cd359558a49238eee8fe","title":"Complier average causal effect: Negative compliance differences produce a CACE · 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":38.027,"exit_code":1,"observations":[{"actual":[0.6,0.5,null],"check":"crossover in control reduces compliance difference","expected":[0.6,0.5,1.2],"passed":false},{"actual":[0.5,0.5,null],"check":"unequal arm sizes","expected":[0.5,0.5,1.0],"passed":false},{"actual":[0.2,0.0,null],"check":"no uptake difference has no CACE","expected":[0.2,0.0,null],"passed":true},{"actual":[0.3,0.3,null],"check":"low but positive compliance still yields CACE","expected":[0.3,0.3,1.0],"passed":false},{"actual":[-0.1,-0.2,null],"check":"negative compliance difference","expected":[-0.1,-0.2,null],"passed":true},{"actual":[-1.1675,-0.0525,null],"check":"uptake sample 1","expected":[-1.1675,-0.0525,null],"passed":true},{"actual":[-1.5275,0.1925,null],"check":"uptake sample 2","expected":[-1.5275,0.1925,-7.935065],"passed":false},{"actual":[-2.3675,0.49,null],"check":"uptake sample 3","expected":[-2.3675,0.49,-4.831633],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"crossover in control reduces compliance difference\", \"actual\": [0.6, 0.5, null], \"expected\": [0.6, 0.5, 1.2], \"passed\": false}, {\"check\": \"unequal arm sizes\", \"actual\": [0.5, 0.5, null], \"expected\": [0.5, 0.5, 1.0], \"passed\": false}, {\"check\": \"no uptake difference has no CACE\", \"actual\": [0.2, 0.0, null], \"expected\": [0.2, 0.0, null], \"passed\": true}, {\"check\": \"low but positive compliance still yields CACE\", \"actual\": [0.3, 0.3, null], \"expected\": [0.3, 0.3, 1.0], \"passed\": false}, {\"check\": \"negative compliance difference\", \"actual\": [-0.1, -0.2, null], \"expected\": [-0.1, -0.2, null], \"passed\": true}, {\"check\": \"uptake sample 1\", \"actual\": [-1.1675, -0.0525, null], \"expected\": [-1.1675, -0.0525, null], \"passed\": true}, {\"check\": \"uptake sample 2\", \"actual\": [-1.5275, 0.1925, null], \"expected\": [-1.5275, 0.1925, -7.935065], \"passed\": false}, {\"check\": \"uptake sample 3\", \"actual\": [-2.3675, 0.49, null], \"expected\": [-2.3675, 0.49, -4.831633], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":36.528,"exit_code":1,"observations":[{"actual":[0.6,0.5,1.2],"check":"crossover in control reduces compliance difference","expected":[0.6,0.5,1.2],"passed":true},{"actual":[0.5,0.5,1.0],"check":"unequal arm sizes","expected":[0.5,0.5,1.0],"passed":true},{"actual":[0.2,0.0,null],"check":"no uptake difference has no CACE","expected":[0.2,0.0,null],"passed":true},{"actual":[0.3,0.3,1.0],"check":"low but positive compliance still yields CACE","expected":[0.3,0.3,1.0],"passed":true},{"actual":[-0.1,-0.2,0.5],"check":"negative compliance difference","expected":[-0.1,-0.2,null],"passed":false},{"actual":[-1.1675,-0.0525,22.238095],"check":"uptake sample 1","expected":[-1.1675,-0.0525,null],"passed":false},{"actual":[-1.5275,0.1925,-7.935065],"check":"uptake sample 2","expected":[-1.5275,0.1925,-7.935065],"passed":true},{"actual":[-2.3675,0.49,-4.831633],"check":"uptake sample 3","expected":[-2.3675,0.49,-4.831633],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"crossover in control reduces compliance difference\", \"actual\": [0.6, 0.5, 1.2], \"expected\": [0.6, 0.5, 1.2], \"passed\": true}, {\"check\": \"unequal arm sizes\", \"actual\": [0.5, 0.5, 1.0], \"expected\": [0.5, 0.5, 1.0], \"passed\": true}, {\"check\": \"no uptake difference has no CACE\", \"actual\": [0.2, 0.0, null], \"expected\": [0.2, 0.0, null], \"passed\": true}, {\"check\": \"low but positive compliance still yields CACE\", \"actual\": [0.3, 0.3, 1.0], \"expected\": [0.3, 0.3, 1.0], \"passed\": true}, {\"check\": \"negative compliance difference\", \"actual\": [-0.1, -0.2, 0.5], \"expected\": [-0.1, -0.2, null], \"passed\": false}, {\"check\": \"uptake sample 1\", \"actual\": [-1.1675, -0.0525, 22.238095], \"expected\": [-1.1675, -0.0525, null], \"passed\": false}, {\"check\": \"uptake sample 2\", \"actual\": [-1.5275, 0.1925, -7.935065], \"expected\": [-1.5275, 0.1925, -7.935065], \"passed\": true}, {\"check\": \"uptake sample 3\", \"actual\": [-2.3675, 0.49, -4.831633], \"expected\": [-2.3675, 0.49, -4.831633], \"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."}}