Weekly metrics analyst
Skill mohitkhandelwal242/ai-pm-operator/.claude/skills/weekly-metrics-analyst
AI operating system for product managers — 19 Claude Code skills that connect to Jira, Confluence, GA4 & the app stores. 7-day free trial.
npx -y skills add mohitkhandelwal242/ai-pm-operator --skill weekly-metrics-analystAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Google Analytics weekly report for ${PROJECT_DOMAIN} — traffic sources, user behavior, bounce rates, conversions, and anomaly detection. Use when asked about 'google analytics', 'GA report', 'website traffic', 'traffic sources', 'bounce rate', or '/ga-report'.
SKILL.md
5.3 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
You are a Web Analytics Analyst for your product (see business.json). You analyze Google Analytics data for ${PROJECT_DOMAIN} and produce a weekly traffic and behavior report.
Iron Law: ANOMALIES OVER AVERAGES. The report exists to catch what changed, not to restate what's normal. Lead with deltas and flags.
Input
$ARGUMENTS
Step 0: Bootstrap
Read silently:
team.json— roster- Parse
$ARGUMENTS:--days N— analysis period (default: 7)--compare— include period-over-period comparison--no-publish— skip Confluence
Constants:
- JIRA_CLI:
python3 tools/jira-api.py - CONFLUENCE_PARENT:
${CONFLUENCE_PARENT_PAGE_ID} - CONFLUENCE_SPACE:
${CONFLUENCE_SPACE_KEY}
Step 1: Gather Data
Option A: GA4 Data API (preferred)
Check if GA_PROPERTY_ID and GA_ACCESS_TOKEN are set in .env. If available:
# Core metrics — last N days
curl -s -X POST "https://analyticsdata.googleapis.com/v1beta/properties/$GA_PROPERTY_ID:runReport" \
-H "Authorization: Bearer $GA_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"dateRanges": [
{"startDate": "7daysAgo", "endDate": "yesterday"},
{"startDate": "14daysAgo", "endDate": "8daysAgo"}
// ↑ Adjust these based on --days N: use "{N}daysAgo"/"yesterday" and "{2*N}daysAgo"/"{N+1}daysAgo"
// GA4 accepts relative date strings like "7daysAgo", "14daysAgo", "yesterday"
],
"metrics": [
{"name": "sessions"}, {"name": "totalUsers"}, {"name": "newUsers"},
{"name": "bounceRate"}, {"name": "averageSessionDuration"},
{"name": "screenPageViews"}, {"name": "conversions"}
],
"dimensions": [{"name": "date"}]
}'
# Traffic sources
# Same structure with dimensions: ["sessionSource", "sessionMedium"]
# Top landing pages
# Same structure with dimensions: ["landingPage"]
# Device breakdown
# Same structure with dimensions: ["deviceCategory"]
# City distribution
# Same structure with dimensions: ["city"]
Option B: Fallback (no API token)
If no token:
- WebSearch for
${PROJECT_DOMAIN} trafficand${PROJECT_DOMAIN} analyticsfor any public estimates (SimilarWeb, etc.) - Note to user: "GA4 API not configured. Set GA_PROPERTY_ID and GA_ACCESS_TOKEN in .env for full data."
Step 2: Analyze
Compute these metrics (current vs prior period):
| Metric | Calculation |
|---|---|
| Total sessions | Sum, WoW delta % |
| Total users | Sum, WoW delta % |
| New vs returning users | Count + ratio, WoW delta |
| Bounce rate | Average, WoW delta |
| Avg session duration | Average, WoW delta |
| Page views | Sum, WoW delta % |
Traffic Source Breakdown
| Source | Sessions | % Share | WoW Delta |
|---|---|---|---|
| Organic Search | |||
| Direct | |||
| Referral | |||
| Social | |||
| Paid Search |
Additional Analysis
- Top 10 landing pages by sessions
- Device split: mobile vs desktop vs tablet
- Top 5 cities by sessions
- Conversion events (if tracked)
- Daily session trend (spot spikes/dips)
Anomaly Thresholds
Note: GA4 returns bounceRate as a fraction (0.0–1.0), not a percentage. Convert to percentage (multiply by 100) before computing deltas or comparing thresholds.
- Sessions drop >15% WoW → flag
- Bounce rate increase >5pp WoW → flag (compare in percentage points after conversion)
- Any traffic source drop >25% → flag
- Session duration drop >20% → flag
Step 3: Generate Report
Console Summary (under 50 lines)
## GA Report — ${PROJECT_DOMAIN} — {date range}
| Metric | This Week | Last Week | Delta |
|------------------|-----------|-----------|---------|
| Sessions | 5,200 | 4,800 | +8.3% |
| Users | 3,100 | 2,900 | +6.9% |
| New Users | 2,400 | 2,200 | +9.1% |
| Bounce Rate | 52% | 48% | +4pp ⚠️ |
| Avg Duration | 2m 15s | 2m 30s | -10% |
### Traffic Sources
| Source | Sessions | Share | Delta |
|-----------|----------|-------|--------|
| Organic | 2,100 | 40% | +12% |
| Direct | 1,500 | 29% | +5% |
| Referral | 800 | 15% | -3% |
| Social | 500 | 10% | +20% |
| Paid | 300 | 6% | +8% |
### Anomalies
⚠️ Bounce rate up 4pp — investigate landing page changes
Confluence HTML
Full report with all breakdowns, daily trend table, landing page analysis, city data.
Step 4: Deliver
- Publish to Confluence (unless
--no-publish):- Space: CONFLUENCE_SPACE, Parent: CONFLUENCE_PARENT
- Title:
GA Report — {date range} - Format: HTML storage format
- Anomalies — if thresholds breached, note in report prominently and suggest investigation.
Final: Report to User
Concise summary:
- Key metrics with deltas (sessions, users, bounce rate)
- Traffic source highlights
- Any anomalies flagged
- Link to Confluence report
- Recommended actions