Skip to content
Back to skills

Product Analytics Instrumentation

ASecurity

Use when implementing product analytics and user tracking.

  • 2 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 10, 2026
ai-agentspythongo

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add LoopyLuci/Skills --skill product-analytics-instrumentation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Product Analytics Instrumentation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Product Analytics Instrumentation
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/loopyluci-product-analytics-instrumentation/badge)](https://www.skillsdirectory.com/skills/loopyluci-product-analytics-instrumentation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: product-analytics-instrumentation
description: "Use when implementing product analytics and user tracking."
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
  hermes:
    tags: [product-analytics, user-tracking, events, funnel, retention, cohorts, AARRR]
    related_skills: [website-analytics-tracking, saas-metrics-reporting, business-metrics-kpis, customer-feedback-surveys]
---

# Product Analytics and Instrumentation

Implementing product analytics β€” from event tracking and funnel analysis through retention cohorts, AARRR metrics, and data-informed product decisions.

## When to Use

- Setting up product analytics (Amplitude, Mixpanel, PostHog, Heap)
- Defining and tracking key product events
- Building funnel and retention analyses
- Measuring product-led growth metrics (AARRR)
- Making data-informed product decisions

## Analytics Framework (AARRR)

```python
AARRR_METRICS = {
    'acquisition': {
        'metrics': ['Signups', 'Signup conversion rate', 'Traffic by source', 'CAC'],
        'events': ['Page Viewed', 'Signup Started', 'Signup Completed'],
    },
    'activation': {
        'metrics': ['Activation rate', 'Time to activation', '% completed setup'],
        'events': ['Onboarding Step 1', 'Onboarding Complete', 'First Core Action'],
    },
    'retention': {
        'metrics': ['D1/D7/D30 retention', 'DAU/MAU', 'Session frequency'],
        'events': ['App Opened', 'Session Started', 'Feature Used'],
    },
    'revenue': {
        'metrics': ['MRR', 'ARPU', 'Conversion rate', 'Expansion revenue'],
        'events': ['Subscription Started', 'Payment Completed', 'Plan Upgraded'],
    },
    'referral': {
        'metrics': ['Viral coefficient', 'Referrals per user', 'Invite acceptance rate'],
        'events': ['Referral Sent', 'Referral Opened', 'Referral Converted'],
    },
}
```

## Event Tracking Plan

```python
from typing import Dict, List, Optional
from datetime import datetime

class EventTrackingPlan:
    """Define and manage product event tracking."""
    
    def __init__(self, product: str):
        self.product = product
        self.events = {}
        self.user_properties = {}
        self.funnels = []
    
    def add_event(self, name: str, category: str, 
                  description: str, properties: List[Dict],
                  trigger: str = 'user_action') -> 'EventTrackingPlan':
        self.events[name] = {
            'name': name, 'category': category,
            'description': description, 'properties': properties,
            'trigger': trigger,  # user_action, system, page_view
            'status': 'planned',
        }
        return self
    
    def add_funnel(self, name: str, steps: List[str], 
                   conversion_goal: str) -> 'EventTrackingPlan':
        self.funnels.append({
            'name': name, 'steps': steps,
            'conversion_goal': conversion_goal,
        })
        return self
    
    def generate_tracking_spec(self) -> str:
        spec = f"πŸ“Š Event Tracking Plan: {self.product}\n" + "=" * 50 + "\n"
        
        for event_name, event in self.events.items():
            spec += f"\n**{event_name}** ({event['category']})\n"
            spec += f"  Description: {event['description']}\n"
            spec += f"  Trigger: {event['trigger']}\n"
            for prop in event['properties']:
                spec += f"  Property: {prop.get('name')} ({prop.get('type', 'string')})\n"
        
        if self.funnels:
            spec += "\n**Funnels:**\n"
            for funnel in self.funnels:
                spec += f"\n  {funnel['name']}:"
                for i, step in enumerate(funnel['steps'], 1):
                    spec += f"\n    {i}. {step}"
        
        return spec
```

## Funnel Analysis

```python
class FunnelAnalyzer:
    """Analyze conversion funnels and find drop-off."""
    
    @staticmethod
    def analyze(funnel_steps: List[str], event_data: Dict) -> Dict:
        results = []
        prev_count = None
        
        for step in funnel_steps:
            count = len(event_data.get(step, []))
            if prev_count is not None:
                conversion = round(count / max(prev_count, 1) * 100, 1)
                dropoff = round((1 - count / max(prev_count, 1)) * 100, 1)
            else:
                conversion = 100.0
                dropoff = 0.0
            
            results.append({
                'step': step,
                'users': count,
                'conversion_from_previous': conversion,
                'dropoff_from_previous': dropoff,
            })
            prev_count = count
        
        return {
            'funnel': results,
            'overall_conversion': round(results[-1]['users'] / max(results[0]['users'], 1) * 100, 1) if len(results) > 1 else 100,
            'critical_dropoffs': [r for r in results if r['dropoff_from_previous'] > 30],
        }
```

## Common Pitfalls

1. **Tracking everything** β€” more events β‰  better insights; track what drives decisions
2. **No event taxonomy** β€” same event named differently on web vs mobile causes data mess
3. **Self-serve analytics not adopted** β€” if product team can't query data, they won't use it
4. **Data quality issues** β€” missing events, duplicate events, wrong properties
5. **Vanity metrics focus** β€” tracking page views instead of activation and retention
6. **No instrumentation review** β€” events drift as product changes; audit quarterly

## Verification Checklist

- [ ] Event tracking plan documents all key events
- [ ] AARRR metrics defined and tracked
- [ ] Key funnels identified and instrumented
- [ ] User properties captured for segmentation
- [ ] Data quality monitoring in place (event volume, missing props)
- [ ] Product team has self-serve analytics access
- [ ] Event naming convention documented
- [ ] Quarterly event audit scheduled

## See Also

- website-analytics-tracking β€” marketing analytics complement
- saas-metrics-reporting β€” revenue metrics from product data
- business-metrics-kpis β€” product KPIs
- customer-feedback-surveys β€” qualitative complement to quantitative

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.