The vector DB cost formula
Vector DB cost has three independent components. On serverless providers all three are billed separately; on cluster-based providers storage and compute are bundled into the cluster rate:
``` monthly_cost = (vectors_stored × bytes_per_vector / 1_000_000_000) × storage_$/GB_month + (monthly_writes / 1_000_000) × write_$/M + (monthly_queries / 1_000_000) × read_$/M ```
Bytes per vector = dimension_count × 4 (float32). A 384-dim vector = 1,536 bytes. A 1,536-dim vector = 6,144 bytes. A 3,072-dim vector = 12,288 bytes. This is the number that surprises teams most — switching from a 384-dim embedding model to a 3,072-dim model increases raw storage bytes by 8x before any pricing difference.
Write operations are typically one-time or infrequent (initial index build, periodic incremental updates). Read/query operations are recurring — every user query is at least one read. In production, reads dominate the bill. On Pinecone Serverless, writes are 25x cheaper per unit than reads ($0.33 vs $8.25 per million). Plan your budget around query volume, not write volume.