Standalone

metrics-tagging

Turns a UI mockup into a complete analytics event taxonomy ready for handoff.

Analyze UI mockups, screenshots, or prototype frames to identify all trackable interactions and generate a complete analytics event taxonomy table. Use this skill whenever a designer uploads a screen, mockup, prototype screenshot, or UI frame and wants to know what should be tagged, what events to fire, or how to document analytics for handoff. Also trigger when someone asks to "tag this screen," "identify events," "create a tagging spec," "what should we track," or "build an event table" for any UI. If a designer shares any visual of a UI and mentions analytics, tracking, tagging, GTM, events, or metrics — use this skill.

  • UI to instrument

    Upload a screen, mockup, prototype frame, or screenshot of the UI you want to tag. Multiple frames of a flow work too.

  • Tracking context

    Optionally note the platform, existing event naming conventions, or which interactions matter most for the metric you care about.

  • Event taxonomy table

    A complete table of trackable interactions with event names, properties, cascading inputs, and high-impact fields surfaced for handoff to engineering.

  • Coverage gaps

    Interactions that are ambiguous or missing context, flagged so nothing important goes untracked.

Load the metrics-tagging skill. Here's the screen I need to tag: [attach mockup or screenshot]. I want to track [describe the metric or behavior].

Get this skill

Download the SKILL.md file and install it in Claude or Cursor.

  1. Download the SKILL.md file using the button above.
  2. Open claude.ai and go to Settings.
  3. Select Skills from the sidebar.
  4. Click Add skill and upload the SKILL.md file.
  5. Give the skill a name and save. Claude loads it automatically when relevant.

Skills installed in Claude persist across conversations. Claude reads the skill when the trigger conditions match your message.

Metrics Tagging Skill

Analyze a UI mockup or screenshot and produce a complete analytics event taxonomy, ready for handoff to a tag implementation team.

Mental Model: Three Levels of Tagging

Before generating the table, always frame the output across three levels. This helps designers understand why each tag matters — not just what it is.

LevelWhat it answersExample
PageWhat happened on screenUser clicked “Save” button
AppWhat workflow is this part ofAccount setup flow completion
BusinessWhich KPI does this feedTask completion rate, time-on-task, abandonment rate

Input

Accept any of:

  • Screenshot or photo of a UI mockup
  • Prototype frame image
  • Annotated design screenshot
  • Description of a screen with listed components

The designer may also provide:

  • The flow name (e.g. “Onboarding”, “Checkout”, “Settings”, “Profile Edit”)
  • The product type (e.g. SaaS, e-commerce, internal tool, consumer app)
  • Existing event naming conventions already in use
  • Business KPIs this flow relates to

If the designer does not provide product or flow context, ask for it before generating the table. The “Purpose” column cannot be filled accurately without knowing what the flow is trying to accomplish.

Naming Convention

Use camelCase. Follow this pattern: noun + Verb

Format: [object/screen][Action]

General examples:

  • checkoutViewed — page load on checkout screen
  • cartItemRemoved — user removes item from cart
  • planSelected — user selects a pricing plan
  • passwordChanged — user updates their password
  • formSubmitted — generic form submit
  • modalDismissed — user closes a modal
  • flowCancelled — user exits a multi-step flow

Rules:

  • No underscores, no hyphens
  • Noun first, verb second
  • Use past tense for completed actions (Saved, Selected, Changed, Entered)
  • Use present tense for initiated states (Start, Viewed)
  • Keep names under 30 characters
  • If the product already has a naming convention, follow it exactly and note it in the output

Output: Event Taxonomy Table

Produce a markdown table with exactly these five columns:

#Event or ActionID or VariableDefinitionPurposeEvent Name

Column definitions:

Event or Action — Plain English label. What the user did or what happened. Use the element type + label text. Examples:

  • Button Click: "Save Changes"
  • Dropdown: "Account Type"
  • Page Load
  • Text Input: "Email Field Changed"
  • Radio: "Billing Frequency"

ID or Variable — The DOM-level selector or variable name the tag team will hook into. Use kebab-case. Infer from the label text if not visible in the mockup. Examples:

  • save-changes-btn
  • account-type-select
  • email-input
  • billing-frequency-radio

Definition — When exactly does this event fire? Be precise. Start with “When the user…” or “The moment the page…”

Purpose — Which business question does tracking this answer? Connect to a KPI. If flow context was provided, map directly to a stated KPI. If not, use the most likely KPI for that element type:

  • Submit buttons → task completion rate
  • Cancel/close buttons → abandonment rate
  • Start events → funnel entry rate
  • Feature toggles → feature adoption rate
  • Error states → error rate

Event Name — camelCase event name following the naming convention above.

