Minimum Claim-Breaking Witnesses

A threshold claim often needs a more direct answer than an endpoint interval:

What is the smallest hidden-cell recomposition that would make this claim false while leaving every reported public-bucket share unchanged?

minimum_claim_breaking_witness(...) solves that inverse problem directly. It starts at the observed hidden-cell law, preserves the observed public law, adds a constraint that places the target on the failing side of the decision rule, and minimizes the chosen distance from the observed law.

import updatesupport as us

claim = us.claim(
    "experiment lift remains positive",
    public=["market", "plan"],
    hidden=["market", "plan", "channel", "tenure_band", "device"],
    target="treatment_minus_control_lift",
    weight="users",
    decision=us.threshold_decision(">=", 0.0),
)

witness = claim.breaking_witness(rows, distance="tv")
print(witness.to_markdown())

An existing audit can reuse its compiled state space:

audit = claim.audit(rows)
witness = audit.breaking_witness(distance="tv")

The functional form is equivalent:

witness = us.minimum_claim_breaking_witness(rows, claim, distance="tv")

Distance Geometries

The first implementation supports:

  • tv: exact linear programming through SciPy/HiGHS. The optimum is the total probability mass that must be reassigned. This is usually the clearest analyst-facing result.

  • l2: a convex Euclidean-distance solve through CVXPY.

  • mahalanobis: a convex CVXPY solve using a supplied positive-definite covariance matrix. Correlated or unusually scaled cell shifts can therefore receive an explicit geometry.

Install the optional backend for the latter two:

pip install "updatesupport[cvxpy]"

What The Report Shows

The report separates the mathematical optimizer from its operational reading:

  • the observed and witness target values and decisions,

  • the globally minimum distance under the selected convex geometry,

  • the witness’s TV distance even when another geometry is optimized,

  • public-law preservation error and solver status,

  • every observed-to-witness hidden-cell mass change,

  • a within-public-fiber transfer ledger pairing mass sources and destinations.

For TV distance, the transfer ledger has a direct interpretation. A row such as

market=North: channel=direct -> channel=broker, mass=0.032

means that moving 3.2% of total retained mass between those hidden cells, while holding the North public share fixed, is part of the closest claim-breaking recomposition.

Statuses

  • found: a minimum margin-separated decision-breaking witness exists.

  • infeasible: no recomposition over the retained hidden cells can break the claim while preserving the public law.

  • already_broken: the observed value already fails the declared pass rule, so the minimum breaking distance is zero.

Threshold Margin

Optimization solvers cannot represent strict inequalities directly. The solve therefore targets a small positive separation from the threshold:

witness = claim.breaking_witness(rows, threshold_margin=1e-6)

For a value >= threshold claim, the witness is constrained to value <= threshold - threshold_margin. For a value <= threshold claim, it is constrained to value >= threshold + threshold_margin. The report records both the margin and the effective breaking boundary.

Relation To Breakdown Points

breakdown_point(...) evaluates a nested forward family Q(radius) and searches for the first radius whose target interval crosses a decision threshold. It is the right tool when a radius already has a substantive stress-test meaning.

The minimum witness solves the inverse problem once. It asks for the closest decision-flipping law in TV, L2, or Mahalanobis geometry and returns that law. For TV and L2 radius families built from the same observed law and fixed-public constraints, the optimum is the corresponding exact breakdown distance up to the declared threshold margin.

Scope And Limitations

The result is conditional on the chosen finer refinement and the retained empirical support. hidden means observed by the analyst but not publicly reported; it does not mean statistically unobserved.

The first implementation imposes fixed public marginals but does not intersect the inverse problem with the claim’s forward Q preset. That choice keeps the question precise: how far away is the nearest breaking composition in the selected geometry? Additional admissibility constraints can be layered into a later generalization.

The result is deterministic composition sensitivity, not a confidence interval and not the probability that the claim is false. An infeasible result means the claim cannot be broken on the retained support under fixed public marginals; it does not establish robustness to omitted variables, new hidden cells, target estimation error, or every conceivable population shift.