thinkhard.SI

Prompt repository Product

Write an analytics tracking plan for a new feature

A feature is about to be built and you need the events and properties defined so you can tell after launch whether it works.

Registry no.
PRD-014
Collection
Product
Laid out for
Any chat model
Score
10 out of 10
Blanks to fill
5
Added

ProductAny chat

The prompt

Score 10 of 10, Excellent

Use it when A feature is about to be built and you need the events and properties defined so you can tell after launch whether it works.

  • {{feature_flow}}
  • {{questions}}
  • {{conventions}}
  • {{tool}}
  • {{privacy_rules}}
Full prompt and why it works
Prompt
Write an analytics tracking plan for the feature below, for the engineers who will add the tracking and the analyst who will build the reports, so that on launch day we can answer the questions listed without another release.

The feature and its user flow:
"""
{{feature_flow}}
"""

Questions we need to answer after launch: {{questions}}

Our event naming convention and existing events, if any:
"""
{{conventions}}
"""

Analytics tool: {{tool}}
Data we must not collect (privacy rules, regulated data): {{privacy_rules}}

Produce:
1. A table of events with the columns Event name, Fires when (the exact user action or system moment), Properties (name, type and example value), Answers question number. Name events as object then past-tense action, for example report_exported, unless our convention says otherwise.
2. For each question, the events and the calculation that answer it, such as "share of accounts that fire report_exported within 7 days of report_created".
3. Success metrics: up to 3, each with its definition.
4. QA checklist: how a tester confirms each event fires once, at the right moment, with the right properties.

Keep to the fewest events that answer the questions, no more than 12, because every extra event costs engineering time and clutters the reports. Reuse existing events where they already capture the moment.

Never include names, email addresses, free text typed by users, or anything our privacy rules list, as a property. Use IDs instead.

If a question cannot be answered from events in this flow, for example because it needs revenue data from another system, say so next to that question instead of inventing an event for it. If the flow leaves a step unclear, list it under "Questions for the team".

Variables

{{feature_flow}}
The feature and its flow, step by step from the user's side, including errors and the success moment.
{{questions}}
What you need to know after launch, numbered, for example "1. How many accounts use it in the first month? 2. Where do people abandon the setup?"
{{conventions}}
Your naming convention and a list of existing events. Write "none" if you have no convention yet.
{{tool}}
The analytics tool, for example Amplitude, Mixpanel, PostHog or Google Analytics.
{{privacy_rules}}
What must never be tracked, for example "no personal data, no health information".

Why it works

  • Length. A cap of 12 events, each tied to a numbered question, keeps the plan to what someone will actually look at.
  • What to avoid. Names, emails and free text are banned as properties, so personal data never ends up in the analytics tool by accident.
  • If unsure. A question the flow cannot answer is flagged rather than met with an invented event, so the gap is visible before launch.

How to use it

  1. Press Fill in variables and type your details into each blank. What you type stays in this browser.
  2. Copy the filled prompt into the AI tool you already use, such as ChatGPT, Claude or Gemini, or open it in the Grader or the Prompt Tester here.
  3. Before you rely on it, try it on three or four real examples. The Prompt Tester runs them all at once and shows which ones go wrong.
Use it from code

Get this prompt as JSON from the free REST API, with your own text in the blanks, or let an AI assistant fetch it through the MCP server. No key.

curl -s https://thinkhard.si/api/v1/prompts/analytics-tracking-plan

With the MCP server added to Claude, ChatGPT, Cursor or VS Code, call get_prompt with {"prompt": "analytics-tracking-plan"}, or just ask for it by name.