This is the 2D counterpart to the 3D concentric-shell version — instead of spherical shells a malicious or legitimate event has to cross radially, each rule here is its own lane with a single checkpoint gate at a fixed position. An event spawns at the left of a randomly-chosen lane and travels at constant speed toward the endpoint core on the right. When it crosses the gate, the rule's mode decides what happens:
- Off — the gate does not even evaluate the event: it passes through unlogged.
- Audit — the gate silently samples what it would have done (drawing against the rule's true-positive/false-positive rate) and records it for statistics, but never removes the event from the lane.
- Block — the same sample is drawn, but this time a "would-block" draw actually removes the event from the lane.
P(gate fires | malicious) = p_TP P(gate fires | legitimate) = p_FP
Block mode: fires ⇒ event removed (blocked / business disruption)
Audit mode: fires ⇒ logged only, event continues to the endpoint
Off mode: gate never evaluates the event at all
Every Audit or Block sample also feeds a running Wilson score interval — the standard small-sample-safe confidence interval for a binomial proportion — so the diagnostics table estimates each rule's real p_TP and p_FP purely from what the gate has observed, the same way a defender watching Audit-mode logs estimates a rule's impact before ever flipping it to enforcement:
phat = k/n, z = 1.96
center = (phat + z²/2n) / (1 + z²/n)
margin = z·√(phat(1−phat)/n + z²/4n²) / (1 + z²/n)
95% CI = [center − margin, center + margin]
| Rule | p_TP | p_FP |
| Macro → child process | 92% | 4% |
| Obfuscated scripts | 85% | 3% |
| LSASS credential access | 78% | 2% |
| Cross-process injection | 88% | 5% |
Watch the CI columns narrow as more events cross a lane's gate in Audit or Block mode — a direct visualization of how much log volume a defender actually needs before trusting an estimated false-positive rate enough to flip a rule to Block.