There is a common assumption in AI trading that the goal is to get the model making the calls. Better model, better calls. We think that framing leads you in the wrong direction.
APEX is built on a different premise. The deterministic layer comes first. There are hard gates on flow quality, recency, concentration, and deployer risk. These are not soft signals the AI weighs. They are non-negotiable veto conditions. A candidate that fails them does not move forward, regardless of what the AI thinks about it. The AI layer sits above this and handles the parts that gate logic genuinely cannot: interpreting messy context, reconciling signals that point in different directions, surfacing what matters when the data is noisy or incomplete.
The reason for this structure is that deterministic checks are reliable in a way that AI is not. If the flow quality check fails, it fails the same way every time. You can audit it, trust it, and explain it. AI decisions are harder to audit and easier to game if someone knows the model's tendencies. Keeping hard constraints in code and interpretive judgment in the AI layer gives you the benefits of both without the fragility of either.
A significant piece of work this month was fixing what we internally called decision amnesia. The previous version of the system evaluated candidates at a single moment in time. It saw the current state and made a call without any memory of how the situation had developed. That is a big limitation. Whether a setup is worth acting on is often a function of how it got there, not just where it is right now. We rebuilt the context model so the system now carries persistent state across the full lifecycle of a candidate: from early signals through to the decision point. The history of how something developed is now part of what the system reasons from.
The numbers for the period: 192 calls, 62.5% hit rate, 1,405x total return, 7.3x average, 2.7x median, with 120 calls returning above 2x. The distribution across multiple return bands is more meaningful than the headline figure. Single-outlier returns can look good on aggregate and mean the system is making low-quality entries that happen to get lucky occasionally. Distributed returns across bands suggest the filters are doing their job consistently.
The ongoing work is about making decisions that are consistent, explainable, and repeatable. A system that gets the right answer for reasons you cannot articulate is not a reliable system. It is a lucky one.
