Vector Storage Calculator
The storage a set of embedding vectors needs, from how many there are, their dimensions and the number type, plus metadata and index overhead.
Result…
How it's calculated
Bytes per vector = dimensions × bytes per value (binary: dimensions ÷ 8, rounded up) Total = vectors × bytes per vector + vectors × metadata + overhead % × raw vectors GB = bytes ÷ 1000³ · GiB = bytes ÷ 1024³
Each value in an embedding takes 4 bytes as float32, 2 as float16 or bfloat16, 1 as int8 and one bit when quantised to binary, so one 768-dimension float32 vector is 3,072 bytes and a million of them are 3.072 GB. Metadata is added per vector, and the index overhead is a percentage of the raw vectors that you enter, because it varies with the index type and its settings. Sizes are shown both in decimal units (1 GB = 1000³ bytes, as drives are sold) and in binary units (1 GiB = 1024³ bytes, as many operating systems report). Quantising to fewer bytes saves space but can lower search accuracy.
Your numbers, step by step
About the Vector Storage calculator
This vector storage calculator estimates how much space a set of embeddings needs before you load it into a vector database or a search index. Enter the number of vectors, their dimensions and how each value is stored (float32 at 4 bytes, float16 or bfloat16 at 2, int8 at 1, or binary at one bit), then add any metadata per vector and an index overhead percentage you take from your database's documentation or your own measurement. It returns the raw vector size, the metadata, the overhead and the total, in decimal units (GB, as drives are sold) and binary units (GiB, as many systems report). The steps show every multiplication with your numbers. It is a planning estimate: replicas, logs and keeping an index in memory can add more, so leave headroom.
How to use it
- Choose how the values are “Stored as”: float32, float16 or bfloat16, int8 or binary.
- Enter the “Number of vectors” and the “Dimensions” of your embedding model.
- Add the “Metadata per vector” in bytes, or leave it at 0.
- Enter an “Index overhead” percentage if you know one, or 0 for the raw size.
- Read the total in GB and GiB, and the split between vectors, metadata and overhead.
Worked example
Five million 1536-dimension vectors in float32 take 1536 × 4 = 6144 bytes each, 30.72 GB in all. With 200 bytes of metadata each (1 GB) and a 30% index overhead (9.216 GB), the total is 40.936 GB, or about 38.12 GiB. Stored as int8 instead, the vectors shrink to 7.68 GB and the total to 10.984 GB.
Updated
Questions people ask
How do I calculate the size of my embeddings?
Multiply the number of vectors by the dimensions and by the bytes per value. One million 768-dimension float32 vectors are 1,000,000 × 768 × 4 = 3.072 GB.
What is the difference between GB and GiB?
A GB is 1000³ bytes (1,000,000,000) and a GiB is 1024³ bytes (1,073,741,824), so the same data shows a smaller number in GiB. Drives are usually sold in GB, while many operating systems and tools report GiB, so the calculator shows both.
How much index overhead should I enter?
It depends on the database, the index type and its settings, so check the product's documentation or measure a sample. Enter 0 to see the raw size, then try a few percentages to plan headroom.
Does int8 or binary quantisation lose accuracy?
Usually some. Fewer bits per value save space and memory but can lower recall, so many systems keep full vectors for re-ranking. Test with your own data before choosing.
Will my database need exactly this much space?
Treat it as a lower bound. Replicas, write-ahead logs, compaction space and in-memory copies add more, and the download time calculator helps estimate how long moving the data will take.