Across 510,372,821 works, the article processing charges actually recorded as paid come to $26.79 billion. The most expensive way to publish openly is not an open journal at all: it is one article opened inside a journal that still sells subscriptions.
Every work in OpenAlex can carry the charge its authors actually paid. Summed across the whole corpus, that comes to $26.79 billion — and almost all of it sits in two of the six open-access states.
19,697,342 works, of which 48.3% record a payment. Median charge $2,000.
8,329,904 works, of which 30.6% record a payment. Median charge $3,250 — the highest of any state.
Closed, green, bronze and diamond together account for less than a thirtieth of a billion. Whatever those articles cost, it was not booked here.
Hybrid is the arrangement a subscription publisher offers when an author wants one paper to be readable without a subscription. The journal keeps its subscription income and adds the author’s fee on top. Its median charge, $3,250, is 1.62 times the median for a fully open journal.
Sorted by what was actually billed rather than by how much gets published, one field is far ahead: 53,189,704 works in Medicine carry $8.04 billion in recorded charges, at a mean of $2,294 each.
The share of work that is open in some way rose from 22.5% in 2005 to 88.3% in 2025. Almost all of that growth is green — a copy in a repository, while the published version may stay behind a paywall — which went from 15.1% to 77.0%. Gold, the state people usually mean by “open access”, peaked and fell back: it was 9.88% of 2020 and 4.14% of 2025.
Read the last two years with care. A work’s open-access state is not fixed at publication: repository copies appear within months, and a publisher’s status can be recorded later still. So the recent green share is real but the recent gold share is probably understated, and the 2025 column will keep moving after this snapshot. The chart starts at 2010 because 2006 carries an obvious discontinuity in the source — green jumps to 41.78% for that one year and returns to 16.27% the next — which is a coverage artefact, not a change in publishing.
Diamond is supposed to mean a fully open journal that charges the author nothing. Among 15,478,469 diamond works, 4,625 carry a recorded payment — a work whose own record disagrees with its own label, with nothing joined to it.
Works labelled diamond that also record an article charge actually paid, median $1,000.
Which is three orders of magnitude below what the DOAJ audit on the sibling page finds. Both cannot be the size of the problem.
Only 12,079,570 works in the whole corpus record a paid charge at all. Absence of a fee here is not evidence of no fee.
So this page does not claim to have measured how often the diamond label is wrong. It shows that the label can be contradicted from inside a single CC0 record, and it shows that the record is too sparse to size the problem. The DOAJ audit asks journals directly and gets a far larger answer; that method has its own sampling limit, stated there.
Four limits, all of them structural rather than incidental.
Only 2.37% of works carry a paid charge at all. The $26.79 billion is what is written down, not what was spent.
The snapshot’s institutions column
is present in the schema and empty in every object tested — 0 of 351,842
rows in one 2026 file. Country data lives in a nested field costing about
twelve times as much to read, which was not scanned. Nothing here is sliced by
country.
A median cannot be merged across 2,446 shards, so charges were kept as a $250 histogram. Every median quoted is the lower edge of the band the median falls in.
These figures describe the 2026-06-26 release. OpenAlex revises works continuously, so a later snapshot will not reproduce them exactly.
The OpenAlex works snapshot is 725.0 GB of Parquet in a public S3 bucket: 2,446 objects across 482 partitions, CC0, reachable with no key and no account.
Parquet stores a footer describing where each column's data physically sits. DuckDB fetches that footer over an HTTP range request, works out which byte ranges hold the columns a query names, and asks for only those. On one 815 MB object the whole exchange was four requests totalling 67,975 bytes, of which 343 bytes were the column being read.
Applied to every object: 510,372,821 works aggregated, 2.13 GB transferred against 725.0 GB of Parquet — 0.2938% of the corpus — in 31 minutes with no errors. Nothing was stored: each object was asked one grouped question and only the answer was kept.
The count is checked rather than trusted. OpenAlex publishes
record_count for the release in its own manifest; the build fails if
the scan's total does not equal it exactly. That is the guard against a partial
pass, which would otherwise leave every figure on this page wrong while every chart
still drew.
Every figure on this page traces to one of these, through a CSV in
data/global-openaccess/. Each is checked against its source query on every
build.
Every indexed scholarly work 2014-2024 grouped by open-access status, by year and by author country; journal records with a converted article processing charge in US dollars — CC0, no key, polite pool with a mailto. The oa_status field is the subject of this page rather than its evidence: a work is labelled diamond when its journal is fully open and no author fee is recorded, and 'no fee recorded' is not the same claim as 'no fee'.
23,402 indexed open-access journals with a direct yes/no answer on whether the journal charges an author fee, plus the amount and the currency — CC BY-SA, no key. DOAJ asks the journal and records what it says, including the currency. It is the closest thing to a direct answer and it is what the audit on this page compares against.
Income group, region and GNI per capita (NY.GNP.PCAP.CD) for each country — No key. Used only to describe the countries, never to compute an open-access figure.
The published definition of the six oa_status values — Cited so the gap between the documented definition and the observed behaviour is checkable rather than asserted.
Every work in the 2026-06-26 release: 510,372,821 records, 725.0 GB across 2,446 objects in 482 updated_date= partitions. Open-access state, field of research, work type, retraction flag, and the article processing charge both listed and actually paid. — CC0 1.0, verified by fetching LICENSE.txt inside the bucket rather than a documentation page that describes it. Anonymous: no key, no account, no signed request. Never downloaded -- DuckDB reads the Parquet footer over an HTTP range request and then fetches only the byte ranges holding the named columns.
record_count and content_length for the release these figures were computed from — The scan's own row count is checked against this manifest and the build fails if the two disagree. That is the guard against a partial scan, which would otherwise produce a page where every number is wrong and every chart still draws.
Nothing on this page any more — Was the source for the first version of this page. During 2026 it became keyed and usage-billed; an unauthenticated request is now capped at a $0.10/day budget, confirmed from the live x-ratelimit-limit-usd response header on 2026-09-22. The bulk snapshot stayed free and CC0, so the analysis moved rather than the licence.
Would have provided the country of each affiliated institution, and with it a Philippine slice — The column exists in the Parquet schema and is empty in every object tested, old and recent alike: 0 of 351,842 rows in a 2026 partition, 0 of 2,439 in a 2016 one. Anyone filtering on institutions[].country_code gets zero works and no error. Country data lives in authorships[].countries, the most expensive column in the file -- measured at 12x the cost of the four columns used here, roughly 152 GB of transfer across the corpus against roughly 13 GB. Not scanned, so nothing on this page claims anything about countries.
I wrote a companion post — “Who Pays To Make Science Free? The Bill Is $26.79 Billion.” — in simple, everyday words.