Tools / Tracking plan
Tracking plan Free
Lints a product analytics event list for naming drift, vague events, UI-element names, personal data in properties and near-duplicates, or drafts a starter plan for a SaaS, shop, marketplace, content or mobile product.
MCP tool name: lint_tracking_plan. REST: POST /api/tracking-plan. Free: 30 runs a day per IP, 20,000 characters each. Pro: no cap.
Ask for it in plain words
Lint a product analytics tracking plan (event names with optional properties, one per line like 'project_created (template, source)') for mixed naming styles, vague events, UI-element names, near-duplicate events, tense and order drift, and personal data in property names. With no events and a productType (saas, ecommerce, marketplace, content, mobile) it drafts a starter plan.
Inputs
| Name | Type | Meaning |
|---|---|---|
text | string | Events, one per line, or a JSON array |
events | array | Or a list of strings or {name, properties} |
productType | string (saas, ecommerce, marketplace, content, mobile) | Draft a starter plan for this kind of product |
* required
Example
curl -X POST https://designers.allthepossibles.com/api/tracking-plan \
-H "content-type: application/json" \
-d '{"text":"SignUp (email, plan)\nuser_signed_up (plan)\nButton Clicked (button_name)\ncheckout_started\npurchase_completed (order_id, phone_number, revenue)\npage"}'
Example output
The report field, for the input above (structured fields come back alongside it):
6 events, 5 high, 2 medium, 3 low. Dominant style: snake_case.
HIGH event names use PascalCase (1), snake_case (3), Title Case (1), single word (1); pick one (snake_case is the most used here)
HIGH SignUp: property "email" looks like personal data; hash it, use an id, or leave it out
HIGH user_signed_up: means the same as SignUp; two names for one event split the data
HIGH purchase_completed: property "phone_number" looks like personal data; hash it, use an id, or leave it out
HIGH page: too vague to answer a question; name the object and what happened to it (checkout_button_clicked is still weak; checkout_started is better)
MEDIUM Button Clicked: names a UI element or embeds a number; track the meaning (what the person did) and put the element in a property
MEDIUM 3 events use a past-tense verb and 2 do not (sign_up against signed_up); events record something that already happened, so use past tense
LOW checkout_started: no properties listed while other events have them
LOW page: no properties listed while other events have them
LOW no event lists user_id, anonymous_id, timestamp, platform; if the tool adds them automatically, note that in the plan
This lints names and shape. It cannot tell whether an event answers a question your team has, which is the real test of a tracking plan: every event should map to a decision.
What it looks like
Limits of this tool
Checks names and shape. It cannot tell whether an event answers a question your team has.