The Lens · Radical Honesty
Corrections & Changed-Our-Mind Log
When we get something wrong, we say so — publicly, time-stamped, and we never
quietly delete it. This is the running record.
Our promise. Most of finance markets only its winners and
buries its misses — which is exactly why nobody fully trusts it. We do the opposite, on purpose.
Every correction below is dated and stays visible forever: here is what we said, here is what
changed, here is what we now think. Being right builds a track record. Being honest about
being wrong builds trust — and trust is the thing worth earning.
A weather forecaster you can trust isn't the one who never misses. It's
the one who tells you afterward, “I got yesterday wrong, and here's why.”
How this works
Two kinds of entries. Data / method — a correction to our data,
numbers, or research process. Changed our mind — a view or call we
have revised as new evidence came in. Newest first. We edit the log only to add entries or fix
typos; we never remove or rewrite what an entry originally said.
The log
2026-10-15 · Changed our mind
We showed the overnight pattern as the example that lasts. Our own later tests say it is mostly exposure.
What we said: in “We Found a Real Edge. It Died in 2017” (11 September), the last row of the table listed “do not hold a position overnight” as the kind of constraint that survives, “still present over 18 years.”
What changed: on 21 September we tested it against the years when the underlying assets fell. In gold’s down years the overnight return was -1.07 basis points a night, against +5.88 in up years. In Russell 2000 futures’ down years it was -0.85, against +5.27. The continuous overnight drift also fell 40 to 66 percent after 2021, while the close-to-open return held because it moved into the gaps between trades.
Where we landed: the rule in that piece is unchanged (can the person on the other side choose when to trade?), but the overnight row is a reward for holding certain exposure, not an edge. We added a dated update to the piece and left its original text in place.
2026-08-13 · Data / method
We started keeping a visible “Updates” log on every article — and tracking how reliable each source proves to be
What we did: added a dated Updates to this piece box to the top of each deep-dive. When a figure changes, we show the old value struck through next to the new one, with the source — so a revision is never silent. First examples: we refreshed the nuclear-for-AI piece's uranium numbers to the latest 2025 data (the old figures were a year stale, not wrong), and updated the Musk piece after SpaceX agreed to remove the Colossus turbines by 2027.
The bigger idea: as we publish more, some sources will prove more reliable than others. We're starting to track that. A live example: we find AI chatbots useful for spotting themes but unreliable on dates and specifics — so we web-verify every hard fact against a primary source before it goes up, and we note when a source lets us down.
Why we're telling you: good research isn't never being wrong — it's having a system that catches and shows the changes, and that gets better at judging its sources over time. That system should be visible to you, not hidden.
2026-08 · Data / method
We found our historical gold price data was corrupted — and rebuilt it clean
What we found: a large share of the historical gold prices in our research
database were at the wrong level (two different price series had been merged during an old import), which
would have made some gold analysis look far better than reality.
What we did: rebuilt the entire gold history cleanly from the original per-contract
source, verified it now matches real gold prices year by year, and added an automated price-plausibility
check so this class of error gets caught the moment it appears, instead of hiding for months.
Why we're telling you: a bad data point is how a research shop fools itself
first. Catching and disclosing it is the job — not something to bury.
2026-08 · Changed our mind
We downgraded a promising research idea after a cleaner re-test
What we said: an "overnight" market pattern looked like a real, repeatable edge in
an early test.
What changed: a stricter, cleaner re-test on better data showed the effect was
weaker and inconsistent in recent years — and part of the original signal was a data artifact.
Where we landed: downgraded it from "promising" to "marginal, not proven," and
said so rather than quietly dropping it. We would rather kill our own idea than let a shaky one survive.
2026-09-21 · Data / method
Our new tracker cited the wrong ASML document for its own validation
What we said: the Chip-Tool Tracker validated itself against
“ASML reported” regional shares — China 41% in 2024, 33% in 2025 — and cited ASML’s
full-year results and 2025 annual report.
What is true: those are ASML’s net system sales by ship-to region, from its
investor presentations (the 2024 figure is on page 11 of the Q4 FY2024 deck; we checked it). The annual report publishes a
different series — total net sales including servicing installed machines — in which China is 36.1% (2024)
and 29.1% (2025). A reader who followed our citation would have found numbers that did not match ours.
What we changed: the page now shows both ASML series side by side with the right source for each,
and adds Korea and Taiwan for 2024 from ASML’s own deck. The result is a stronger validation than before: five of
six comparisons fall within two points of ASML’s system sales, and against total sales China diverges by 5.7 to 9.5
points — which is what a series of new-equipment shipments should do. We also added two misuses the data cannot
support (as a test of export controls, or as an early read on ASML’s earnings), named ASM International as another
exporter under the same customs code, and narrowed our claim that nobody else publishes the series: a paid tracker may.
How we found it: two outside reviews, independently, on the day the page went up.
2026-09-21 · Data / method
Four footnotes printed the wrong number, and six figures had no source at all
What we found: in
the waste-streams piece, the source list ran
1–6, 8, 9, 10, 7, so notes 7 to 10 printed next to the wrong source for anyone reading rather than clicking —
on a page whose selling point is that every figure can be checked. The same page gave six figures about Stockholm’s
heat-recovery scheme with no footnote, and we could not find a source for any of them.
What we changed: the footnotes are in order; the six figures are replaced with the European
Commission’s dated ones (20 suppliers, about 30,000 apartments, 2022). Two readings of German law were tightened
— the later reuse tiers are a planned share, and the agreement route is a ten-year deferral, not an escape
— and we added what we had left out: the same bill delays 100% renewable electricity for data centres from 2027 to
2030, which we confirmed in the bill text. Meta’s figure for its Odense heat plant (165,000 MWh) now sits next to its
designer’s (215,000 MWh), because nobody publishes a metered number.
2026-09-21 · Data / method
We corrected Japan's debt figures twice, and the first correction was also wrong
What we originally published: Japan at 204.4% gross, 134.3% net, attributed to the
IMF.
The first correction, yesterday: a source pass could not locate 134.3 in any IMF
publication, so we replaced the pair with the IMF's own ~207% gross / ~137% net from Finance &
Development, and said 134.3 looked like a stale vintage.
What actually turned out to be true: a second pass downloaded the April 2026 World Economic
Outlook database and read the series directly. JPN.GGXWDN_NGDP gives net 134.306 and gross
204.351 — for 2026, as a projection. Our two original numbers were the same source, the same
vintage and the same year as each other. Nothing was stale. And the pair we replaced them with (206.5 / 136.5) is
the same vintage's 2025 projection — so the correction swapped one unlabelled forecast for another and
called it a fix.
The real error, which neither version addressed: we published a forecast for an
unfinished year as a present-tense fact, with no year attached. That is the same failure as publishing a
cumulative return with no holding period, which is the error this entire log exists because of. The page now leads
with the 2024 actual — 214.5% gross, 141.7% net, which is also the figure Japan's Ministry of Finance
quotes — and shows the projection path beneath it, labelled as projections.
Why we are publishing the failed correction rather than just the fixed number: a corrections
log that only shows successful corrections is a highlight reel. This one took two outside passes and the second
contradicted the first. That is what the process actually looks like, and the reviewer also withdrew two of its own
earlier claims before giving us this — which is the only reason we trusted the third version over the
second.
2026-09-21 · Framing
The rule we published to stop this error contained the error, twice
What happened: on 21 September we published a distinction between binding and
fragile constraints, specifically to stop ourselves moving true numbers into places where they mean something
else. A reviewer re-read the live pages the next morning and found that the rule box itself did it twice.
One: the definition of “binding” read
“transformers on four-year lead
times.” In the same commit, on the same morning, we corrected exactly that figure on
the transformer page — the average is about
128 weeks, roughly 2.5
years, and four years is the tail. So the number we withdrew from one page was pasted into the definition that two
other pages now teach from. Corrected to the average.
Two: the definition listed HBM and advanced substrates as fragile — in the same
commit where we demoted Ibiden, an advanced-substrate maker, to CONCENTRATED precisely because three named peers sit
alongside it. Our own definition contradicted our own reclassification, in the same file. Both moved to
CONCENTRATED, and the rule now carries all three words.
Two more badges we had not corrected enough: rad-hard chips were tagged SPOF with
four suppliers named in the cell (BAE, Honeywell, Microchip, Frontgrade) — now CONCENTRATED, with the
note that the ~3 Trusted Foundry sites are the real constraint, not the vendor. And EUV photoresist was
tagged SPOF with three named firms; it is now split, because the geography is the single point of failure
(Japan ~95%) while the makers are not. The reviewer explicitly said it would rather tell us we under-corrected than
let it stand, and on re-check it confirmed none of the five earlier demotions went too far.
And a stale entry on the nuclear page: the 13 August update box still said the fuel chain is
“the real bottleneck,” directly contradicting the 21 September box above it. That is the same failure
that left a fixed item under “still wrong” last week — an old note left standing. Marked as
superseded rather than deleted.
Why we are publishing this rather than quietly repairing it: a rule that cannot survive its
own author is worth less than one that shows where it failed. The paragraph admitting it now sits inside the rule
box on both pages, permanently.
2026-09-21 · Data / method
Four cells in the IPO tracker were real numbers kept past the date they described
Anthropic. The column was headed “Revenue (2025)” and the cell read
~$45B run-rate. That is a May 2026 figure. Anthropic's 2025 exit run-rate was about $9B, and
Sacra put the run-rate near $65B by July 2026. The ~20× price-to-revenue multiple was computed off the hybrid,
so the multiple was wrong too. The column header now states the basis per row.
SpaceX. Read “Debuts Jun 12 2026” three months after it listed and began
trading. Now “Listed 12 Jun 2026,” with the 21 September close.
OpenAI. Read “Q4 target.” Sam Altman told Fortune on 12 September 2026
that going public in 2026 would be “ill-advised” and said “I would say not 2026”; the
company now targets 2027. Nine days stale on a page people read as a calendar.
Cerebras. Showed a ~$23B valuation, which was the pre-IPO target, not the
outcome. It priced at $185 on 14 May 2026, raised $5.5B, opened at $385 and closed day one at $311 — about
$66B, roughly $44B at the 21 September close of $208.71. We had the target where the result belonged, and the
~45× multiple inherited the error.
The pattern, again: all four are true figures left past the moment they described. A page
stamped “figures as of June 2026” does not excuse a status column that reads as a live calendar. This is
the fourth distinct instance of the same failure mode in today's log.
2026-09-21 · Framing
We called the nuclear fuel chain “the bottleneck” on a page whose own timeline runs without it
What we said: the nuclear piece called HALEU “the
bottleneck nobody names” and the fuel chain “the real scarce layer.”
Why that breaks our own rule: the megawatts arriving in 2026 and 2027 come from
restarts of existing reactors — Crane and Susquehanna — which run on ordinary low-enriched
uranium and do not wait on HALEU at all. HALEU gates small modular reactors, which the same page dates to 2030 and
later. Under the binding-versus-fragile distinction we published the same morning, HALEU is fragile: a
single-source geography risk on a future category, severe if it fails, but not what limits this year's supply. The
page now says so.
And a number that overstated it: we wrote that US commercial HALEU output is
“~zero.” Centrus has produced and delivered over 920 kg to the Department of Energy from
Piketon since 2023, runs at about 900 kg a year, and in January 2026 won a $900 million task order to build
commercial-scale capacity toward a planned 12 t/yr. Against a >50 t/yr requirement that is roughly 2% of
the need — small, and the argument survives it — but “zero” described an empty map where a
demonstration cascade was already delivering.
2026-09-21 · Data / method
Three errors in the correction article itself, including a dead link we shipped this morning
The worked example was wrong. The article taught
readers to divide a return by its time, then said the same 400% over
two years is about 71% a year. 400%
total is 5x; over two years that is +123.6% a year. 71.0% is exactly the
three-year figure. The rate was
right and the period was wrong — an arithmetic error inside the paragraph explaining the arithmetic, on the
page about publishing a number without its time.
The stated cause could not explain both rows. We wrote that the stale figures flattered us
because prices moved down. That works for our own average falling from +380% to +343.5%. It cannot work for
the benchmark: the S&P 500 total-return index rose about 2.3% between end-June and 11 September 2026
(16,774.07 to 17,164.10), so the matched-window S&P figure could not have fallen from +117% to +109.6% through
drift. The two were computed on different bases and we are re-deriving which. We would rather publish that than a
tidy cause the price history contradicts.
And a link we broke this morning. Every correction notice we published earlier today linked
to ../corrections.html, which resolves outside the /learn/ directory and does not exist.
Four articles, four dead links, on notices whose entire purpose is to send you here. Fixed.
How we found it: outside review. The index-direction check took them one lookup and us
nothing at all, because we never did it.
2026-09-21 · Data / method
We said SpaceX and xAI were private. Both had stopped being true months earlier.
What we said: the Musk bottleneck piece said in five
separate places that SpaceX and xAI are private, and built its investing takeaway on it:
you mostly cannot buy
the purest pieces.
What is true: xAI merged into SpaceX in February 2026 in a $1.25 trillion all-stock deal and
ceased to exist as a separate company by May. The combined entity listed on Nasdaq as SPCX on 12 June
2026 at $135 a share, raising about $75 billion at a $1.77 trillion valuation.
Why this is embarrassing rather than merely wrong: the page was updated on 13 August 2026,
two months
after the listing, and we still did not catch it. Our own
AI IPO tracker carried the 12 June debut date the entire time. Two of our pages
disagreed about whether the largest IPO in history had happened.
Does it change the conclusion: yes, and it inverts it. The article argued you could not buy
pure bottleneck exposure. You can, in one ticker, at a price that already reflects everything the article says. That
is a different and harder problem, and the page now says so.
2026-09-21 · Framing
A single-point-of-failure badge sitting next to three named alternatives
What we found: the supply-chain map tagged five things
SPOF that its own text showed were not single. Ibiden, with Shinko, Unimicron and AT&S named alongside.
Dielectric fluids, with four majors in the same sentence. Precision reducers, where the next cell reads two firms
dominate. Roller screws, described as the Swiss duopoly. And Blue Canyon, whose cell says capacity is
expanding
400% — a constraint that is loosening, which is the opposite of fragile.
What we changed: a second badge. SPOF now means one supplier, one process, no
substitute. CONCENTRATED means a tight oligopoly or duopoly: few suppliers, but more than one. Eleven entries
keep SPOF; five were reclassified. The map read as more fragile than its own evidence supported, which is the
direction that sells better and therefore the direction to be suspicious of.
Same pass, same failure class: the transformer piece led
with a 4-year waiting list and repeated it as the general figure, while its own body said standard units average
~128 weeks, about 2.5 years, with four years being the tail for the largest custom units. The headline
contradicted the paragraph beneath it. Now corrected to the average, with the tail named as a tail.
The pattern: every serious error in this log is one error — a true number moved to a
place where it means something else. A drawdown reported as a decade return. Tokens reported as words. A tail
reported as a typical. A publication year reported as a measurement date. We now check the unit, the window, the
vintage and the denominator before the arithmetic, because the arithmetic is almost never what is wrong.
2026-09-21 · Framing
We called four different things “the bottleneck”
What we said: intelligence per watt said the genuine
scarcity is energy and memory, and called compute silicon “plentiful-ish.”
Picks and shovels said power delivery is the binding constraint — and
also that ASML is the only maker of EUV machines on Earth, and also that “the magnet is the bottleneck, not
the AI.”
The greenhouse piece said whoever solves power and cooling
wins. Four different “the” bottlenecks across three pages.
What was wrong with it: not the facts. Every one of those claims is defensible on its own.
The error was using a single word for two different kinds of constraint, so that a reader moving between our pages
found us apparently contradicting ourselves about the most important thing we cover.
What we changed: both words are now defined once and used deliberately on every page.
BINDING is what limits the next megawatt energised this year — power delivery, transformers,
interconnect queues. It is slow rather than rare, and it sets the pace. FRAGILE is a single point of failure
— EUV, photomask inspection, rare-earth separation. It is rare rather than slow, and
it sets the tail risk. You own the binding constraint for the grind; you watch the fragile node for the break.
Does it change the conclusion: no, and it makes the map more useful rather than less.
Nothing is retracted. What changes is that we now say which kind of constraint we mean, every time.
How we found it: an outside review read eight of our pages as a set rather than one at a
time, which is the one thing we cannot do from inside. It was the most valuable thing the review produced, and it
was not a factual error at all.
2026-09-21 · Data / method
We wrote “words” where the source said “tokens” — and let a price curve stand in for a physics curve
What we said: in
intelligence per watt, the cost to match GPT-3’s
level fell from “$60 to $0.06
per million words”, and “the falling price of AI
is the
efficiency curve, made visible.”
What the source says: a16z’s “LLMflation” measures tokens, not words —
“$60 per million tokens” for GPT-3 in November 2021, “$0.06 per million tokens” for Llama 3.2 3B in
November 2024, holding an MMLU score of 42 fixed. A token is roughly three-quarters of a word. The unit was wrong, and the
thing being held constant was missing.
The bigger half of the correction: that thousand-fold is not a thousand-fold improvement in
tokens-per-watt. Most of it came from a far smaller model reaching the same score — Llama 3.2 3B against
GPT-3’s 175 billion parameters — plus margin compression as open-weight models commoditised inference. Real
hardware efficiency is in there, but it is not the whole curve. Calling the price curve the efficiency curve implied you could
read the physics off a price list. You cannot. The page now says so.
Does it change the conclusion: not the direction, but it weakens the evidence. The article’s
thesis is that energy is the binding constraint; a reader is entitled to notice that a capability getting a thousand times
cheaper without a thousand times more power is an argument against that thesis, not for it. We would rather host that
objection than hide the unit that raises it.
How we found it: outside review, same pass as the decade and debt corrections.
2026-09-21 · Data / method
We reported the 1970s stock loss as four times its actual size
What it should have said: about −13%. The arithmetic we printed in our own parenthesis
produces −13%, and the table higher up the same page gives −1.5% a year for the 1970s, which compounds to
−14%. Both of our own numbers contradicted the headline figure sitting between them.
Where the wrong number came from: ~50% is a real and widely quoted figure — it is the
peak-to-trough real drawdown of the 1973–74 bear market, not the decade’s return. We welded a drawdown
onto a decade and presented the result as a decade return. This is the same error class as quoting a cumulative gain with no
holding period: a true number, moved to a place where it means something else.
Does it change the conclusion: no. The section argues the 1970s were a worse decade for stocks than
the 2000s, and that still holds — −13% real is worse than the 2000s’ −7%. The argument survived; the
number that made it feel dramatic did not.
Two smaller fixes on the same page: “the 2010s and 2020s have averaged ~7% real” became
“the 2010s ran ~7.7%, the 2020s nearer ~3%” — averaging them contradicted the page’s own table. And
“only halfway through” the 2020s became “three years still to run”; the decade is in year seven.
How we found it: an outside review of our published pages, again. That is three times now. We have
started a six-month review of every article for exactly this reason, and it is clearly not running often enough.
2026-09-21 · Data / method
Three figures in the debt piece, and two challenges that did not survive checking
What we fixed in the debt machine: Canada’s federal debt was
given as
~42–46% of GDP; Finance Canada’s Spring Economic Update 2026, Table A1.7, runs
40.7% to
41.9% across 2024-25 to 2030-31 and never approaches 46%. Now ~41–42%. Federal debt charges were given as ~10% of
federal revenues; the same table gives $58.7bn against $529.6bn in 2026-27, which is
~11%. And the Bank of England’s
97% broad-money figure was dated 2014 — that is the paper’s publication year, while its own footnote (6) reads
“As of December 2013.”
Why the third one stings: that passage exists to make a point about dating a figure to when it was
measured rather than when it was published. We made the exact error the paragraph warns against, inside the paragraph.
What we checked and did not change: the review also flagged that $58.7bn and 1.7% of GDP were
different fiscal years, and that our $41bn Japanese figure was unsupported. Neither held up. Table A1.7 shows $58.7bn and
1.7% of GDP in the same 2026-27 column, and the $41bn was already carried in the article’s “what we could
not confirm” section with an explicit instruction to treat it as an order of magnitude. We are recording the challenges
we rejected as well as the ones we accepted, because a corrections log that only shows accepted criticism is a different and
more flattering document than an honest one.
2026-09-20 · Data / method
Our track record compared every position to the same benchmark number
What we found: the track-record table showed an S&P 500 comparison beside each position, and
every one of the eleven displayed rows read “+110%”. The footnote under the table said the benchmark was
“matched to identical holding period”. It was not. Those positions were entered between January 2020 and May 2024,
so they cannot share a benchmark figure. +110% was the portfolio-wide comparison, printed once per row as though it had been
computed for each.
What it should have said: computed per position from dividend-adjusted S&P closes over each
position’s own window, the column ranges from +51% (OKLO, entered May 2024) to +158% (WPM, entered January
2020). Two rows really are +110% — VRT and NVDA, both entered 3 January 2023 — which is how a wrong column can look
right if you only check one line.
Does it change the conclusion: no, and we are saying so rather than letting anyone assume it does.
Every position return on that page was already correct; only the comparison column was wrong. It made the weaker positions look
like they had cleared a lower bar than they did, and the strongest ones look less remarkable.
How we found it: not by ourselves, again. An outside review we commissioned read the live page and
noticed that five rows with different entry dates all carried the same benchmark. This is the second time in ten days that an
outside reader has found an arithmetic error in our track record before we did. The first was the
+380% headline we had already corrected elsewhere and left standing on the homepage.
What we did: recomputed all eleven rows from the underlying data, published the per-position figures,
and rewrote the footnote to say plainly what the column is, what it was, and that a reviewer caught it. The working file is
data/track_record_spy_per_position.json.
2026-09-18 · Claims / terms
We advertised a 30-day refund our own Terms of Service denied
What we found: the homepage said “First 30 days, full refund — no questions asked” and our
upgrade emails promised a “30-day money-back guarantee”. Our Terms of Service said cancellation takes effect at the end of
the billing period, “no partial refunds”. The cancel page refunded automatically inside 24 hours and then told anyone
past that point the refund window had closed. Three documents, three different promises, and the two a subscriber would actually be
held to were the narrow ones.
How we found it: ourselves, while acting on an outside review of the rebuilt site. The review did not catch
this one. We were checking every public claim against the code that was supposed to deliver it and this fell out of that sweep.
What we did: resolved it in the subscriber’s favour rather than by quietly shrinking the advertised
promise. The Terms now carry the 30-day guarantee, state that it overrides anything narrower on that page, and explain that inside
24 hours it is automatic and after that we issue it by hand. The cancel page now tells you the guarantee still applies instead of
implying you are too late.
Why we’re telling you: nobody had asked for a refund, so nothing went wrong for anyone. It would have,
and the version a court reads is the one denying it. A promise you make in marketing and take back in the terms is not a promise, and
we would rather find that ourselves in a week with four subscribers than be told about it in a week with four hundred.
2026-09-18 · Data / method
We corrected our track record in September, and left the old numbers on our own homepage
What we found: on 11 September we recomputed the track record and published the
correction — cumulative +380% became +343.5%, and the S&P comparison +117% became
+109.6%. We updated the track-record page and wrote an article about it. The homepage kept the old
pair in seven places, including the headline figure and the text people share, for a week.
How we found it: not by ourselves. An outside review we commissioned read the live
page and flagged the figure we had already corrected elsewhere.
What we did: corrected all seven, and on the same day deleted every advertised
feature our code did not actually deliver (a 60-day Premium trial that was never built, a macro bar, monthly
recaps, a smart-money tracker whose data was never deployed, a pre-market brief that is switched off, a
community and a live Q&A), closed the leaks that served paid data to anyone, and moved the weekly digest
to the Friday we had been advertising.
Why we're telling you: publishing a correction and leaving the stale number on the
front page is worse than not correcting it, because it looks like the honest version was for show. The whole
list is dated in our
changelog.
2026-06 · Data / method
We reconciled inconsistent track-record numbers to one audited source
What we found: our published track-record figures did not perfectly agree across
every page of the site.
What we did: traced every number to a single audited source of truth, corrected the
displays to match, and set a schedule to re-freeze and re-verify them on a regular cadence so they stay
consistent.
Why we're telling you: if we ask you to trust a track record, the least we can do
is make sure it says the same thing everywhere — and admit it when it didn't.
This log grows as we publish —
and, inevitably, sometimes get things wrong. That's the point. See how we test and prove our claims in the
first place:
How we prove our edge →
Educational research, not personalized investment advice. Dragonfly Lens is not a registered
investment advisor. This log records corrections to our own data, methods, and views; it is maintained in
good faith and updated as needed. Entries are added, never removed.