From Aryan Vatsa | Product & Market Analysis
Embedding Models Compared: 10,000 Documents Cost $8 or Less to Embed
On this page
Embedding a 10,000-document corpus costs between $0.80 and $8.00 at the published rate cards of OpenAI, Cohere, Voyage AI and Google. That spread is real, and it is also small. An embedding models comparison that starts with price starts in the wrong place, because the model sets a ceiling on what your retrieval can find. Nearly every score that measures that ceiling was published by the vendor selling it.
Key takeaways
- Price is the weakest filter in this decision. At list rates, embedding 40 million tokens, our assumed 10,000-document corpus, costs $0.80 on the cheapest hosted models and $8.00 on gemini-embedding-2, the most expensive.
- Every vendor wins on the benchmark it chose to publish. Google leads its own multilingual MTEB table, Voyage leads its 29-dataset RTEB run, and Cohere leads its ViDoRe V3 document retrieval results.
- The same model scores differently depending on who measures it. OpenAI lists text-embedding-3-large at 64.6 on MTEB, while Google's 2025 paper measured it at 66.43 on MTEB English v2 and 58.92 on multilingual MTEB.
- Dimensions and switching cost more than the embedding bill. A 3,072-dimension default needs 3 times the vector storage of a 1,024-dimension default, and changing models means re-embedding the entire corpus.
What an embedding model decides in a RAG system
An embedding model turns a passage of text into a vector, a fixed-length list of numbers. That lets a database find passages whose meaning sits close to a query. In retrieval-augmented generation, those retrieved passages are everything the language model gets to read before it answers.
That makes the embedding model a ceiling rather than a dial. A reranker can reorder what the first stage found. A better prompt can use the results more carefully. Neither one can recover a passage that the first stage never returned.
Most teams still pick one by default. They use the model from their framework's quickstart, or the one sold by the vendor already on their invoice. I do not think defaulting is the mistake. The mistake is defaulting without writing down what you chose, what it scored on your own data, and what it would cost to change.
The choice fixes more than retrieval quality. It sets the maximum length of each chunk you can embed, the number of dimensions every vector carries, and a vector space that no other model can read. That last property is why the decision is harder to reverse than its small price suggests. The separate argument for pairing vectors with keyword search is laid out in the review of hybrid search and reranker benchmarks, and it applies whichever model you pick here.
Embedding models comparison: the rate card table
The table below lists the hosted text embedding models from the four vendors most RAG buyers shortlist. Every price is the vendor's own published rate per 1 million input tokens, checked against the vendor page on 29 October 2026. Embedding models bill input only, because they produce no generated text.
| Model | List price per 1M tokens | Max input tokens | Default dimensions (options) |
|---|---|---|---|
| OpenAI text-embedding-3-small | $0.02 | 8,192 | 1,536 (shortenable) |
| OpenAI text-embedding-3-large | $0.13 | 8,192 | 3,072 (shortenable) |
| Voyage voyage-4-lite | $0.02 | 32,000 | 1,024 (256, 512, 2,048) |
| Voyage voyage-4 | $0.06 | 32,000 | 1,024 (256, 512, 2,048) |
| Voyage voyage-4-large | $0.12 | 32,000 | 1,024 (256, 512, 2,048) |
| Cohere Embed 5 Fast | $0.08 text, $0.40 image | 128,000 | 2,048 (256 to 1,536) |
| Cohere Embed 5 Pro | $0.12 text, $0.40 image | 128,000 | 2,048 (256 to 1,536) |
| Cohere embed-v4.0 | Not listed on Cohere's pricing page | 128,000 | 1,536 (256, 512, 1,024) |
| Google gemini-embedding-001 | $0.15 ($0.075 batch) | 2,048 | 3,072 (128 to 3,072) |
| Google gemini-embedding-2 | $0.20 ($0.10 batch) | 8,192 | 3,072 (128 to 3,072) |
Sources: OpenAI API pricing, Voyage AI pricing, Cohere's Embed 5 launch post and embed documentation, and Google's Gemini API pricing and embeddings pages. Cohere's public pricing page lists hourly dedicated-hosting rates for Embed 5 but no per-token rate for embed-v4.0, so that cell is left empty rather than filled from a third-party tracker.
Three spreads stand out. Price runs from $0.02 to $0.20, a 10 times gap. Maximum input runs from 2,048 tokens on gemini-embedding-001 to 128,000 on Cohere's models, a 62 times gap. Default dimensions run from 1,024 to 3,072, a 3 times gap that lands directly on your storage bill.
Of the three, price matters least for most corpora, and input length matters most for documents that cannot be split cleanly. A contract, a long support thread or a technical specification often loses meaning when it is cut into 2,048-token pieces. If your documents look like that, context length is a selection criterion before score is.
One honest gap in the table: OpenAI's pricing page does not list a separate batch rate for its embedding models, and its general note says the Batch API is billed at the chosen model's rates. Do not assume a 50% batch discount on OpenAI embeddings unless your own invoice shows one. Voyage states a 33% batch discount and Google lists batch at half the standard rate.
What it costs to embed a 10,000-document corpus
A per-token rate is hard to reason about until it is attached to a corpus. So here is one, priced across every model in the table that has a published rate.
The assumption behind the number
Assume 10,000 documents averaging 4,000 tokens each. That is 5 pages per document at the 800-tokens-per-page convention OpenAI uses in its own embeddings guide. The corpus totals 40 million tokens. A knowledge base of policy documents, product manuals and support articles at a mid-sized company sits comfortably in that range.
Two adjustments apply in practice. Chunk overlap, where each chunk repeats the tail of the previous one, inflates the token count; at 20% overlap, multiply every figure below by 1.2. And each vendor uses its own tokenizer, so the same 10,000 documents will not count as exactly 40 million tokens everywhere.
| Model | Cost at list price | With the cheapest published route |
|---|---|---|
| Google gemini-embedding-2 | $8.00 | $4.00 via batch |
| Google gemini-embedding-001 | $6.00 | $3.00 via batch |
| OpenAI text-embedding-3-large | $5.20 | $5.20 (no embedding batch rate listed) |
| Voyage voyage-4-large | $4.80 | $0 inside the 200M free tokens |
| Cohere Embed 5 Pro | $4.80 | $4.80 |
| Cohere Embed 5 Fast | $3.20 | $3.20 |
| Voyage voyage-4 | $2.40 | $0 inside the 200M free tokens |
| OpenAI text-embedding-3-small | $0.80 | $0.80 |
| Voyage voyage-4-lite | $0.80 | $0 inside the 200M free tokens |
Calculation: 40 million tokens multiplied by each list price per 1 million tokens. Voyage's 200 million free tokens apply per account to each Voyage 4 model at standard rates, not to batch. Cohere image pricing is excluded because the corpus is assumed to be text.
Batch rates and free tokens reshuffle the order
List price is not what a careful buyer pays. Google's batch rate halves both Gemini models. Voyage gives each account 200 million free tokens on each Voyage 4 model, which covers this corpus five times over before the first invoice.
Query embedding barely moves the total. Every search embeds the query too, but queries are short. One million queries at an illustrative 30 tokens each is 30 million tokens, or $3.60 on a $0.12 model. The volume that changes the economics is re-embedding the corpus, which is covered below.
My position is simple. A $5 difference should not choose the model that sets your retrieval ceiling for the next two years. If your corpus is in the tens of millions of tokens, ignore price until the final tie-break.
Why every MTEB leaderboard number here is self-reported
MTEB, the Massive Text Embedding Benchmark, is the standard public yardstick for embedding models. Its community expansion, MMTEB, covers over 500 quality-controlled tasks across 250-plus languages. The live MTEB leaderboard is a web application whose rankings shift as models and task sets are added, and it does not offer a citable dated snapshot. So this section relies on the tables each vendor published, with dates, and says who measured what.
Google's paper: a 9-point multilingual lead
Google's March 2025 technical report on Gemini Embedding, the model released as gemini-embedding-001, reports a mean task score of 68.32 on multilingual MTEB. In the same table, OpenAI's text-embedding-3-large scored 58.92 and Cohere's older multilingual v3 model scored 61.10. On the retrieval subset, the scores were 67.71 for Gemini and 59.27 for OpenAI.
The evaluation covered 164 tasks: 132 multilingual, 41 English and 12 code retrieval. That is a serious piece of work. It is also Google scoring Google, on the task mix Google chose.
OpenAI's guide: 64.6, on an older yardstick
OpenAI's embeddings guide lists text-embedding-3-large at 64.6% on its MTEB evaluation, text-embedding-3-small at 62.3% and the older ada-002 at 61.0%. It compares the three models only with each other. Google's paper measured the same text-embedding-3-large at 66.43 on MTEB English v2.
Neither number is wrong. They come from different versions of the benchmark with different task sets. The lesson is that an MTEB score without a version and a task subset is not a comparable number, and most vendor slides omit both.
Voyage on RTEB: 14.05% over OpenAI
Voyage's January 2026 launch post scores voyage-4-large across all 29 datasets in the Retrieval Embedding Benchmark (RTEB). It reports average margins of 3.87% over Gemini Embedding 001, 8.20% over Cohere Embed v4 and 14.05% over OpenAI v3 Large. The metric is normalised discounted cumulative gain on the top 10 results, which rewards putting the right passage near the top.
The post does not state whether those margins are relative or absolute. Its earlier voyage-3.5 post, from May 2025, claimed an 8.26% edge over OpenAI v3 Large across 100 datasets in 8 domains. Both are Voyage's evaluations on Voyage's selection.
Cohere on ViDoRe V3: 85.8 against 75.5
Cohere launched Embed 5 on 30 September 2026. On the ViDoRe V3 document retrieval benchmark, it reports Embed 5 Pro at 85.8, voyage-4-large at 83.7, Gemini Embedding 2 at 83.2 and OpenAI text-embedding-3-large at 75.5. The scores use Cohere's own metric variant, which it calls RCP-nDCG@10.
ViDoRe tests retrieval over visually rich documents such as reports and slides. That suits a multimodal model priced at $0.40 per million image tokens. It says little about plain-text support tickets.
The pattern is not fraud. It is selection. Each vendor chooses the benchmark where its model was designed to be strongest, and each result can be true at the same time. The broader version of this problem, across language model leaderboards, is examined in the analysis of why LLM leaderboards disagree. For a buyer, the consequence is direct: no published number here predicts how any of these models will rank on your documents.
The costs that outlast the embedding bill
The embedding invoice is a one-off for a static corpus. Two other costs recur, and both are set by the model you pick on day one.
Dimensions set your storage line
Each vector is stored as one number per dimension, usually a 4-byte float. Split the 40 million-token corpus into 512-token chunks and you get 78,125 vectors. At 1,024 dimensions they occupy 320 MB. At 3,072 dimensions, the default for both Gemini models and text-embedding-3-large, they occupy 960 MB.
That triples the memory a vector database must hold for fast search, and the multiple carries through to every replica and every index rebuild. What that memory costs on each database is set out in the vector database cost comparison.
Most of these models now let you shorten vectors. Google's own documentation is unusually useful here: it lists gemini-embedding-001 at 68.16 on MTEB at 2,048 dimensions and 67.99 at 768 dimensions. On Google's numbers, cutting to 768 dimensions costs 0.17 points and saves 75% of the storage of the 3,072 default.
Re-embedding is the real lock-in
Vectors from one model are meaningless to another. Switching vendors, or even moving between generations from the same vendor, means re-embedding the full corpus, rebuilding the index and re-running your evaluation. The token bill for that is the small part. The engineering time and the risk of a silent quality drop are the large part.
Voyage is the one vendor in this set addressing this directly. MongoDB's product announcement for the Voyage 4 series says the four models share a compatible embedding space, so you can index with voyage-4-large and query with a cheaper sibling. That compatibility does not extend to voyage-3.5 or earlier models. The general shape of switching costs between model vendors is covered in the breakdown of model switching costs.
Where this comparison is weakest
There is no independent, dated score in this post that covers all four vendors on one task set. The live MTEB leaderboard comes closest, and it could not be captured as a fixed, citable snapshot. Every quality figure above is a vendor publication, and should be read as directional.
The cost model rests on one assumption: 4,000 tokens per document. Your corpus could be ten times larger or smaller. Tokenizers also differ, so 40 million OpenAI tokens is not exactly 40 million Voyage or Gemini tokens. The ranking in the cost table should survive that; the absolute numbers will not.
Open-weight models are excluded. The MMTEB authors found that the best publicly available model on their benchmark was multilingual-e5-large-instruct, at only 560 million parameters, and Voyage now publishes an open-weight voyage-4-nano. If you already run GPU capacity, self-hosting can beat every row in the price table.
Finally, the case for choosing on price is stronger than this post's headline admits, at scale. Embedding 10 billion tokens costs $200 at $0.02 per million and $2,000 at $0.20. A team indexing the open web, or re-embedding nightly, should weigh price far earlier than a team indexing a knowledge base.
Best embedding model for RAG: pick in this order
There is no best embedding model for RAG in general. There is a best one for your documents, languages and queries, and the only way to find it is to test on those. Here is the order I would apply the filters in.
| Step | Question | What it rules out |
|---|---|---|
| 1. Modality and language | Are your documents scanned PDFs, slides, or non-English text? | Text-only models for visual documents; models without published multilingual results |
| 2. Input length | Do your documents lose meaning when split below 8,000 tokens? | gemini-embedding-001 at 2,048 tokens for long contracts and specifications |
| 3. Your own retrieval test | Which model returns the right passage for 50 to 100 real queries? | Whichever loses, regardless of its leaderboard rank |
| 4. Dimensions | Does a shortened vector hold quality on that same test? | Paying for 3,072 dimensions you do not need |
| 5. Price | Among the survivors, which is cheapest at your volume? | Only now, as a tie-break |
Step 3 carries the weight. Fifty real queries, each paired with the passage a human says should come back, is an afternoon's work. Building that set properly is covered in the guide to building an LLM evaluation suite. If your documents are short enough to skip retrieval altogether, check the cost comparison of RAG against long context before you choose any embedding model.
If I were starting an English-language text RAG build this week, I would test voyage-4, text-embedding-3-small and Cohere Embed 5 Fast against each other. That covers three vendors at $0.02 to $0.08 per million tokens. I would only move up to a flagship if it won my own test by a margin I could see in the answers.
Frequently asked questions
What is the best embedding model for RAG?
No single model wins everywhere. Google, Voyage and Cohere each publish benchmarks where their own model ranks first, and OpenAI compares only against its own models. The best embedding model for your RAG system is the one that returns the right passage most often on 50 to 100 of your real queries. Filter first by language, document type and input length, then test, and use price only to break ties.
How much does it cost to embed 10,000 documents?
At 4,000 tokens per document, 10,000 documents is about 40 million tokens. At October 2026 list prices that costs $0.80 on text-embedding-3-small or voyage-4-lite, $4.80 on voyage-4-large or Cohere Embed 5 Pro, $5.20 on text-embedding-3-large and $8.00 on gemini-embedding-2. Batch rates and Voyage's 200 million free tokens can cut that further, to zero on Voyage.
Is Voyage better than OpenAI embeddings?
On Voyage's own January 2026 evaluation across 29 RTEB datasets, voyage-4-large scored 14.05% higher on average than OpenAI's text-embedding-3-large. That is a vendor-run comparison on a benchmark the vendor selected. Voyage models also accept 32,000 input tokens against OpenAI's 8,192 and default to 1,024 dimensions against 3,072. Test both on your own queries before treating the margin as yours.
How much does Cohere Embed cost?
Cohere's Embed 5 launch post, dated 30 September 2026, prices Embed 5 Pro at $0.12 per million text tokens and Embed 5 Fast at $0.08, with images at $0.40 per million tokens for both. Cohere's public pricing page does not list a per-token rate for the older embed-v4.0, so confirm that price in your Cohere dashboard or contract before budgeting on it.
Can I trust the MTEB leaderboard?
Trust it as a shortlist, not a verdict. MTEB scores depend on the benchmark version and task subset, so the same model can score 64.6 in one table and 66.43 in another. Many published results are run by the vendor that built the model. Use the leaderboard to pick three candidates, then run them against your own documents and queries before deciding.
Do I need to re-embed my documents if I switch embedding models?
Yes. Vectors from one embedding model cannot be compared with vectors from another, so switching means re-embedding the full corpus and rebuilding the index. The token cost is usually small. The engineering time and the retesting are the real cost. Voyage says its four Voyage 4 models share one embedding space, which allows swapping within that family but not from older versions.
Where to start this week
Pull 50 real questions from your support inbox, search logs or internal chat, and next to each one write the document that should answer it. That list is the only benchmark in this post that was written about your data, and it will outlive whichever model you pick.
Then open your vector store and write down the model name and dimension count behind your current index. If the answer is a 3,072-dimension default that nobody chose, test a 768 or 1,024-dimension setting against your 50 questions before your next re-index.
Build the test before you buy
The fifty-question set above is the start of an evaluation suite. The full method, including how to score retrieval separately from generation, is in how to build an LLM eval suite.
References
- OpenAI, API pricing and embeddings guide, retrieved 29 October 2026. Used for prices, input limits, default dimensions and MTEB figures for text-embedding-3 models.
- Voyage AI, pricing (updated 29 September 2026) and embeddings documentation. Used for prices, free tokens, batch discount, context length and dimensions.
- Voyage AI, The Voyage 4 series, 15 January 2026. Used for RTEB margins over Gemini, Cohere and OpenAI.
- Cohere, Introducing Embed 5, 30 September 2026, and Embed documentation. Used for Embed 5 prices, ViDoRe V3 scores and embed-v4.0 specifications.
- Google, Gemini API pricing and embeddings documentation, retrieved 29 October 2026. Used for prices, batch rates, dimensions and MTEB scores by dimension.
- Google, Gemini Embedding now generally available in the Gemini API, 14 July 2025. Used for the 2,048-token input limit of gemini-embedding-001.
- Lee et al., Gemini Embedding: Generalizable Embeddings from Gemini, arXiv, March 2025. Used for MTEB multilingual and English v2 scores, including competitor rows.
- Enevoldsen et al., MMTEB: Massive Multilingual Text Embedding Benchmark, arXiv, revised November 2025. Used for benchmark scope and the best open model finding.
The weakest thing about this source base: every quality score is published by a model vendor, and no independent table covers all four on one task set. Prices last verified 29 October 2026; re-check by the end of January 2027.
Related reading