Skip to content

About this site — and why the numbers on it can be checked

What this site is

AI Behaves explains one thing: why your AI does that — and every explanation comes with a demo you can run yourself. Every page starts from something you actually ran into (the chat dropped what you said, a citation turned out not to exist, the same prompt gave two different answers) and then shows the mechanism behind it running, rather than describing it.

That demonstration is the whole product, and it is also the constraint. A demonstration is only worth looking at if you can trust that it is not theatre, so this page is about how the site is built, what it will and will not claim, and where you can check us.

Where the numbers come from

Every model figure on the site — context window, maximum reply length, knowledge cutoff, which tokenizer applies — lives in one dataset, and each entry carries three things: the value, the vendor page it was read from, and the date somebody last opened that page and confirmed it.

Three rules follow from that, and they are enforced by the build rather than by good intentions:

1

No figure without a source. If a number cannot be traced to a page you can open yourself, it does not go on the site.

2

Every figure is dated. Pages carry a “last checked” date. Vendors change limits, rename models and quietly move cutoffs; a number without a date is a number of unknown age.

3

Derived is never presented as measured. Where a figure is calculated rather than published, it is labelled, and the label says what it was calculated from.

Vendor documentation is not the same as a measurement

Each source carries a kind, and the two important ones are not interchangeable:

  • vendor_doc and vendor_announcement — the company describing its own product: window sizes, output limits, cutoff dates, published system prompts. Authoritative about what the product is, and about nothing else.
  • research_paper and independent_test — somebody measuring behaviour from outside, with a method you can read and results somebody else can reproduce.

The distinction decides which claim is allowed to lean on which source. “Claude Opus 5 accepts up to a million tokens in one request” is a specification, and the vendor is the right authority for it. “Accuracy falls as the input gets longer” is a claim about behaviour, and a vendor page is the wrong authority for that no matter how prominently it says so — that claim needs a measurement, and on this site it has one. So when a page tells you a limit, it cites the vendor; when a page tells you how well something works, it cites a study.

What “estimate” means next to a token count

Counting tokens exactly requires the vocabulary the model actually uses. OpenAI publishes theirs — o200k_base and cl100k_base — and for those models the token counter shows the real split, piece by piece, computed with the published dictionary.

Anthropic and Google do not publish theirs, and neither does OpenAI for its newest models. For those we do not guess and we do not quietly substitute a different tokenizer. We divide the character count by a characters-per-token figure — and where that figure came from is part of the label, because the two cases are not the same.

Usually the vendor published it. Anthropic’s model comparison table annotates a one-million-token window as roughly 2.5 million unicode characters, so that model is counted at 2.5 characters per token — and a different row of the same table gives a different figure for a different model, which is why the number is stored per model rather than per vendor. Google’s own token documentation gives about 4 characters per token. Those numbers are the vendor’s, and the note on the row quotes the statement they come from.

Sometimes there is nothing to take. OpenAI has published neither an encoding nor a characters-per-token equivalence for its newest models, so the two GPT-5.6 entries in the dataset are divided by a constant we chose ourselves: 4 characters per token, against the roughly 5.2 the same English prose measures at under o200k_base, OpenAI’s last published encoding. Choosing the lower figure makes the estimate over-count rather than under-count. That is a derived number, not a published one, and the note on the row says so rather than borrowing the vendor’s authority for it.

So an estimate here is arithmetic — on a number the vendor published, or on one we picked and showed our working for. It is not a tokenization, and not a measurement of anything. It will drift on text unlike the prose those figures describe: code, non-Latin scripts, long strings of digits. Two consequences follow. Estimated counts are never split into pieces, because the pieces do not exist to be shown — inventing plausible-looking boundaries would be exactly the kind of thing this site exists to argue against. And where a choice had to be made, the estimate is set to over-count rather than under-count, so a document that the tool says fits, fits.

Everything is computed in your browser

Nothing you paste, type or drop onto this site is uploaded. Token counting, context-window arithmetic and PDF text extraction all run in the page, on your device. There is no account, no upload endpoint and in fact no server to upload to: the whole site is static files.

That is also why the context fit tool can afford to be strict about scanned PDFs. A scan without a text layer yields zero characters, and the naive result — “0 tokens, fits everywhere” — would be a silent lie. The tool tells you it found no text instead of giving you a number. Details on what little data the site does process are in the privacy policy.

What a demonstration is allowed to show

We never simulate a model. Every demo on this site shows exactly one of two things:

  • Mechanics computed in front of you. Real tokenization with a published dictionary, the arithmetic of what fits in a context window, the softmax that turns scores into probabilities. Same input, same output, and you can check it by hand.
  • Real recorded data, dated. A probability distribution captured from an actual model, stored with the model name, the prompt and the capture date. Numbers from published research, redrawn from the figures in the paper rather than screenshotted from it. Vendor system prompts exactly as the vendor published them, with the publication date.

What you will not find is an animation of a model thinking, a mock-up of an answer being generated, or a plausible-looking chart with no numbers behind it. A demonstration that shows a fact is evidence; one that shows an impression is decoration, and decoration is indistinguishable from the thing this site is trying to correct.

This rule costs us pages. Several genuinely common complaints — the assistant refusing something harmless, agreeing with whatever you say, following four of your five instructions — are missing here, not because they are unimportant, but because we can explain them and cannot honestly show them. They are out until there is something real to put on the screen.

Found something wrong?

Corrections are the fastest way to keep this accurate: if a vendor changed a limit, a link died, or a figure here does not match the source it cites, tell us.

Last checked: