FAILURE MAP
← Case archive

FA-12641 / Causal analysis data contracts / Open access

Intention-to-treat groups are rebuilt from received treatment · case 01

Intention-to-treat groups are rebuilt from received treatment.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Observed uptake replaces randomized assignment.

VERIFIED REPAIR

Group every unit by assigned arm.

Unsuccessful approach: Dropping noncompliers still conditions on uptake.

Case contract

Rows are [assignment, received, outcome]. Return assigned-arm mean difference or None if either assigned arm is absent.

Why this case matters

A deterministic synthetic study model isolates this data-contract defect; outputs alone establish no real-world causal identification.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(rows):
    groups = [[r[2] for r in rows if r[1] == a] for a in (0,1)]
    return None if not all(groups) else sum(groups[1])/len(groups[1])-sum(groups[0])/len(groups[0])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('crossovers', solve([[0,0,0],[0,1,4*N],[1,0,2*N],[1,1,6*N]]), 2*N)
check('compliance', solve([[0,0,N],[1,1,3*N]]), 2*N)
check('all cross', solve([[0,1,N],[1,0,4*N]]), 3*N)
check('empty', solve([]), None)
check('missing control', solve([[1,0,N]]), None)
check('zero effect', solve([[0,1,N],[1,1,N]]), 0)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
crossovers4.02Failed
compliance2.02Passed
all cross-3.03Failed
emptyNoneNonePassed
missing controlNoneNonePassed
zero effectNone0Failed

SHA-256 / 37d517796bffe55eba20ecdc6a8d8fa42d3e730e6dd0629cb1bf6d9bb624e1dd

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(rows):
    groups = [[r[2] for r in rows if r[0] == a and r[0] == r[1]] for a in (0,1)]
    return None if not all(groups) else sum(groups[1])/len(groups[1])-sum(groups[0])/len(groups[0])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('crossovers', solve([[0,0,0],[0,1,4*N],[1,0,2*N],[1,1,6*N]]), 2*N)
check('compliance', solve([[0,0,N],[1,1,3*N]]), 2*N)
check('all cross', solve([[0,1,N],[1,0,4*N]]), 3*N)
check('empty', solve([]), None)
check('missing control', solve([[1,0,N]]), None)
check('zero effect', solve([[0,1,N],[1,1,N]]), 0)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
crossovers6.02Failed
compliance2.02Passed
all crossNone3Failed
emptyNoneNonePassed
missing controlNoneNonePassed
zero effectNone0Failed

SHA-256 / 698257a6a8a8d5ccb22369ec69a49508987f0a1f86e383b5ba6ebdd1e4e2a2ba

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(rows):
    groups = [[r[2] for r in rows if r[0] == a] for a in (0,1)]
    return None if not all(groups) else sum(groups[1])/len(groups[1])-sum(groups[0])/len(groups[0])
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('crossovers', solve([[0,0,0],[0,1,4*N],[1,0,2*N],[1,1,6*N]]), 2*N)
check('compliance', solve([[0,0,N],[1,1,3*N]]), 2*N)
check('all cross', solve([[0,1,N],[1,0,4*N]]), 3*N)
check('empty', solve([]), None)
check('missing control', solve([[1,0,N]]), None)
check('zero effect', solve([[0,1,N],[1,1,N]]), 0)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
crossovers2.02Passed
compliance2.02Passed
all cross3.03Passed
emptyNoneNonePassed
missing controlNoneNonePassed
zero effect0.00Passed

SHA-256 / bd92be69762b871897cc81c3ba544e3c1a02e884ce4a4595fbab398db6d544cf

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:38:58.793921+00:00.

Case digest / 9c90c6ef030ab667d3e39d2be87291dea00444cd69f057264e4ff451a3f08bed