Smallest body text is 10px (base ~18px). below the ~16px readable floor.
fix Keep body copy ≥15-16px; reserve sub-13px for fine print only.
saas · Aug 9, 2026
45/100 Thin
Scores above 42% of 1,252 multi-step funnels we have measured. Among the 959 saas funnels in that group, above 31%.
Coverage is detection coverage, not a verdict — it counts the conversion tactics we could prove are present, out of the 11 that apply to a saas funnel.
Measured by Roentgen 1.20.1, one of our versioned rulesets. A capture is read once and its measurements freeze there, so the stamp says which ruleset read this one.
Walk 11 links seen, 8 walkable, 1 matched, and we walked 2 pages.
see their whole funnel without clicking through it. scored step by step
measuredextracted directly from the live page. a fact, not an opinionthe entry page’s own title, headline, buttons and prices — quoted, never paraphrased
measuredextracted directly from the live page. a fact, not an opinionTrendGap Discover High-Pain SaaS Niches with AI
TrendGap uses AI to analyze 100,000+ app reviews daily and surface high-pain, low-competition SaaS and mobile app niches you can actually ship.
Stop Guessing What to Build. Find Validated Gaps. StopGuessingWhattoBuild. FindValidatedGaps.
Build for
See it in action
From signal to blueprint
How it works
You find the idea. Build it with anything.
Optimized for pain points
See exactly what you get
Started building it? Claim the idea.+8 more, not shown
Log in
Get Started
Explore Validated Ideas
Read our Manifesto
Pause
Claim
Submit claim
What exactly does TrendGap find for me?
Where does the data come from?
How is the Market Pain Score calculated?+2 more, not shown
$48
$100
$2,480
$14
$5
structural bands identified on this funnel, cropped from its own capture
measuredextracted directly from the live page. a fact, not an opinion
the atomic pieces — price anchors, ratings, guarantees — with their verbatim on-page text
measuredextracted directly from the live page. a fact, not an opinion
conversion tactics we could prove are present, with the on-page text that evidences each
measuredextracted directly from the live page. a fact, not an opinion$14/mo, $24/mo
logos: Cursor, Claude, ChatGPT, Lovable, Replit
340 teams
How are niches validated? +
340 teams
applicable tactics we checked for and did not see on any step we reached
measuredextracted directly from the live page. a fact, not an opinionAbsence is a measurement, not a recommendation: we do not know why a tactic is missing, whether it belongs here, or whether adding it would change anything. Where a walk stopped early, a tactic living deeper would also read as not detected.
contrast, mobile, typography, accessibility, weight — each with what would fix it
measuredextracted directly from the live page. a fact, not an opinion80% of measurable text passes WCAG AA. 1+ runs fail. 91% of text was unmeasurable (over images/gradients). not counted either way.
worst: “Submit claim” at 2.15:1 (12px, #ffffff on #f59e0b). needs 4.5:1
fix Raise text/background contrast to ≥4.5:1 (≥3:1 for large text), especially on CTAs and body copy.
Responsive viewport meta is present.
Smallest body text is 10px (base ~18px). below the ~16px readable floor.
fix Keep body copy ≥15-16px; reserve sub-13px for fine print only.
16 paragraphs run past ~95 characters per line.
fix Cap measure at ~60-75ch for comfortable reading.
html[lang] is set for screen readers.
All 78 content images carry alt text.
1 heading skips a level (e.g. <h2> followed by <h4>). Screen-reader users navigate by this outline.
fix Step heading levels one at a time; use CSS for size, not a deeper level.
At least 9.4 MB across 24 measurable resources. 34 cross-origin resources did not expose a size, so the real total is higher.
fix Compress and lazy-load below-the-fold media; drop unused third-party scripts.
2 stylesheets/scripts in <head> block first paint.
fix Defer non-critical JS (defer/async) and inline only critical CSS.
47 images are shipped at more than 2x the width shown.
“trendgap-logo.png” is 500px wide, displayed at 173px
fix Serve responsive sizes (srcset/sizes) matching the rendered width.
15 elements look clickable but cannot be reached by keyboard.
“How are niches validated?”, “+”, “+”
fix Use <button>/<a>, or add role + tabindex="0" and a key handler.
palette by on-page usage · type rendered live
measuredextracted directly from the live page. a fact, not an opinionBody copy in their text role, on a surface card.
Body copy set at their measured paragraph size. This is how their product reads to a first-time visitor. same family, same scale, same weight.
We also looked for Playbook match, and found none on this funnel.