{"abstract":"A synthetic Wald ratio divides by uptake level instead of uptake contrast.","category":"Causal analysis data contracts","checks":6,"contract":"Input [meanY0,meanY1,meanD0,meanD1] describes a supplied synthetic IV design; return its Wald ratio, None when first stage is zero. No identification assumptions are inferred.","evaluation_group":"model-c65cfae537d18735","failed_approach":"Taking the absolute first stage reverses effects when instrument coding is reversed.","family":"z-causal_inference-instrument-first-stage","id":"FA-12671","implementations":{"attempt":{"sha256":"166e66da60173a60fcb93b5ca70672fed15187b5a7a8cfa7607bf283138de189","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(means):\n    y0,y1,d0,d1 = means\n    return (y1-y0)/abs(d1-d0) if d1 != d0 else None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('nonzero baseline', solve([0,N,0.25,0.75]), 2*N)\ncheck('reversed instrument', solve([N,0,0.75,0.25]), 2*N)\ncheck('no first stage', solve([0,N,0.5,0.5]), None)\ncheck('zero uptake', solve([0,N,0,0]), None)\ncheck('null reduced form', solve([N,N,0,1]), 0)\ncheck('negative ratio', solve([N,0,0,1]), -N)\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":"dfc9df0d4b0a30268089d0790c3acedc051509f0e9a4f14c22d5fb8cf5cedc6d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(means):\n    y0,y1,d0,d1 = means\n    return (y1-y0)/d1 if d1 else None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('nonzero baseline', solve([0,N,0.25,0.75]), 2*N)\ncheck('reversed instrument', solve([N,0,0.75,0.25]), 2*N)\ncheck('no first stage', solve([0,N,0.5,0.5]), None)\ncheck('zero uptake', solve([0,N,0,0]), None)\ncheck('null reduced form', solve([N,N,0,1]), 0)\ncheck('negative ratio', solve([N,0,0,1]), -N)\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":"3d20233b9179f2499c3d22c07dc661cb7a7a1c6bd0272bdb0fcbfc9520050273","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(means):\n    y0,y1,d0,d1 = means\n    return (y1-y0)/(d1-d0) if d1 != d0 else None\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('nonzero baseline', solve([0,N,0.25,0.75]), 2*N)\ncheck('reversed instrument', solve([N,0,0.75,0.25]), 2*N)\ncheck('no first stage', solve([0,N,0.5,0.5]), None)\ncheck('zero uptake', solve([0,N,0,0]), None)\ncheck('null reduced form', solve([N,N,0,1]), 0)\ncheck('negative ratio', solve([N,0,0,1]), -N)\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":"Finite, fully specified synthetic data only; identification assumptions are supplied by the fixture design, not inferred from observations. 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":"z-causal_inference-instrument-first-stage","generated_at":"2026-09-29T14:38:59.052990+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A deterministic synthetic study model isolates this data-contract defect; outputs alone establish no real-world causal identification.","repair":"Divide the reduced-form outcome contrast by the signed uptake contrast.","root_cause":"The instrument first stage is not differenced between instrument arms.","sha256":"66f60786235a163454c79ab429e5c1eb635462363dd14d9875e5fa20a01ca92b","title":"A synthetic Wald ratio divides by uptake level instead of uptake contrast · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.637,"exit_code":1,"observations":[{"actual":2.0,"check":"nonzero baseline","expected":2,"passed":true},{"actual":-2.0,"check":"reversed instrument","expected":2,"passed":false},{"actual":null,"check":"no first stage","expected":null,"passed":true},{"actual":null,"check":"zero uptake","expected":null,"passed":true},{"actual":0.0,"check":"null reduced form","expected":0,"passed":true},{"actual":-1.0,"check":"negative ratio","expected":-1,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"nonzero baseline\", \"actual\": 2.0, \"expected\": 2, \"passed\": true}, {\"check\": \"reversed instrument\", \"actual\": -2.0, \"expected\": 2, \"passed\": false}, {\"check\": \"no first stage\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero uptake\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"null reduced form\", \"actual\": 0.0, \"expected\": 0, \"passed\": true}, {\"check\": \"negative ratio\", \"actual\": -1.0, \"expected\": -1, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.952,"exit_code":1,"observations":[{"actual":1.3333333333333333,"check":"nonzero baseline","expected":2,"passed":false},{"actual":-4.0,"check":"reversed instrument","expected":2,"passed":false},{"actual":2.0,"check":"no first stage","expected":null,"passed":false},{"actual":null,"check":"zero uptake","expected":null,"passed":true},{"actual":0.0,"check":"null reduced form","expected":0,"passed":true},{"actual":-1.0,"check":"negative ratio","expected":-1,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"nonzero baseline\", \"actual\": 1.3333333333333333, \"expected\": 2, \"passed\": false}, {\"check\": \"reversed instrument\", \"actual\": -4.0, \"expected\": 2, \"passed\": false}, {\"check\": \"no first stage\", \"actual\": 2.0, \"expected\": null, \"passed\": false}, {\"check\": \"zero uptake\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"null reduced form\", \"actual\": 0.0, \"expected\": 0, \"passed\": true}, {\"check\": \"negative ratio\", \"actual\": -1.0, \"expected\": -1, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.195,"exit_code":0,"observations":[{"actual":2.0,"check":"nonzero baseline","expected":2,"passed":true},{"actual":2.0,"check":"reversed instrument","expected":2,"passed":true},{"actual":null,"check":"no first stage","expected":null,"passed":true},{"actual":null,"check":"zero uptake","expected":null,"passed":true},{"actual":0.0,"check":"null reduced form","expected":0,"passed":true},{"actual":-1.0,"check":"negative ratio","expected":-1,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"nonzero baseline\", \"actual\": 2.0, \"expected\": 2, \"passed\": true}, {\"check\": \"reversed instrument\", \"actual\": 2.0, \"expected\": 2, \"passed\": true}, {\"check\": \"no first stage\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"zero uptake\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"null reduced form\", \"actual\": 0.0, \"expected\": 0, \"passed\": true}, {\"check\": \"negative ratio\", \"actual\": -1.0, \"expected\": -1, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}