Track the filtered call, not just the winner
A high score that never reached the buyer can be a correct rejection, an execution problem, or a blind spot. Those are three different lessons.
The dangerous version of hindsight
When a missed token later runs, it is tempting to look only at the chart and conclude that every filter was wrong. That is not enough. A token can produce a spectacular chart while still being unbuyable at the observed price, too illiquid for the configured order, or unsafe according to evidence available at the time.
The opposite mistake is just as costly: assuming every rejection was correct because the filter fired. If a good setup is repeatedly blocked for stale, missing, or misformatted data, the system has a plumbing problem rather than a strategy.
Three questions for every miss
Cringe separates the decision layer from the execution layer so a miss can be diagnosed instead of hand-waved away.
- Signal: did the scanner see the token early enough and store the right market state?
- Decision: did the configured rules accept or reject it for an evidence-backed reason?
- Execution: if accepted, could the bot quote, submit, confirm, and book the trade in time?
Why rejected cohorts matter
The rejected cohort is the control group. Following it over time reveals whether a filter is removing mostly failures, whether it is also removing an unusual number of runners, and whether the answer changes with market conditions.
That does not mean automatically loosening a rule after one dramatic miss. It means keeping enough clean evidence to know when a rule has stopped earning its place.