Product Analytics logo

Product Analytics

Community
nahid-sparktales
product-analytics

Define a product metric so it means one thing — event, denominator, population, window — and check the instrumentation exists before anyone reports a number. Use when asked "how do we measure this", when a funnel or activation/retention/conversion metric is being defined, when two dashboards disagree, or before adding tracking to a feature. Not for choosing what to build (prioritization), not for designing an A/B test (experimentation), and not for general data analysis of a dataset that is already trusted.

Overview

Publishernahid-sparktales
Repositoryagent-dispatcher
Skill nameproduct-analytics
Stars
58
Forks
5
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by nahid-sparktales on GitHub. Read the source before you install it.

Installation

Install the Product Analytics AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/nahid-sparktales/agent-dispatcher/tree/main/skills/product/product-analytics
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/nahid-sparktales/agent-dispatcher.git /tmp/agent-dispatcher
mkdir -p .claude/skills
cp -r /tmp/agent-dispatcher/skills/product/product-analytics .claude/skills/product-analytics
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Product Analytics in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Product Analytics on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Product Analytics is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Product analytics

A metric is a claim about the world. Most disputed numbers are not wrong arithmetic — they are two people using the same word for two different denominators, or a dashboard built on an event that was never emitted on the path that matters.

When this fires

Someone is about to define, report or argue about a product number: activation, conversion, retention, funnel drop-off, adoption of a feature. It also fires before instrumentation is added, which is the cheapest moment to get it right. It does not fire when the metric definition is already settled and the task is only to compute or chart it.

Four states, not one

Keep these apart in every sentence you write, because conflating them is how a metric that does not exist ends up on a slide:

  • Defined — written down with numerator, denominator, population, window.
  • Instrumented — the emitting code exists on every path that should count.
  • Collecting — events are arriving in the destination, from real traffic, since a known date.
  • Reconciled — the number has been checked against an independent source and agrees.

Only the fourth is a number you may quote without a caveat.

Procedure

  1. Name the decision the metric serves. Who changes what behaviour at which threshold. If no answer, say so — a metric nobody will act on is not worth the instrumentation cost, and saying that is a legitimate result of this procedure.
  2. Write it as a rate with both halves visible. Numerator, denominator, the population each is drawn from, and the time window. "Activation rate" is not a definition. "Accounts created in week W that reached first successful import within 7 days / accounts created in week W" is.
  3. Fix the unit of aggregation — user, account, session, device, request — and use the same unit on both halves. A per-session numerator over a per-user denominator is the most common silent error in this whole area, and it never announces itself.
  4. Specify each event precisely: the name, the exact moment it fires, the properties carried, and the near-miss cases it deliberately excludes (retries, server-side replays, internal or test accounts, bot traffic). Write the exclusions down; they are the part that gets lost.
  5. Find the emitting code before believing the event exists. Search the repository for the event name and read every call site. Check the paths nobody remembers: the mobile client, the API-only path, the error branch, the redirect that returns early. Absent call site means the metric is defined, not instrumented — report that, do not estimate around it.
  6. For a funnel, pin the entry cohort once and carry it through. Decide and record: must the steps occur in order; what attribution window each step has; are users who enter twice counted twice. A funnel whose steps each have their own population is four unrelated numbers in a row.
  7. Add a guardrail or counter-metric. Any metric that can be moved by degrading something else — speed at the cost of errors, signups at the cost of retention — gets the opposing metric defined alongside it, or it will be gamed by accident.
  8. State the trustworthy-from date. The first date the current definition and the current instrumentation both held. Before that date the series is a different metric wearing the same name; do not chart across the boundary without marking it.
  9. Reconcile against something independent before publishing: a database count, billing records, a manual count for one day, the previous system. Report the gap as a number and its likely cause. Agreement within a stated tolerance is the evidence; "looks about right" is not.
  10. Stop and ask before anything outward-facing. Adding tracking to production, changing the semantics of an event other dashboards already use, publishing a dashboard others will act on, or collecting a new property about people. Especially: never add personal data — email, name, free-text input, precise location, anything identifying — to event properties on your own judgement. Propose it, name the field, and wait.

Checklist

  • The decision this metric informs is written down, or its absence is flagged
  • Numerator, denominator, population and window are all stated
  • Both halves use the same unit of aggregation
  • Every event's firing moment, properties and exclusions are specified
  • Each event was located in the emitting code, on every path that should count
  • Funnel entry cohort, step ordering and attribution windows are fixed
  • A guardrail metric exists for anything that can be gamed
  • The trustworthy-from date is stated
  • The number was reconciled against an independent source, with the gap quoted
  • Any new tracking or new property was proposed, not added

Failure handling

  • Two sources disagree — do not average them and do not pick the friendlier one. Take one narrow slice (one day, one account) and trace it through both until the divergence is a named cause: a missing call site, a timezone, a deduplication rule, a filter on one dashboard.
  • The event is not instrumented — the finding is "not measurable today", with the list of paths that would need to emit. An estimate derived from a proxy is a proxy: label it as one, every time it is quoted.
  • The event fires more than once per real occurrence — say whether the metric counts events or distinct units, and fix the definition rather than the data.
  • Historical data does not go back far enough — report the window you actually have. Never backfill by assumption and present the result as history.
  • The definition already exists somewhere — use it, or change it deliberately and say so. A second definition of an existing name is worse than a bad definition of a new one.
  • Personal or sensitive data appears in event properties — stop, name the field and where it is emitted, and raise it. Do not quietly keep querying it.

Evidence to report

The metric written out in full — numerator, denominator, population, window, unit. The file paths and call sites where each event is emitted, and the paths found to be missing it. The exclusion list. The trustworthy-from date. The reconciliation: both numbers, the gap, the explanation. And the parts still unmeasurable, named as such rather than approximated into the table.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Product Analytics AI skill do?

Define a product metric so it means one thing — event, denominator, population, window — and check the instrumentation exists before anyone reports a number. Use when asked "how do we measure this", when a funnel or activation/retention/conversion metric is being defined, when two dashboards disagree, or before adding tracking to a feature. Not for choosing what to build (prioritization), not for designing an A/B test (experimentation), and not for general data analysis of a dataset that is already trusted.

Why use Product Analytics on TypingMind?

Because you install it once and use it with any model. Product Analytics is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Product Analytics in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/nahid-sparktales/agent-dispatcher/tree/main/skills/product/product-analytics. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Product Analytics?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Product Analytics?

As many as you like. As long as a model supports skills, you can use Product Analytics with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Product Analytics AI skill free?

Yes. It is published on GitHub by nahid-sparktales under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