Open Experiment Standard
Section 1 · OES Spec

Envelope and standard metadata

Portability and version safety for the document itself.

Every OES document opens with a small envelope of metadata describing the document — not the experiment. These fields let importers reject incompatible versions, route to the right parser, and trace a document back to the system that produced it.

Fields

FieldTypePurpose
schemaVersionrequiredstringVersion of the OES standard the document conforms to.
objectTyperequiredstringUsually 'experiment'. Reserved for future types like 'metric', 'scorecard', or 'experimentCollection'.
exportedAtstring (date-time)Timestamp the document was produced.
sourceSystemstringOriginating system — e.g. GrowthBook, Optimizely, Statsig, internal platform.
sourceSystemVersionstringVersion of the originating system. Useful for debugging import/export differences.
canonicalUrlstring (uri)Link back to the source experiment, if available.
externalIdsobjectStable IDs from external systems — Jira, Linear, GitHub, analytics platforms.
extensionsobjectNamespaced vendor-specific fields, e.g. growthbook:*, optimizely:*. Importers MUST safely ignore unknown extensions.

Notes

  • Importers must accept and round-trip unknown `extensions.*` keys without modification, even when they cannot interpret them.
  • Documents whose `schemaVersion` is unknown to an importer SHOULD be parsed best-effort with prominent warnings, not rejected outright.