Embedding storage and vector database cost
Embedding storage is more than dimensions multiplied by bytes. Your footprint includes every chunk vector, metadata, replica, index structure, and operational reserve. This guide gives you a transparent lower-bound estimate, a worked example, and a safe way to apply the provider’s current rate without inventing prices.
How much storage do embeddings need?
Start with the number of stored vectors, dimensions, and bytes per dimension. Then add metadata and multiply by the number of replicas. The base vector calculation is:
For a more realistic planning number, add metadata bytes and a database/index overhead allowance. A float32 vector uses 4 bytes per dimension; float16 uses 2. Quantization can reduce vector storage, but verify whether the index and search engine support the chosen representation without changing retrieval quality.
What is the embedding-storage formula?
Documents are source records. Chunks per document is the average number of embeddings created from each record. Dimensions is the length of one embedding. Bytes per dimension is normally 4 for FP32 or 2 for FP16. Metadata includes fields such as document ID, chunk text, timestamps, filters, and access-control attributes.
Convert bytes to decimal GB by dividing by 1,000,000,000. If your provider or monitoring system uses GiB, divide by 1,073,741,824 instead. Label the unit in spreadsheets and dashboards; a 7% unit mismatch becomes material at large scale.
Worked example: one million documents
Assume 1,000,000 documents, 8 chunks per document, 1,536 dimensions, FP32 embeddings at 4 bytes per dimension, 2 KB of metadata per vector, and one replica.
| Component | Arithmetic | Result |
|---|---|---|
| Stored vectors | 1,000,000 × 8 | 8,000,000 vectors |
| Vector bytes | 8,000,000 × 1,536 × 4 | 49,152,000,000 bytes |
| Vector storage | 49,152,000,000 ÷ 1,000,000,000 | 49.152 GB |
| Metadata bytes | 8,000,000 × 2 × 1,024 | 16,384,000,000 bytes |
| Metadata storage | 16,384,000,000 ÷ 1,000,000,000 | 16.384 GB |
| Simple total | 49.152 + 16.384 | 65.536 GB |
The embedding storage calculator reproduces this estimate. It is a baseline, not a claim that a particular database will use exactly 65.536 GB. Indexes, replicas, WAL or snapshots, backups, and provider minimums can all increase the billable footprint.
If the same collection uses two replicas, both vector and metadata storage double: 65.536 × 2 = 131.072 GB before index overhead. If you change from FP32 to FP16, the vector component halves to 24.576 GB, but metadata does not automatically halve. This is why metadata becomes a large share of the footprint when vectors are compressed.
How do you turn storage into monthly cost?
Use the provider’s current billable storage unit and rate:
For illustration only, if a provider’s official page lists an applicable rate of $0.25 per GB-month, the simple 65.536 GB example would be 65.536 × $0.25 = $16.384 per month before indexes, replicas, backups, traffic, and minimums. The rate is illustrative; check the provider’s official pricing page and confirm whether it bills decimal GB, GiB, provisioned capacity, or a different unit.
Storage is only one part of vector-database cost. Embedding generation, ingestion, query compute, replicas, backups, network transfer, filtering indexes, and high-availability tiers may be billed separately. Put each line item in the same monthly worksheet instead of multiplying a storage rate by a raw vector count and calling it the total.
What should the storage worksheet include?
Keep logical data size separate from billable infrastructure. A useful worksheet has one row for vectors, one for payloads, one for index overhead, one for replicas, and one for backups or snapshots. Add ingestion and query compute as separate rows because they depend on activity, not only collection size.
| Line item | Driver | Planning question |
|---|---|---|
| Vectors | Count × dimensions × bytes | How many chunks will exist after re-embedding? |
| Metadata | Serialized payload bytes | Which fields are required for filters and authorization? |
| Indexes | Index type and parameters | What overhead does the selected engine report? |
| Replicas | Availability and read load | How many copies are required at peak? |
| Migration reserve | Old + new collections | Can both embedding versions coexist temporarily? |
Use a low, expected, and high scenario instead of one precise number. The high case should include growth, the largest realistic chunk count, re-embedding overlap, and the replica policy you would actually operate. This makes the estimate useful for capacity planning even when the provider’s billing details change. Recalculate after chunking, embedding, or retention policies change, and keep the assumptions dated for future audits.
What does the simple estimate miss?
Index structures. Approximate-nearest-neighbor indexes need additional memory or disk. The overhead varies with index type, dimensions, graph parameters, clustering, and whether the system stores multiple index copies.
Metadata shape. A 2 KB average is not universal. JSON text, long chunk bodies, ACL lists, sparse tags, and duplicated fields can make metadata much larger. Measure serialized records, not just the number of metadata columns.
Growth and churn. Plan for new documents, re-embedding during model migrations, temporary duplicate versions, tombstones, and compaction. A collection can need space for old and new embeddings during a rolling migration.
Operational copies. Replication improves availability but multiplies storage. Backups and snapshots can use a separate retention policy. Provider dashboards may charge for provisioned or reserved capacity even when the logical collection is smaller.
How does embedding-cost planning go wrong?
The first mistake is using document count instead of vector count. Eight chunks per document means eight times as many vectors, and a re-chunking change can multiply storage without changing the source corpus.
The second is ignoring metadata because the vector math looks clean. In the worked example, metadata is 16.384 GB—one quarter of the simple total. With lower-precision vectors or verbose payloads, metadata can dominate. Store only fields needed for retrieval and authorization, and keep large source documents in object storage when that architecture fits.
The third is applying a price from a search result or an old spreadsheet. Rates, tiers, minimums, and billing units change. Treat every price as dated input, label it illustrative until verified, and link your calculation to the provider’s official page in your internal cost record.
Finally, do not optimize storage while ignoring retrieval quality. Smaller chunks create more vectors and may improve recall, but they increase index and query work. Measure recall, latency, and answer quality at several chunk sizes before choosing the cheapest footprint.
Next steps: price your actual collection
Use the embedding storage estimator with measured chunk counts and metadata size. Then compare vector precision with the quantization guide, and connect retrieval volume to LLM API cost if every retrieved chunk is sent to a generation model.
FAQ
How do I calculate embedding storage?
Multiply document count by chunks per document, dimensions, bytes per dimension, and replicas. Add metadata, index overhead, backups, and operational reserve for a realistic estimate.
How much storage does one million 1,536-dimensional embeddings need?
At FP32, one million vectors use 1,000,000 × 1,536 × 4 = 6.144 GB before metadata and indexes. Chunking, replicas, and payload fields determine the actual collection size.
Does FP16 halve vector-database cost?
It can halve the raw vector component, but metadata, indexes, replicas, and provider minimums may not shrink. Verify the database’s supported storage format and billing unit.
What rate should I use for monthly cost?
Use the current rate and billing unit from the provider’s official pricing page. Record whether it applies to logical storage, provisioned capacity, replicas, or another billable measure.
Should I store the full document with every vector?
Not always. Storing only retrieval metadata in the vector system and keeping full documents in object storage can reduce duplication, but preserve the fields required for access control and answer citations.