Methodology
Every number on this site has a source, a time it was last checked, and a rule that stopped it shipping without them.
The stamp
Every fact carries a stamp, and the stamp is part of the data, not part of the page. It holds four things: the canonical vendor page the fact was read from, a short label for that page, the time of the last check in UTC, and whether the check was made by an agent or by a person. A second source is recorded when one exists.
The stamp is printed under the table it belongs to, in the mono face, in this form: Source, then Verified with a date and time, then whether a second source confirmed it, then a link to the history.
Two sources for prices and limits
A price or a limit wants two independent vendor pages: the pricing page itself, and a second page that repeats the figure, usually a help centre article, a documentation page or a release note. When only one source exists, the stamp says "Single source" out loud. That is a marker of confidence, not a footnote, and it is the reader's cue to treat the figure as the vendor's claim.
Limits are quoted, not translated
Vendors publish limits as words more often than as numbers: "5x Pro", "Unlimited*", "higher limits". Those phrases are reproduced exactly. Turning "5x Pro" into a message count would mean inventing the base number, and an invented number that looks precise is worse than a vague quote that is true.
Status
Status is read from a machine readable status feed, where the vendor publishes one for the service itself. 4 of the 6 services have one of their own, in the format Atlassian Statuspage publishes: an overall indicator and the list ofincidents the vendor has open. Those two things are relayed, with the time of the reading, and nothing is added to them.
A feed that reports a different product does not count. 1 of the 6 services has only that kind of feed: another publisher's, for another product. That reading is shown beside the service and attributed to its publisher, but the status word stays unknown, because nothing measures the service itself.
The exact address of the feed is printed next to each service on the status page. It is printed because a feed does not always live on the same domain as the app it reports on, and can belong to a different company altogether. Reading the address tells you what the reading is really about.
The indicator is mapped to five words, and to nothing else:
- Operational
- The vendor reports no active problem.
- Degraded
- The vendor reports a minor problem, usually partial or slow.
- Partial outage
- The vendor reports a major problem affecting some users or some components.
- Major outage
- The vendor reports a critical problem.
- Unknown
- There is no machine readable feed, or the feed did not answer. The service page says which of the two it was.
2 of the 6 services publish nothing a machine can read for their consumer app. Their rows read unknown until that changes or until our own probes are published with their method described here. At the last reading, 2 of 6 rows were unknown for that reason.
What a status feed cannot tell you
A vendor status page is the vendor's view of its own service. It is scoped to the components the vendor lists, it is usually updated after engineers confirm a fault, and it is silent about the things most people mean when they say a service feels broken: slow answers, a model that behaves differently after an update, a limit reached on your own account, or a network fault between you and the vendor.
When a vendor page cannot be read
Several vendors put their pricing pages behind bot protection that refuses an automated fetch. That is their right, and it does not license a guess. The order of fallback is fixed:
- Another official page of the same vendor: help centre, developer documentation, official blog.
- If one is found, it becomes the source, it is labelled plainly, and the row's note records that the canonical pricing page could not be read.
- If none can be read, the value is left empty and the table says "Not published".
- If nothing official can be read for a service, no rows are published for it at all.
Search results, news articles, comparison blogs and cached copies are never used. They are not the vendor, and a price is only a fact when the vendor prints it.
How often figures are checked
- Status
- Each time the status collector runs. A build does not re-read the feeds, so the reading a page shows is the collector's last one, and its date and time are printed in the foot of every page rather than assumed to be today's.
- Plan prices and limits
- Weekly, and within a day of a vendor announcing a change.
- API prices
- Weekly. New models arrive often and promotional rates carry end dates.
- Status feed addresses
- Monthly. Feeds move, and a moved feed reads as unknown until it is followed.
- A person, in a browser
- Monthly, to check the pages an automated fetch cannot open.
- Company positions
- When the company's story changes. A position ages more slowly than a price, so it carries its own written date rather than the page's.
The date in the stamp is the only claim made about freshness. If it is old, it says so, and the age is the reader's to judge.
The stream
The items in what changed in AI are chosen and written by software under rules a build can refuse, and the rules are these. A candidate comes from a vendor's own feed or newsroom, a regulator, a court, a filing or a paper, read from a list of allowed hosts kept per topic. It is eligible only if its page reports a defined event with a date the source itself gives, if the page shows the event is about AI and not merely from an AI company, and if it resolves to a company this site has a page for, is a research paper read from the research topic's own allowed sources, or is an EU legal notice whose own text names AI explicitly rather than just a company that happens to work in it. A roundup of several events is refused, because the stream carries one item per event. Whether the event joins a figure in the ledger raises its rank; it never decides it.
Every item carries the event date and the published date, the primary pages it was written from with the day each was read, a plain statement of what it means for a reader, and one visual drawn from our own ledger or made for the item. Other publications are read too, and their words appear in the item as quotations attributed to the outlet, set beside each other with our own verdict underneath. A quotation is never a source of a fact: the fact stands on the primary page or the item does not exist. An item that fails the schema or an editorial check is corrected once and, if it fails again, rejected rather than published.
A company whose pages refuse an automated reader is recorded as blocked, by name and with the date the block was checked, instead of being read through a disguised client. A quiet day is a result, not a gap to fill.
Corrections
A correction changes the data file, and the data files are versioned, so every figure has a history. Corrections are logged on the corrections page with the date they were made. A figure that turns out to be wrong is not quietly replaced.
What this site does not publish
- Prices in local currency. List prices are in US dollars, before tax.
- Benchmarks or quality comparisons between models.
- Rumours, leaks or anything that is not on a vendor page.
- Estimates dressed as facts.