# Vector-store comparison worksheet

Proposed comparison, not benchmark results. Choose one approved pair: pgvector versus managed Pinecone, or pgvector versus self-hosted Qdrant. Record cloud acceptance before uploading anything; use synthetic fixtures first.

Business requirement/owner: [value]. Must retrieval remain on-site? [decision]. Approved destinations/data classes: [values]. Candidates and exact versions/service configuration: [values]. Common corpus/passage/embedding snapshot: [IDs]. Common identity/access fixtures: [IDs]. Distance metric/result count/filter semantics: [values].

## Fix the baseline

Use identical passages, vectors, authorised eligibility sets and relevance judgements. Disable extra reranking/embedding stages for the matched baseline. Assess feature-enabled variants separately and attribute their added cost and processing destinations.

| Measure and pre-agreed acceptance | Candidate A actual/evidence | Candidate B actual/evidence |
| --- | --- | --- |
| Human relevance and approximate recall against an exact reference | Not measured | Not measured |
| Restrictive/empty eligibility filters and denied-user cases | Not run | Not run |
| Warm/cold/tail response time with network included | Not measured | Not measured |
| Concurrent ingestion and existing application impact | Not measured | Not measured |
| Update/deletion/revocation delay | Not measured | Not measured |
| Restore/reconciliation and application recovery | Not run | Not run |
| Integration, tuning, maintenance and incident effort | Unknown | Unknown |

## Access and lifecycle

Trusted caller-to-role/namespace/filter mapping: [reference]. Direct-store access controls: [reference]. Source IDs/versions and deletion propagation: [reference]. Derived text/metadata/embeddings/logs/backups destinations: [inventory]. Current access/deletions reconciled after recovery: [test evidence]. Namespaces and collection keys do not automatically reproduce source-file ACLs.

## Cost over the same period

Record dated currency/tax assumptions for capacity, provider charges, network/transfer where applicable, power, storage, backups, integration, security, maintenance, evaluation and recovery. Actual prices and usage remain unknown until obtained. Compare total work; an existing PostgreSQL operator and a cloud service have different responsibilities.

Decision: [keep/change/inconclusive]. Useful improvement required: [threshold]. Blocking access/data-boundary failures: [list]. Rollback: disable prototype and use existing search/source system. No category-level winner or universal vector-count threshold is assumed.
