Skip to content
Data
Skill

/metric-context-and-benchmarks

Interpret analytics metrics with correct context. Use when the user asks "is this good", "what's a normal X", or quotes a rate without denominator. Covers realistic ranges for bounce rate, engagement, session duration, pages per session, conversion rate by model type, SaaS unit

From plugin
analytics-skills
813 skills
Install
$ npx -y skills add clamp-sh/analytics-skills --skill metric-context-and-benchmarks --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/metric-context-and-benchmarks

Context preview

The summary Claude sees to decide when to auto-load this skill.

Interpret analytics metrics with correct context. Use when the user asks "is this good", "what's a normal X", or quotes a rate without denominator. Covers realistic ranges for bounce rate, engagement, session duration, pages per session, conversion rate by model type, SaaS unit

SKILL.md

metric-context-and-benchmarks.SKILL.md
name: metric-context-and-benchmarks
description: Interpret analytics metrics with correct context. Use when the user asks "is this good", "what's a normal X", or quotes a rate without denominator. Covers realistic ranges for bounce rate, engagement, session duration, pages per session, conversion rate by model type, SaaS unit economics (LTV:CAC, CAC payback, MRR churn, activation, retention), plus when each metric lies and minimum sample sizes.
when_to_use: Triggered by "is 2% conversion good", "our bounce rate is 70%", "what's a healthy session duration", "is $70 CAC too high", "what's normal churn", or any raw metric quoted without context. Assumes you have also loaded analytics-diagnostic-method.

Metric context and benchmarks

The reference skill for answering "is this number good, bad, or noise?" correctly. Almost every wrong answer to that question comes from quoting a cross-industry average when the user's industry-specific number is 3× different, or quoting a benchmark without checking if the sample size even supports the comparison.

Read `analytics-diagnostic-method` first. Sample-size discipline applies here more than anywhere: benchmarks are meaningless if your data is noise.

How to use this skill

1. Load `analytics-profile.md`. The profile's model + industry row picks the right benchmark. 2. Check the sample size. If the user's number is computed on too few observations, the comparison to any benchmark is moot. Say so and stop. 3. Look up the relevant benchmark with its qualifiers (year, source, population, definition). 4. Answer in the form: "Your X is Y. Benchmark for [specific population] is Z [from source, year, n=]. Your number is [above / at / below] benchmark by W percentage points." 5. Flag metric-specific traps (e.g. GA4 bounce rate is not UA bounce rate; last-click CVR is not the full story).

The honesty rule

Never quote a benchmark as if it's a target. Benchmarks describe populations; they don't tell you what *your* number should be. A business can have a below-benchmark CVR and a healthy LTV:CAC if their AOV or retention is elevated. A business can have a 3× benchmark CVR and still be unprofitable. Always connect the benchmark back to the user's actual unit economics.

Metric-by-metric

Bounce rate / engagement rate

**GA4 definition (authoritative, from support.google.com/analytics/answer/12195621)**:

  • **Engaged session** = session lasting longer than 10 seconds, OR with a conversion (key) event, OR with 2+ page/screen views.
  • **Engagement rate** = engaged sessions / total sessions.
  • **GA4 bounce rate** = 100% − engagement rate.

**Critical**: GA4 bounce rate is NOT the same as Universal Analytics bounce rate. UA bounce rate was single-pageview sessions. In GA4, a single-pageview session with >10s dwell is engaged (not bounced). So pre-2023 blog posts quoting "50% bounce rate is average" are measuring a different thing.

**Realistic GA4 engagement rate ranges** (by content type, rough):

| Page type | Healthy engagement rate | |---|---| | Long-form blog / documentation | 60–85% | | Product / pricing pages | 50–75% | | Landing pages (ad-driven) | 35–60% | | Homepage | 45–65% | | Search results / category pages | 40–60% |

Above-range: possibly bot sessions with artificial dwell, or a content page being used as a reference (people open and keep the tab).

Below-range: misaligned expectation (wrong ad creative → wrong page), or slow page load.

Section views (when tracked)

Some analytics tools (e.g. Clamp's section-views extension) fire a per-section visibility event. Useful as a triangulating signal alongside engagement and bounce, but interpret by section position, not as a verdict:

| Section position | Healthy % of pageviews that view it | |---|---| | Above the fold (hero, top features) | 80–100% | | Mid-page (after first scroll) | 40–70% | | Below the fold (final CTA, footer-adjacent) | 15–40% |

A below-fold section with a low view rate is not a leak if the upstream CTAs convert normally; that's redundancy for the audience that needs it. Only flag low section views when downstream conversion is also weak.

Session duration

Heavily distorted by outliers (one abandoned tab pushes the mean by minutes). **Always use the median, never the mean**, or the tool's "engaged session duration" variant that bounds the tail.

Rough ranges:

| Page / context | Typical median engaged duration | |---|---| | Docs / reference | 60–180s | | Article / blog | 30–90s | | Marketing / landing | 15–60s | | App / dashboard | varies wildly |

A median under ~10s on a marketing landing page is usually either a slow-load problem, a bot problem, or a page-content problem (people don't find what they came for).

Pages per session

  • 1.0–1.5: single-page visits dominate (often bot traffic or ad-landing that didn't interest).
  • 1.5–3: typical for most B2B / SaaS marketing sites.
  • 3–5: typical for content / media / ecommerce sites.
  • 5+: usually heavy users (docs diving), or possibly session-window issues.

Conversion rate (by model)

**Cite the user's model row, not the cross-industry number.**

**Ecommerce (Littledata 2023, n=2,800 Shopify)**:

  • Average: 1.4%. Top 20%: >3.2%. Top 10%: >4.7%.
  • Mobile: 1.2%. Desktop: 1.9%.
  • Add-to-cart: 4.6%. Checkout completion: 45% (top 10% >66%).
  • AOV: $101.

**Lead generation (Ruler Analytics 2025, 100M+ data points, 14 industries)**: Cross-industry average: 2.9% MQL CVR. By source overall:

| Source | CVR | |---|---| | Direct | 3.3% | | Paid search | 3.2% | | Referral | 2.9% | | Organic | 2.7% | | Email | 2.6% | | Paid social | 2.0% | | Organic social | 1.5% |

Selected industry rows:

| Industry | Direct | Organic | Paid search | Social | |---|---|---|---|---| | B2B Tech | 1.5% | 1.5% | 1.5% | 0.3% | | B2B Services | 2.7% | 2.5% | 3.4% | 1.2% | | B2B Ecommerce | 2.1% | 2.0% | 2.4% | 1.1% |

**Landing page CVR (Unbounce 2024, 57M conversions, 41k+ pages)**: Median across industries: 6.6%. But Unbounce me

Read more
Ships withanalytics-skills

Analytics skills for Claude, Cursor, and other AI agents. Read web analytics like a senior analyst: diagnose traffic changes, judge channel quality, read funnels, declare typed events, and read A/B tests without the usual rookie mistakes.

Get the whole plugin

Other skills on analytics-skills.