The data shows a specific class of failure: a system that returns a complete answer to an empty question. Last week I ran a nine-dimension research pipeline against a token brief. The output came back fully formatted — technical assessment, tokenomics table, risk matrix, narrative score, all nine sections populated with the same typographic confidence. The input underneath it contained zero information points. Not few. Zero. An extractor had returned an empty array; every stage beneath it treated null as a value and rendered the equivalent of "insufficient data" in the same font as a finding. Nothing in the artifact signaled that the substrate was air. We do not predict the future; we hedge against it — but hedging requires an input that exists.
The pipeline's design constraint was non-negotiable: every conclusion must trace back to a numbered, independently verifiable fact unit. No fact unit, no conclusion. When the completeness check ran, the field-completion rate was 0%, well below the 60% threshold that should have triggered an automatic abort. The correct behavior was a block, and a block is what eventually happened — but it happened in prose, written by hand, after a full cycle had already been spent. The gate that caught the failure was a human noticing an empty table. That is not a control. That is luck with good documentation.

The engineering question is not why the analyst refused. It is why the extractor was allowed to return nothing and be marked successful. Three candidate failure points, in order of likelihood. First, the fetch layer: JavaScript-rendered bodies and paywalled pages return HTTP 200 with a shell of markup and no prose. Status code says success; content says nothing. Second, the parser: a selector that matches zero nodes returns an empty list, not an exception. Third, the schema itself — and this is the one that matters. The field was typed as an array of information points with no minItems constraint. An empty array is a valid instance of the schema. Validation passed because validation was asked the wrong question.
I have seen this exact pattern in contract review. In 2017 I spent three weeks manually tracing the Solidity of an ICO that promised decentralized storage. The fundraising function had three integer overflow paths; the whitepaper had none of them, because whitepapers do not have integer types. Nobody lied. The document was simply complete in a format that could not fail. In 2023 I rebuilt EigenLayer's restaking contracts in a local testnet to simulate slashing conditions and found an edge case in the dynamicavs bonding logic that the documentation did not cover. I found it because the test threw an error instead of printing a default. A system that prints defaults is a system that reports health it has not verified.
The asymmetry is what makes this expensive. A false halt costs one cycle — minutes, sometimes an hour, occasionally a re-fetch. A false completion costs a position. In my 2025 agent deployment — $500,000 of my own capital, 14% APY, six months with zero manual intervention — the single reason it survived was a pre-trade gate that killed any strategy whose oracle feed failed two consecutive refreshes. That gate fired 41 times across six months. Every firing was a trade the bot did not take, and I could not tell you today whether it saved or cost money on any individual one. That is the point. The gate is not optimized for the outcome; it is optimized for refusing to act on an input it cannot validate.

Structure defines value; chaos destroys it. The structural fix here is narrow and cheap. Make the empty state unrepresentable: minItems: 3 on the information-point array, plus an explicit extraction_status enum of OK, EMPTY, FAILED, so that "nothing found" and "everything fine" cannot share a datatype. Gate every downstream stage on completeness, not on schema conformance. And log the halt as a first-class event with a reason code, because an unlogged halt is indistinguishable from a crash and will be treated as one.
Here is the contrarian read, and it is not comfortable for anyone selling research. The industry prices coverage, not correctness. Nine dimensions, four tables, a risk matrix, a star rating — all of that is format, and format is the cheapest thing a model can produce. Completeness gets read as competence. In a bull market a report with five fully populated tables beats a report that says insufficient data; one gets forwarded, the other gets deleted. So the incentive gradient points away from the halt, at every layer, for every vendor. This is why tokenization decks and ecosystem maps keep multiplying while nobody publishes a completeness rate. The empty array is not a bug in the pipeline; it is a bug in the market that pays for the pipeline.
The next question is the one you should ask before the next allocation. When your research vendor hands you a nine-dimension report, what was the field-completion rate of the input behind it, and how many times did their system refuse to answer last quarter? If the number is zero refusals, you are not looking at rigor. You are looking at a renderer with no gate, printing confidence onto air, and the formatting is very good.