Skip to content

GPT-4 Turbo's Knowledge Cutoff Date, and What It Means in Practice

8 min read · updated August 11, 2026

A knowledge cutoff is the newest date represented in the training data. It is not a switch, it is the far end of a slope, and treating it as a clean line is why people are surprised twice: once by what the model does not know from six months before it, and once by what it confidently asserts about after it.

The dates

Cutoffs are a property of the snapshot, not the family, which is one more reason the dated id matters. As documented by OpenAI on its model pages:

  • gpt-4-turbo-2024-04-09 — December 2023.
  • gpt-4-0125-preview — December 2023.
  • gpt-4-1106-preview, the first Turbo preview — April 2023.
  • The GPT-4o family — October 2023, which is earlier than GPT-4 Turbo’s despite GPT-4o being the newer model.

That last line is the one worth pausing on, because it breaks the intuition people run on. A newer model does not imply a newer cutoff. Release date and cutoff are independent: training data is assembled, then training runs, then evaluation and safety work run, and the gap between the newest data and the launch announcement has often been six months or more.

Cutoffs are per-snapshot vendor figures and this page is marked refresh accordingly. Read the value for the exact id you are sending from OpenAI’s model reference. Do not infer a cutoff from a model name, a release date, or another snapshot in the same family. It is also a concrete argument for pinning a dated snapshot: an alias moving can change what the model knows, with nothing changed on your side.

What a cutoff is

It is a statement about the corpus, not about the weights. Documents published after that date were not in the training set, so nothing the model produces about them comes from having read them. What the model produces instead is a plausible continuation — the same mechanism that serves it well on everything else, applied where it has nothing.

This is why post-cutoff questions produce such confident wrong answers. The model is not aware of a boundary it has crossed. There is no internal flag marking “this is after my data ends”; there is only a distribution over next tokens, and a question about a 2025 product release will draw an answer shaped like the 2023 product releases it did see. Fluent, specific, structurally correct, invented.

Why knowledge thins before the date

The more useful correction to the mental model: coverage does not stay flat and then stop. It decays for months before the stated cutoff, for a reason that has nothing to do with the model and everything to do with how text about an event accumulates.

When something happens, the internet produces a first article. Over the following months it produces the follow-ups, the analyses, the forum arguments, the documentation updates, the corrections, the tutorials that assume it as background. An event from three years before the cutoff is represented in the corpus by all of that. An event from three weeks before the cutoff is represented by the first article and almost nothing else. The model has read one thin account of the recent thing and a thousand overlapping accounts of the older thing, and it knows them accordingly.

Practically: for a snapshot with a December 2023 cutoff, treat anything from roughly the last quarter before it as weakly known — the model may have the headline and not the consequences. If you are choosing a model for a domain that moved recently, the cutoff tells you where the data ends and not where the reliable knowledge ends, and the second boundary sits earlier.

The model does not know what day it is

A separate failure that gets blamed on the cutoff. The model has no clock. Ask it the date and it produces something plausible, usually anchored near its training data, because that is the only signal it has. Every date-relative instruction inherits this: “recently”, “last quarter”, “the latest version” and “how old is X” are all computed against a date it guessed.

The fix is one line and it is worth making unconditional in any system prompt that survives more than a day:

{
  "role": "system",
  "content": "Today is 2026-08-11. Your training data ends earlier than this; "
           + "for anything after your training data, say so rather than "
           + "guessing. Interpret all relative dates against today."
}

Note that this line is volatile by construction, so it belongs at the end of the static block rather than the start — putting a date at the top of a system message is the exact pattern that breaks automatic prompt caching.

Asking the model its cutoff does not work

The obvious test is to ask. It is unreliable in both directions and worth understanding why, because the failure is instructive about the whole class of self-report questions.

A model has no introspective access to the composition of its training set. What it can do is repeat a cutoff date that appeared in text it read — including text about earlier models, which is far more plentiful. So a model will often name a date months before its real one, or name the date of a predecessor, or name whatever date the system prompt it was served with mentioned. Answers to “what is your knowledge cutoff?” are generated the same way as any other answer, and this one is a question about the world that the model has no privileged view of.

Empirical probing is a little better and still weak. Asking about a series of events with known dates and finding where the answers stop being correct gives you a boundary, but it is confounded by the gradient described above — thin coverage of a real event looks identical to no coverage — and by how widely reported the events you chose were. If you need this for a decision, use the documented figure for the snapshot id and treat everything after it as absent, which is the assumption that is safe when wrong.

The four failures and which one this is

“The model is out of date” is used for four different problems with four different fixes. Only the first is the cutoff.

  • It does not know about a recent event. This is the cutoff. No prompt fixes it — the information is not in the weights. Retrieval fixes it: put the current facts in the context, and the model reasons over them perfectly well regardless of when they happened. This is the strongest argument for RAG that does not involve private data at all.
  • It invents a plausible post-cutoff fact. Also downstream of the cutoff, but the fix is different: instruct it to decline on post-training-data questions, and give it a retrieval tool so that declining is not its only option. Without a tool, a model told to refuse when uncertain will refuse on things it does know.
  • It miscalculates a relative date. Not the cutoff — the missing clock. Fixed by putting today’s date in the prompt.
  • It uses a stale API in generated code. Usually not the cutoff either, or not only. Library versions in the corpus are weighted by how much was written about them, so a model can prefer a widely-documented older version over a newer one it also saw. Pin the version in the prompt and paste the relevant signature; that beats arguing with it.