·4 min read
Import. Export. Leave.
Bring history in as CSV. Take every aggregate out as JSON. The schema lives in the repository. Lock-in is a product failure we refuse to ship.
PortabilityData

The worst analytics relationship is the one that starts with a CSV you cannot get back. Vector 5 imports historical aggregates and exports the same shape. POST /import, GET /export. Event-level rows are not the product; rollups are. You leave with what the dashboard actually used.
That also keeps us honest about insights. If a model only ever saw counts you can export, the brief is reproducible after you leave. If a vendor’s “AI layer” needs rows that never appear in the export, the intelligence was a hostage.
portability
POST /import ← CSV aggregates
GET /export → JSON aggregates
schema → in the repo, not a sales deckA number you cannot take with you is a screenshot, not a measurement.

