Between January 6 and February 4, 2026, a research aggregation pipeline I audited ingested 4,300 English-language crypto news articles across 61 publishers. It emitted a structured analysis for 2,453 of them. For the remaining 1,847 โ 42.9% of the corpus โ it emitted a report that was structurally complete and analytically empty: nine analytical dimensions, forty-one required fields, every cell populated with the string "N/A โ insufficient information."
The pipeline reported 100% success. Every HTTP request returned 200. Every JSON schema validated. Every downstream consumer received a well-formed object. Zero exceptions were raised across the entire thirty-day window.
That is the finding. Not that an automated analyst produced nothing. That it produced nothing, knew it had produced nothing, and still reported green. Ledger doesn't lie โ but a ledger only records what you instrument.
Context: the two-stage architecture everyone is running
Almost every institutional crypto research stack now runs a two-stage architecture, and the one I audited is representative rather than exotic. Stage one extracts: a crawler retrieves the document, a parser segments it, and a lightweight tagging model maps it against a fixed schema โ title, source, publication timestamp, information-point list, one-line thesis, author stance, protocols referenced, domain label, time sensitivity, source-quality tier. Stage two analyses: a larger model consumes the extracted object and generates the nine-dimension output that institutional clients actually read.
The architecture is sound. The instrumentation is not. Stage one fails loudly in exactly one circumstance โ when the transport layer raises. A 403 from a paywall, a 429 from a rate limiter, a TLS handshake failure, a DNS timeout: these surface as exceptions, they increment error counters, and they page somebody. Stage one fails silently in every other circumstance, and those circumstances are the majority.
In crypto specifically, silent failure is not an edge case. Roughly two-thirds of the publishers in my sample serve body text through client-side JavaScript, which means the crawler receives a 200 response containing a document shell and about 180 bytes of navigation boilerplate. Consent-management overlays, cached AMP variants, and interstitial challenge pages produce the same signature. The fetch succeeds. The parse succeeds. The output is empty.
Bear conditions make this worse rather than better. In a strong bull tape, a fabricated unlock schedule has a reasonable chance of being directionally correct by accident, because everything drifts up. In the current tape, a fabricated number is not neutral noise โ it is a specific, checkable, wrong claim sitting inside a document an allocator may act on. The cost of an error is asymmetric, and it has been since the fourth quarter of 2025.
A taxonomy of the null
I classified the 1,847 null extractions into four categories, because treating them as one category is the mistake most pipelines make.
Class one โ transport failure. Zero cases. These are the errors everybody instruments, and across 4,300 requests against reasonably well-known publishers, they did not occur once. The category consuming roughly 90% of engineering attention produced 0% of the failures.
Class two โ soft failure. 1,204 cases, or 65.2% of all nulls. The request returned 200, the body was non-empty, and the body contained no article. Consent walls, AMP shells, JavaScript-rendered main content, and cached stubs all present identically: a small HTML document with recognisable navigation furniture and zero prose blocks. A parser that only checks for a non-empty body passes every one of these to stage two.
Class three โ semantic null. 512 cases, 27.7%. Real article text, correctly retrieved, with nothing extractable inside it. These were price roundups and market commentary โ 400 to 600 words restating a percentage change, quoting two unnamed traders, and concluding that the market is volatile. There is no protocol, no mechanism, no funding event, no governance action. The information-point list is legitimately empty because the article contains no information points. This is not a pipeline failure. It is a pipeline correctly reporting that the source had nothing to say.
Class four โ schema drift. 131 cases, 7.1%. The parser ran, produced output, and the output was discarded downstream because the field names no longer matched the stage-one contract. A key renamed from information_points to info_points in an upstream release will null 100% of a corpus while every individual component reports healthy.
The total is 1,847, and the distribution matters more than the count. Ninety-three percent of the failures in this pipeline occurred in categories that produce no exception, no log line, and no alert. Class one โ the only instrumented category โ contributed zero.
What the null actually cost
The obvious cost is compute. 1,847 stage-two invocations at roughly 6,200 tokens of input and 2,800 tokens of output each is neither free nor trivial. But compute is the cheap part.
The real question is what stage two does when it is handed an empty object. That question has a measurable answer, because I ran the experiment deliberately, on 200 of the null inputs, with the guardrail removed.
The unconstrained model produced a complete report for 200 out of 200 null inputs. The fabrication rate was 100%. Every one of the 200 reports contained specific, plausible, checkable-looking numbers: TVL figures to two decimal places, an unlock schedule with named cliff dates, a founder identified by a real name, a competitive comparison against two real protocols. None of it traceable to any source document, because there was no source document. The reports were indistinguishable in format from the 2,453 legitimate ones.
I stopped the experiment after four hours. Not because the model failed, but because it succeeded in a way that no reviewer working from the output alone could have detected. Tracing the source is only possible if the source is retained, and in this pipeline it was retained โ stage one stored the raw payload. Most pipelines do not.
That is the structural risk. A null input is safe. A null input rendered as a confident nine-dimension analysis is not. The failure I audited cost money. The failure it narrowly avoided would have cost credibility, and credibility in this industry is not recoverable by republishing a correction.
Why refusal is the correct output
The pipeline did the right thing. It returned "N/A โ insufficient information" across every field, flagged the missing information points explicitly, and refused to populate a technical, tokenomic, market, ecosystem, regulatory, team, risk, narrative, or value-chain dimension on the basis of no evidence whatsoever.
That output is operationally annoying and analytically correct. In my 2025 audit of three MiCA-scope tokenization projects, I traced custodial ownership of $50 million in tokenized real estate and found two projects whose proof-of-reserve disclosures did not reconcile to the on-chain mint events. The finding only held because every claim in it was anchored to a block height. An analysis with no provenance chain is not a weak analysis. It is a liability, and under the reporting expectations that took effect last year, a documented one.
I have kept a personal rule since 2021: nothing leaves my desk without at least three primary sources, and every number is either linked to a query or explicitly labelled an estimate. In 2021 that rule cost me a weekend per article. In 2026, running against pipelines that produce 4,300 extractions a month, it is the only thing separating a research product from a text generator.
Instrumenting the null
Four signals, in order of return on effort, none of them expensive.
First, a payload-length floor. Every soft failure in my sample carried fewer than 400 bytes of extracted text. Every legitimate extraction exceeded 1,400 bytes. There is a full order of magnitude of empty space between the two distributions, and no real article sits in it. A single threshold catches 65% of the nulls in this corpus.
Second, a prose-block count. Count contiguous text nodes longer than 120 characters in the parsed document. A consent wall yields zero or one. A 500-word price roundup yields six. An article carrying a funding announcement, a mechanism description, and a governance vote yields fifteen or more.
Third โ and this is the one pipelines skip โ a null-rate counter published as a first-class metric, broken out by the classes above. A pipeline reporting "extraction success: 100%" is not reporting success. It is reporting that only one failure mode is being measured. A line reading "transport 0, soft 1,204, semantic 512, schema drift 131" tells you more than a month of green dashboards.
Fourth, an extraction-schema version pinned inside the output object itself. Class-four drift is trivially detectable and catastrophically silent. The 131 schema-drift nulls here went undetected for eleven days because the upstream release was tagged as a patch.
The counter-intuitive part: recall is the wrong target
The reflexive response to a 42.9% null rate is to improve extraction recall โ better rendering, better anti-bot handling, more parsers. The data does not support that priority, and the reason sits inside the semantic nulls.
Of the 512 semantic nulls, 364 โ 71.1% โ came from twelve publisher domains out of the sixty-one in the sample. Those twelve domains publish a consistent, recognisable format: a price recap, a chart embed, two trader quotes. They are not failing extraction. They have no extractable content, and will never have any. Improving the parser for those domains improves a metric and produces zero information gain.
The correlation worth avoiding is the assumption that a null rate measures source quality. It measures contract fit. Three of the twelve highest-null domains are among the most-cited publishers in the English crypto press. They are also the three with the lowest ratio of mechanism reporting to price reporting. The null is correct. The corpus selection is what needs auditing.
That reframes the metric that actually matters. Not extraction rate. False-population rate โ the share of published reports containing at least one claim with no traceable source. A pipeline at 57% coverage with a 0% false-population rate is strictly better than a pipeline at 95% coverage with a 12% false-population rate, and it is not close. Coverage failures are visible, recoverable, and priced within a week. Fabrication failures surface six months later, inside a client's position.
Takeaway
The forward-looking signal I am watching in the second quarter of 2026 is not a protocol. It is a disclosure.
Vendors of AI-augmented research are beginning to publish null rates the way fund administrators publish NAV error rates โ as an audited input, not a marketing line. Two of the eleven pipelines I track now ship a stage-one disclosure header with every report: corpus size, null count by class, schema version, and a split between fields populated from a directly linked source and fields inferred. The other nine ship a number.
Follow the outflows was the instruction I gave in 2022, and it still holds for protocol liquidity. The 2026 version is narrower and less comfortable: follow the null rate. If a research provider cannot tell you what percentage of its inputs produced nothing, that percentage is not zero. It is unmeasured, and an unmeasured failure rate is absorbed somewhere downstream โ most often by the reader, who has no way of knowing which sentence was invented.
Audit complete.