Where the bytes go
A vector is dimensions times bytes per value. At 1,536 dimensions in float32 that is six kilobytes per chunk before anything else — half a million chunks is three gigabytes of raw vectors.
Then metadata, then the chunk text if you store it alongside, then roughly thirty percent on top for the index structure itself. The last one surprises people most.
Precision is the biggest lever
Moving from float32 to float16 halves storage. Moving to int8 quarters it. Both usually cost a small amount of recall, and how much depends entirely on your data.
The honest advice is to measure rather than assume. Build a small evaluation set, run it at each precision, and decide with numbers — the degradation is often smaller than people fear and occasionally larger.