Skip to content
AITroveRead. Build. Understand.
Make this comfortable

Interference exposure: decide whether the assigned unit can be isolated

Last updated: 7 Oct 20265 min read
tutorial
AdvancedBy AITrove Editorial

When one unit can change another unit’s outcome, treatment labels alone do not describe the exposure each unit received.

Map the operational edges

A depot trial assigns a scan process by shift, but workers switch between adjacent shifts and share the same scanner queue. A nominal control shift may therefore use a device configured by a treated shift. List the ways exposure can travel: staff handoff, shared equipment, route reassignment, and supervisor instruction. Define an exposure mapping before outcome review, such as own-shift assignment plus the count of adjacent treated shifts. The assignment-unit lesson shows why individual tickets are not independent units in this design.

Choose a design that contains the spillover

If sharing is frequent, randomize at depot-week or another cluster broad enough to contain most transfer, then obtain enough independent clusters for uncertainty. If clusters still interact, buffer periods or network-aware assignment may be needed. A larger cluster reduces the number of independent units and can raise the sample-size requirement. The cluster-power lesson covers that cost, while the bootstrap lesson guards against row-level precision.

Do not mistake exposure for assignment

Assignment is randomized; actual exposure can depend on staffing decisions and workloads after assignment. Comparing high-exposure and low-exposure shifts without adjustment is not automatically causal, even when the original policy labels were randomized. A direct effect under one neighbor configuration differs from an overall rollout effect in which every neighboring shift is treated. State which effect the decision needs. The code counts neighboring treated assignments as a descriptive design audit, not a causal effect estimator.

Document the residual risk

Report the network or roster snapshot, cluster boundaries, transitions across boundaries, timing, and the percentage of control units exposed indirectly. If transfer is material, an ordinary blocked permutation test of a no-spillover effect may answer the wrong question. The blocked-test lesson remains valid only for its assignment mechanism and sharp-null interpretation. The project stops a simple policy claim when handoff leakage is unmeasured.

Implementation

python
def neighbor_treatment_counts(assignments, adjacency):
    if set(assignments) != set(adjacency):
        raise ValueError("every shift needs a roster entry")
    counts = {}
    for shift_id, neighbors in adjacency.items():
        if not set(neighbors) <= set(assignments):
            raise ValueError("unknown neighboring shift")
        counts[shift_id] = sum(bool(assignments[neighbor]) for neighbor in neighbors)
    return counts

assignments = {"north-early": True, "north-late": False,
               "south-early": False}
adjacency = {"north-early": ["north-late"],
             "north-late": ["north-early", "south-early"],
             "south-early": ["north-late"]}
assert neighbor_treatment_counts(assignments, adjacency)["north-late"] == 1

Performance and operating cost

Counting exposures is O(V + E) time for V shifts and E directed adjacency entries, with O(V) output space. The roster and equipment-sharing audit costs more than the graph scan. Moving to cluster assignment reduces independent units and should be reflected in power and variance calculations.

Common Mistakes

  • Equating randomized assignment with actual received exposure.
  • Treating tickets within a shared scanner queue as independent experimental units.
  • Changing an exposure mapping after seeing which group benefits.
  • Calling a shift-level contrast a full-rollout effect without a neighbor-policy assumption.

Read next

ai-data
applied-statistics
Storage details