OpenTrackPlan

Open standard for tracking plans

Define your analytics events in YAML with full schema validation. Keep your tracking plan in version control, validate it in CI/CD, and export it to JSON, YAML, or your own templates.

Think of it as OpenAPI for product analytics — a single source of truth that keeps analysts, developers, and data teams aligned and in sync.

curl -fsSL https://opentp.dev/install | bash
powershell -c "irm opentp.dev/install.ps1 | iex"
opentp.yaml
opentp: 2026-09

info:
  title: Acme Tracking Plan
  version: 1.0.0

spec:
  paths:
    events:
      root: /events
      template: "{area}/{event}.yaml"

  events:
    taxonomy:
      area: { title: Area, type: string }
      event: { title: Event, type: string }
      action: { title: Action, type: string }

    payload:
      targets:
        all: [web, ios, android]
      schema:
        event_name: { type: string }
        auth_method:
          type: string
          enum: [email, google, github]
events/auth/login_click.yaml
opentp: 2026-09

event:
  key: auth::login_click

  lifecycle:
    status: active

  taxonomy:
    action: User clicks the login button

  payload:
    schema:
      event_name:
        value: login_click
      auth_method:
        required: true
        example: email

The Problem

  • Analysts describe events in Google Docs
  • Developers implement what they think was meant
  • QA checks manually, missing edge cases
  • Data in analytics diverges from specs
  • Nobody knows which events are active or broken

The Solution

  • Single source of truth in version control
  • Automatic validation in CI/CD
  • IDE autocompletion with JSON schemas
  • Export to JSON, YAML, or your own templates
  • Full history of every event change

Why OpenTrackPlan?

Validate

Catch errors before they reach production. Validate event schemas, field types, and naming conventions.

Generate

Export to JSON or YAML, render your own templates, or plug in a custom generator.

Extend

Add custom transforms, validation rules, and generators. Integrate with your existing tools.

Automate

Run the CLI in any CI pipeline. Validation errors exit non-zero and fail the build.