metric-context-and-benchmarks — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited metric-context-and-benchmarks (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
analytics-profile.md. The profile's model + industry row picks the right benchmark.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.
GA4 definition (authoritative, from support.google.com/analytics/answer/12195621):
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.
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.
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).
Cite the user's model row, not the cross-industry number.
Ecommerce (Littledata 2023, n=2,800 Shopify):
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% |
| 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 measures "landing page conversion" (form fill / download), which is upstream of primary conversion. Don't compare paid-signup CVR to Unbounce's 6.6%; you'll always look bad.
Paid ads (Wordstream 2025):
Industry variance is wide (Finance/Insurance Google CPL ~$116; Business Services CVR ~5%).
LTV:CAC ratio (David Skok / For Entrepreneurs, canonical since 2009):
CAC payback period (Bessemer State of the Cloud):
Never quote CAC in isolation. $70 CAC is fine if LTV is $2,000 and terrible if LTV is $150.
Before answering "is X% churn high?", the profile must tell you:
ChartMogul SaaS benchmarks:
In Clamp, read NRR per cohort window from revenue.retention: each retention[] entry has an nrr field (MRR-on-MRR; >1.0 means net expansion). Read the latest mature window — the entry where mature_size is >= 10% of cohort size — and ignore later windows the cohort isn't old enough to evaluate. Pair with revenue.summary to read MRR + ARR alongside.
Recurly (broader subscription):
A 5% monthly churn is catastrophic for enterprise SaaS and normal for consumer streaming. Same number, opposite verdicts.
Cross-industry new-user activation rate:
Activation is the highest-leverage metric in SaaS because it bounds every downstream number (retention, revenue, referral loops). If activation is below median, fix that before scaling paid acquisition.
Don't quote retention as a single number. Retention is a curve shape, and the shape reveals whether the product has a core loop.
Rough week-8 retention benchmarks:
Imperva 2023 Bad Bot Report (2022 data): 27.7% of all web traffic is bad bots. Another ~17% is good bots (crawlers). So ~45% of raw traffic is non-human.
If the user's analytics tool shows near-zero bot volume, either (a) the filter is aggressive (healthy) or (b) the filter is broken (they're mis-attributing bots as humans). Check which.
Rule of thumb for proportions, 95% CI, p=0.5:
| Observations in the smaller group | Margin of error |
|---|---|
| 100 | ±10% |
| 400 | ±5% |
| 1,000 | ±3% |
| 10,000 | ±1% |
This means:
When answering "is X good", if the sample is below the threshold, lead with that fact: "At your current volume (n=220 sessions on this page), a single percentage point is the detection floor. Your 4.1% CVR is statistically indistinguishable from the benchmark of 6.6% here; you need at least ~1,600 more sessions to call it meaningfully different."
See analytics-diagnostic-method for Simpson's paradox. If an aggregate metric moved and none of its components did, the story is a mix shift, not a performance change.
Last-click vs first-click vs multi-touch can flip which channel is "best". Always qualify: "Based on last-click attribution, LinkedIn is 2% CVR. If we included branded-search follow-up as assist, the picture changes." Never let an agent quote CVR without naming the attribution model.
Whenever a metric moves, ask: "Did this move because of the thing we think it measures, or because of something upstream?"
User: our bounce rate is 68% and our CVR is 2.1%. Is this bad?
Agent:
[Profile check]
B2B SaaS self-serve, primary conversion = paid signup, ~40k sessions/
month, analytics tool = GA4.
[Definition check]
GA4 "bounce rate" = 100% − engagement rate. Engaged session = >10s,
OR key event, OR 2+ pageviews. This is NOT the UA definition (which
was single-pageview sessions). Don't compare your 68% to pre-2023
UA-era benchmarks.
68% bounce = 32% engagement rate.
[Sample size check]
At 40k sessions/month, you have ~1,300/day. Well above the 1,000-obs
threshold. Both numbers are real, not noise.
[Benchmark lookup]
Bounce: there's no single "bounce benchmark" in GA4's new definition.
Useful reference points:
- Marketing landing pages: 35–60% engagement rate is typical → 40–65%
bounce. Your 32% engagement is below typical.
- Long-form blog: 60–85% engagement. If most of your 40k sessions are
from blog / docs traffic, 32% is very low.
CVR: 2.1% to paid signup, as a share of all sessions.
- Ruler Analytics 2025, B2B Tech: direct 1.5%, paid search 1.5%,
organic 1.5%. So cross-source average for B2B Tech is ~1.5%. Your
2.1% is above that.
- But Ruler measures MQL, not paid signup. Paid signup is harder to
hit. 2.1% paid-signup CVR on all sessions is actually strong for
B2B Tech self-serve.
VERDICT: Bounce rate is likely worse than it should be; CVR is
probably healthy. The two numbers are telling you different things.
EVIDENCE:
- GA4 engagement rate of 32% is below the 50–65% typical for most
marketing-site compositions. If your traffic mix is heavy blog /
docs, this is worse still.
- Paid-signup CVR of 2.1% is above the B2B Tech MQL benchmark (1.5%),
and paid signup is a harder bar than MQL. This is strong.
- The combination (weak engagement + strong conversion) suggests you
have a large volume of low-intent pageviews that bounce, with a
smaller high-intent segment that converts well.
WHAT TO DO NEXT:
- Split bounce rate by entry page. The blog / docs pages are likely
pulling the average down. If the marketing pages (home, pricing,
features) have >50% engagement, you don't have a bounce problem, you
have a blog mix problem and a benchmark-definition problem.
- Don't chase the aggregate bounce number. Chase per-page-type
engagement against its expected range.
- Keep doing whatever is producing the 2.1% paid-signup CVR.
CAVEATS:
- The Ruler benchmark measures MQL, not paid signup. The comparison is
directional.
- "CVR on all sessions" is a blended number that mixes high-intent
pricing visitors with low-intent blog readers. Per-entry-page CVR
is the decision metric, not aggregate CVR.
- Bounce "benchmarks" under GA4's new definition are not well
established. Use the engagement-rate ranges cautiously.The method above is platform-neutral. For specific MCP calls per workflow row (traffic overview, per-page engagement, event volume, revenue, by-segment rates, trailing trend), load the tool-map for the active platform: see tool-maps/ and the tool_map: field in analytics-profile.md. If the field is missing, run analytics-profile-setup to set it.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.