# Distance Boundary Policy

Production conclusion:
- Do not approve production TA9 close from `distance_to_hardstop_yen >= 0` yet.
- Approve only shadow logging of the condition.

Numeric rule for the next shadow phase:
- Compute raw distance and normalized distance from the same immutable snapshot used for `HardStopNow`.
- Do not use an ad hoc epsilon.
- Do not tune around the observed -8.16 yen HTE-kill case.
- `HardStopNow=true` always suppresses TA9, regardless of distance.
- `distance_to_hardstop_yen <= 0` suppresses TA9.
- `distance_to_hardstop_yen > 0` may be marked as `TA9_SAFE_CANDIDATE` in shadow only when all other guards pass.

Boundary stance:
- Exact zero is a HardStop boundary under the source formula because `GetFloatingLossYen(ps) >= threshold` is HardStop.
- If exact zero appears with `HardStopNow=false`, that is a snapshot parity error, not a TA9 approval signal.
- The future implementation should prefer a shared function returning both HardStopNow and distance over separate double comparisons.

See distance_boundary_policy.csv for explicit edge cases.
