Career & Best Practices5 min read

Three Numbers I Am Writing Down Before The Data Says Anything

S

Suneet Malhotra

May 24, 2026

1 views
Three Numbers I Am Writing Down Before The Data Says Anything - Career & Best Practices blog post

Friday's post argued that an audit which can only return the word keep is not really an audit. It is a ritual. The diagnostic was concrete enough. The fix was abstract. Today I want to make the fix concrete, in writing, before the next audit gives me an excuse not to.

The fix is borrowed from clinical trials and it is one sentence long. Write down the specific numeric result that would make you change the rule, before you pull the data. Then run the audit. If the data clears the line, you change the rule. If it does not, you keep the rule, but you keep it for a reason that is not retrofitted.

A tripwire counts only if it has three properties. It has to be a number, not a vibe. It has to be tied to a specific rule already in production. And it has to be writable down now, before I know what the data says. If I cannot say the number out loud without first peeking, the tripwire was never independent of the result.

Three audits are due this spring. Each one already has a default verdict that I would lean toward on instinct. Here is the line each of them has to cross, written down before I look.

Tripwire one. The exit-reason audit.

Tuesday's post showed that across the closures logged so far the trailing stop is doing about twice the closure work of the stop-loss, with a higher median R. The default verdict next time I rerun this audit will be that the trailing stop earns its place at the top of the exit hierarchy and the take-profit, which produces a fixed plus one R, sits beneath it as a variance reducer.

The tripwire. If, at one hundred and fifty closures, the median R from trailing-stop exits sits within three tenths of an R of the stop-loss median, the trailing stop loses its special status in the close-rule ranking. It becomes one of three peer rules, and the order they fire in becomes negotiable. The current ranking exists because the trailing stop is supposed to be capturing the right tail. If the right tail it captures is the same size as the left tail the stop-loss eats, there is no edge to preserve and the ranking was decoration.

Tripwire two. The bias-score threshold.

The threshold audit two weekends back declined to lower the bias-score gate below sixty-five because the fourteen trades sitting in the sixty-to-sixty-five band split seven and seven. That sample was, fairly, too small to support a change. The default verdict next time I rerun the audit will be the same one. The gate stays at sixty-five.

The tripwire. At one hundred and twenty sessions, if the win rate of trades that would have passed a sixty-point gate but did not pass a sixty-five-point gate is within five percentage points of the win rate of trades that did pass sixty-five, the threshold moves to sixty. Not as a discretionary loosening. As a forced response to a stated condition. The current threshold is a guess at where signal stops being signal. If the band immediately below it behaves like the band immediately above it, the guess was wrong by five points and I do not get to defend it on conviction.

Tripwire three. The per-ticker contribution.

The per-ticker audit a week ago found that two tickers were carrying most of the gross P and L, and declined to narrow the universe because the closure count per ticker was still in the twenties. Default verdict on the rerun will be that the universe stays as it is and contribution concentration is a feature of small samples.

The tripwire. At ninety sessions per ticker, any ticker contributing less than one percent of gross P and L while contributing more than five percent of realized variance comes out of the universe. That is the bad shape, in two numbers. Small upside, large noise. If a name is in that quadrant at ninety sessions it is paying rent in volatility for no payoff in dollars, and keeping it in the universe is sentiment. The cutoff is not aggressive. It only catches names that are clearly worse than the median on both axes at once.

What this costs me

Pre-registration is uncomfortable for a reason. It removes the operator's right to look at the data, dislike what it implies, and find a new reason the rule should stay. That right is what got us into ritual-audit territory in the first place, so removing it is the entire point. But it does mean that one of these audits is going to come back with a verdict I do not want to act on, and I will have already promised to act on it.

There is one escape hatch and I want to name it now so it does not get used quietly later. If the data trips a tripwire and I genuinely believe the tripwire was set in the wrong place, I am allowed to move it. I am not allowed to move it silently. The new threshold, with the new reason, becomes its own dated entry in the audit log, and that entry stays attached to the rule for as long as the rule exists. A logged exception is a judgment call. An unlogged one is the old escape hatch wearing a new coat.

The honest test of pre-registration is whether, three months from now, the log shows at least one rule that changed because a tripwire tripped. If the log shows zero changes and the tripwires were never crossed, the engine genuinely held up under audit. If the log shows zero changes and the tripwires were quietly moved each time the data got close, the ritual just learned a new vocabulary. I will know which one it is. So will anyone reading.

Share this post

You Might Also Like

Stay in the Loop

Get weekly insights on AI-driven QA, engineering leadership, and automation strategies.

No spam, ever. Unsubscribe anytime.