Free tool

Event Tracking Plan Generator

Pick your product type and get a ready-to-use analytics tracking plan — 127 well-known events with typed properties and PII flags. Runs in your browser; nothing is uploaded.

Product type
Naming convention

Web product with accounts, teams, and subscription billing.

Flows to include

Navigation

  • page_view web

    Page View (Navigation).

  • click web

    Click (Navigation).

    • classstring
    • idstring
    • tagstring
    • textstring
    • xnumber
    • ynumber
  • rage_click web

    Rage Click (Navigation).

    • click_countnumber
    • elementstring
    • xnumber
    • ynumber
  • dead_click web

    Dead Click (Navigation).

    • elementstring
    • textstring
    • xnumber
    • ynumber
  • scroll webiosandroid

    Scroll (Navigation).

    • percentnumber
    • scroll_ynumber

Authentication

  • signup

    Signup (Authentication).

  • signin

    Signin (Authentication).

  • signout

    Signout (Authentication).

  • email_verified

    Email verified.

  • password_reset_requested

    Password Reset Requested (Authentication).

  • password_reset_completed

    Password reset completed.

  • mfa_enabled

    Mfa enabled.

    • methodstring
  • mfa_disabled

    Mfa disabled.

    • methodstring

Workspace & teams

  • workspace_created

    Workspace created.

    • workspace_idstring required
    • workspace_namestring
  • workspace_joined

    Workspace joined.

    • workspace_idstring required
    • rolestring
  • workspace_deleted

    Workspace deleted.

    • workspace_idstring required
    • reasonstring
  • workspace_role_changed

    Workspace role changed.

    • workspace_idstring required
    • member_idstring required
    • previous_rolestring
    • new_rolestring required
  • workspace_settings_updated

    Workspace settings updated.

    • workspace_idstring required
    • settingstring required

Subscription & billing

  • subscription_started

    Subscription started.

    • subscription_idstring required
    • plan_idstring
    • amountnumber
    • currencystring
  • subscription_changed

    Subscription changed.

    • subscription_idstring required
    • previous_plan_idstring
    • new_plan_idstring
  • subscription_canceled

    Subscription cancelled.

    • subscription_idstring required
    • plan_idstring
    • reasonstring
  • subscription_renewed

    Subscription renewed.

    • subscription_idstring required
    • plan_idstring
    • amountnumber
    • currencystring
  • subscription_paused

    Subscription paused.

    • subscription_idstring required
    • plan_idstring
    • reasonstring
  • subscription_resumed

    Subscription resumed.

    • subscription_idstring required
    • plan_idstring
    • reasonstring
  • subscription_trial_will_end

    Subscription Trial Will End (Subscription & billing).

    • subscription_idstring required
    • plan_idstring
    • trial_idstring
  • invoice_paid

    Invoice paid.

    • invoice_idstring required
    • subscription_idstring
    • amountnumber
    • currencystring
  • invoice_failed

    Invoice failed.

    • invoice_idstring required
    • subscription_idstring
    • amountnumber
    • currencystring
    • reasonstring
  • payment_succeeded

    Payment succeeded.

    • payment_idstring
    • invoice_idstring
    • subscription_idstring
    • amountnumber
    • currencystring
  • payment_failed

    Payment failed.

    • payment_idstring
    • invoice_idstring
    • subscription_idstring
    • amountnumber
    • currencystring
    • reasonstring
  • payment_method_added

    Payment method added.

    • payment_method_idstring
    • payment_method_typestring
  • payment_method_removed

    Payment method removed.

    • payment_method_idstring
    • payment_method_typestring
  • trial_started

    Trial started.

    • trial_idstring
    • plan_idstring
  • trial_converted

    Trial converted.

    • trial_idstring
    • subscription_idstring
    • plan_idstring
  • refund_failed

    Refund failed.

    • order_idstring required
    • refund_idstring
    • amountnumber
    • currencystring
    • reasonstring

How to use this tracking plan

A tracking plan is the contract between the people who ask questions of your data and the people who instrument the product. Decide your events and properties once, write them down, and every chart, funnel, and cohort downstream stays consistent. The alternative — naming events ad hoc in code — produces duplicates like signup, sign_up, and Signed Up that never roll up cleanly.

Naming conventions that scale

The rule that matters most is pick one convention and never deviate. Pug's well-known events use snake_case with an object_action pattern — past-tense for instantaneous actions (email_verified, purchase), _started/_completed for processes with a duration (checkout_started, export_completed), and _added/_removed for collection changes. Switch the convention above to re-case every event to match your existing data.

PII flags

Properties marked PII carry personally identifiable information — emails, free-text comments, error messages. Flagging them in the plan tells your warehouse, access controls, and GDPR tooling which fields need redaction or restricted access from day one.

From plan to instrumentation

Export the plan as JSON and it maps directly onto Pug's typed event SDKs, or as CSV to drop into a spreadsheet your team already uses. Pug is open-source product analytics with unified profiles — these same events flow into trends, funnels, retention, and per-user timelines.

Frequently asked questions

What is an event tracking plan?
A tracking plan is the single source of truth for the analytics events your product sends — every event name, the properties attached to it, and their types. Agreeing it up front prevents inconsistent, unqueryable data later.
Where do these events come from?
Every event in this generator is a well-known event from Pug's open event registry — 127 typed events across 18 domains (auth, commerce, media, navigation, and more). Names, property types, and PII flags are taken verbatim from the registry, so the plan you export is a real head start whether you use Pug or any other analytics tool.
Which naming convention should I use?
Pick one and apply it everywhere — consistency matters more than the specific style. Pug's native format is snake_case with an object_action pattern (add_to_cart, checkout_started). This tool re-cases every event to snake_case, camelCase, PascalCase, or Title Case so you can match your existing data.
Is my data sent anywhere?
No. The generator runs entirely in your browser — there is no signup and nothing is uploaded. Export to CSV, JSON, or Markdown and the file is built locally.

Put this plan to work.

Pug is open-source product analytics with unified profiles. Self-host under AGPL-3.0, or use the free cloud beta.