Cascading Input Priority

Not all inputs are equal. When deciding whether to tag a specific input field, apply these two tests. If either passes, the input must be tagged and flagged.

Test 1 — Does it cascade? If changing this field’s value causes anything else in the flow to change — other fields appearing or hiding, validation rules shifting, downstream behavior changing — it must be tagged. These inputs explain why users take different paths through the same flow.

Test 2 — Does it have sizeable outcome impact? Even if nothing visually changes, does this field’s value directly affect the product’s core outcome — pricing, eligibility, access level, subscription tier, risk calculation, permissions? If yes, tag it.

General examples of must-tag inputs:

  • Plan type selector — changes what features or pricing applies
  • Account type dropdown — may change what form fields appear next
  • Billing frequency toggle — affects pricing calculation
  • User role selector — changes what the user can access
  • A/B test variant toggle — affects the entire experience downstream
  • Any field that unlocks or hides a subsequent step

General examples of lower-priority inputs:

  • Middle name or suffix fields
  • Secondary address line
  • Optional bio or description fields (unless length or content triggers logic)
  • Display preference fields with no functional effect

When analyzing a mockup, mark each cascading or high-impact input with a [CASCADE] or [HIGH IMPACT] flag in the Purpose column. This tells the tag team what to prioritize if they need to phase implementation.

If cascade behavior of any input is unclear from the mockup, flag it in the Coverage Gaps section and prompt the designer to verify with a PM or business analyst before handoff.

Element Coverage Checklist

When analyzing a screen, systematically check for all of these. Do not skip any category.

Always tag:

  • Page/view load
  • Every CTA button (primary and secondary)
  • Every form submit button
  • Every cancel / dismiss / close button (high abandonment signal)
  • Every cascading input — any field whose value changes the flow
  • Every high-impact input — any field with direct effect on a core business outcome
  • Every radio button group
  • Every checkbox and toggle that affects downstream behavior

Tag if present and notable:

  • Dropdowns / selects (cascading ones first)
  • Text input fields (high-impact ones first)
  • Expand/collapse controls
  • Search / autocomplete interactions
  • Modal or drawer open/close events
  • Warning or alert dismissed actions
  • Add / expand section actions
  • Back / navigation links
  • Pagination or load-more actions

Flag but do not generate — prompt the designer:

  • Screen states not visible in the mockup: error state, empty state, loading state
  • Conditional logic (fires only when X condition is true)
  • Multi-step flows where the same element appears across steps
  • Any input whose cascade behavior cannot be determined from the mockup alone

Coverage Gap Section

After the table, always output a Coverage Gaps section: The following were NOT visible in the provided mockup or could not be determined from it. Verify these before handoff:

Error state: What fires if form validation fails? Loading state: Is there a spinner or skeleton? Should it be tracked? Empty state: What fires if the list/section is empty on load? [Any cascading inputs flagged as unclear] [Any conditional logic that depends on user state or permissions]

Business Context Priming

If the designer provides flow context, use it to sharpen the Purpose column. Common KPIs by product type to map to:

SaaS / internal tools:

  • Task completion rate → flow save/submit events
  • Task abandonment rate → cancel, close, back events
  • Time on task → flow start + flow saved pair
  • Feature adoption → optional feature toggles
  • Error rate → validation error events

E-commerce:

  • Conversion rate → add to cart, checkout initiated, purchase completed
  • Cart abandonment → remove from cart, checkout exited
  • Funnel drop-off → step viewed vs. step completed pairs

Consumer apps:

  • Activation rate → onboarding completed event
  • Retention signal → return visit, key feature used
  • Engagement depth → feature interaction frequency

If no context is provided, use generic KPI language and note in the output that Purpose column accuracy will improve with flow context.

Output Format

  1. Start with a brief Screen Summary (1-2 sentences: what screen is this, what flow is it part of)
  2. Output the Event Taxonomy Table in full
  3. Output the Coverage Gaps section
  4. End with a Naming Convention Reference block showing the pattern used and any conventions observed or inferred

Example Output Structure

Quality Check Before Outputting

Before finalizing output, verify:

  • Every visible interactive element is in the table
  • No event name is duplicated
  • All event names follow the camelCase nounVerb pattern
  • Every row has all 5 columns populated
  • Cancel/close/dismiss buttons are included
  • Cascading inputs are flagged [CASCADE] in the Purpose column
  • High-impact inputs are flagged [HIGH IMPACT] in the Purpose column
  • Coverage gaps section calls out all missing screen states
  • Any input whose cascade behavior is unclear is flagged in Coverage Gaps
  • If no flow context was provided, the output notes that Purpose column accuracy is limited and prompts the designer to re-run with context