Open a few CausifyMarket reports and you will eventually find a key event whose causal read says: not determinable with the available data. The confidence badge is grey, and the mechanism field is empty. That is not a bug or a missing section. It is the report working as intended.
The easiest thing an AI can do is invent a reason
Large language models are built to produce fluent, plausible text. Ask one why a stock moved and it will almost always give you an answer — even when nothing in the data supports it. The result reads like analysis: "shares rose as investors welcomed the results", "the move reflects growing optimism about the sector".
Those sentences are unfalsifiable. They cannot be checked, they would fit almost any move, and they create a false sense of understanding. In market analysis, a confident wrong explanation is worse than no explanation, because it invites decisions based on a cause that may not exist.
The rule: no anchor, no mechanism
Our pipeline treats this as a hard constraint, not a style preference:
- A mechanism must be anchored to specific data — an explicit guidance figure, a quantitative comparison with a similar past event, or second-level data such as options volume.
- A validator checks every generated mechanism after the fact, rather than trusting the model's own assessment. Generic phrasing without a data anchor is rejected.
- When a mechanism is rejected, or when the event cannot be separated from its confounders, the confidence is set to undetermined and the mechanism is set to empty.
- The causal read block is still shown, with the confounders that made the move ambiguous. It is never silently removed.
What "undetermined" actually tells you
An undetermined read is information. It says: something happened to this company, the price moved, but other forces — a sector rotation, macro data, a shift in rate expectations — could explain the move just as well. That is often the truth about markets on a given day.
It also changes what the rest of the report does. A sector whose only event is undetermined is labelled neutral rather than bullish or bearish. Recommendations tied to that event are limited to "monitor", because there is no measurable cause to act on.
Why not just hide those events?
Because selective silence is its own kind of distortion. If reports only showed the events we could explain, every report would look more certain than markets really are. Showing the undetermined cases keeps the overall picture honest — and lets you see which moves are well understood and which are not.
A report that always has an answer is not more intelligent. It is less honest.
How often it happens
Before deployment, our quality checks require that undetermined reads stay below 60% of key events across test reports. A higher share would mean the source data or the analysis is not good enough to publish, and the fix is better data — not more confident prose.
Read more about how to read a causal read, or see the full known limitations of our method.