The model that said it was Claude

We added a field to the prompt this week. Two, really: we now ask each model to state which model it is, with its version, and to timestamp its own answer in UTC.

The reason was clerical. A member picks a model from a list on our side and pastes in the answer, and nothing in the record connected those two acts. An answer filed under the wrong model is indistinguishable from a correct one, and it quietly corrupts every per-model comparison this site exists to make. Asking the model to sign its own work seemed like a cheap check.

The first batch of five — one IONQ question, five models, asked within a minute of each other — came back like this:

Filed underThe model called itselfThe forecast
ChatGPT — GPT-5GPT-5.6 Luna$35.50 – $40.25
Gemini — ProGemini 1.5 Pro$36.20 – $39.30
GrokGrok 4.5$35.00 – $40.50
Claude — Opusclaude-opus-5$34.70 – $40.50
DeepSeekClaude Opus 4.6$35.00 – $41.00

One of the five named a different vendor's model.

It was not a paste into the wrong row

That was our first assumption, and it was the reason we built the check in the first place. It is wrong. That answer came out of a DeepSeek chat session, in DeepSeek's own web interface, and the JSON it returned reads "model": "Claude Opus 4.6" in the same object as the forecast we filed. Nobody mis-clicked. The model was asked what it was and it named a competitor.

IONQ 1 day Prediction by DeepSeek

IONQ 1 day Prediction by DeepSeek


This is not a scandal and it is not peculiar to DeepSeek. Models are unreliable narrators of their own identity as a rule. The wrapper serving a model is frequently not told which snapshot it is running; the training data is full of other models' output describing themselves; and "what are you" is a question with no privileged internal answer — there is no register to read. What comes back is a plausible completion, not a lookup.

Look again at the rows that did not disagree, and a milder version of the same problem is visible. Gemini — Pro answered "Gemini 1.5 Pro", naming a generation that is not the one it was asked as. "GPT-5.6 Luna" is a string we cannot verify against anything. Only Grok and Claude returned something that looks like a straightforward version identifier. We are not in a position to say any of these are wrong — which is exactly the point, because we cannot say they are right either.

What we did about it

The obvious thing to do with a mismatch is to trust the model and relabel. We do the opposite, and the reasoning is worth spelling out because it governs how we treat everything a model says here.

The self-report may make a name more specific. It may not change what the name is. "Grok" can become "Grok 4.5" on the page, the chart and the browser title. "DeepSeek" cannot become "Claude", however confidently DeepSeek says so.

We know which model the member selected. That is a recorded human act with a timestamp. The model's contradicting claim is the part with nothing behind it — so the forecast stays filed under DeepSeek, the page shows what it said it was, in red, and the reader decides. Nothing is rejected, rescored, or hidden.

Had we done it the other way, that page would read "IONQ 1 day Prediction by Claude Opus 4.6" — in the heading, in the browser tab, in the title a shared link shows in a search result, and on the TradingView chart somebody screenshots. One hallucinated string would have propagated into four places where it looks like a fact we established.

The part that matters beyond our own bookkeeping

If you are benchmarking models — formally, or just by keeping notes — you cannot use self-reported identity as a control. Not to verify which model answered, not to detect a routing change behind an API, not to confirm you are getting the version you are paying for. The case where you most want an independent check is the case where the field is least trustworthy.

The only reliable record of which model produced an answer is the one you write down yourself, at the moment you ask.

The timestamp field has the same character, and we ask for it for a related reason. Most models have no clock; the prompt tells them to write "unknown" rather than guess. The ones that guess anyway are informative — a model dating its own answer to some point in its training past has told you its data was not live, whatever it declared in the field where we ask that directly.

Which is the same question our first post asked from another angle. On that run, four of five models declared their data "live" and the fifth said "partial" — and three of them forecast a $760 ETF into a range around one dollar, because the prompt had handed them a mistyped baseline and they obeyed it.

A pattern is forming across these posts, and it is not really about finance. Every field where we ask a model to describe itself — its data access, the price it found, now its own name — has turned out to be less reliable than the field where we ask it to do the actual work. The self-assessment is the weak part.

That is why the forecasts here are settled against a price a person reads off a chart, and why the scoring never asks a model how well it thinks it did.

👉 How a forecast is scored, in full

👉 Read the shared forecasts, including this one

One batch of five answers is an observation, not a finding, and we will keep saying so until the sample says otherwise. Content on ForecastNest Insights is for research, educational and informational purposes only. Nothing here is financial, investment, legal or tax advice, and nothing here is a recommendation to buy or sell anything. We publish how models perform on a disclosed task; we do not publish price targets or trading signals.

Previous Post Next Post

نموذج الاتصال