Smallest body text is 10px (base ~20px). below the ~16px readable floor.
fix Keep body copy ≥15-16px; reserve sub-13px for fine print only.
saas · Aug 9, 2026
25/100 Sparse
Scores above 43% of 525 entry-page captures we have measured. Among the 289 saas funnels in that group, above 34%.
Walk 18 links seen, 5 walkable, and 0 matched a funnel step. If this funnel continues past the entry page, we did not reach it — everything below is measured from the entry page alone.
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.
the entry page’s own title, headline, buttons and prices — quoted, never paraphrased
measuredextracted directly from the live page. a fact, not an opinionOtty: Cycle Tracking App for Couples | Never Drift Apart
Otty is the cycle tracking app built for couples. Phase-by-phase nudges, a shared calendar, and a sea otter who helps you never drift apart. Free on iOS.
Period tracker for couples.
Attention, aimed at the right day, is the whole relationship.
I'm a sea otter. I hold things.
Never drift apart.
Five features, printed plainly.
Five phases, one cycle. Here's what each one actually feels like.
What couples say. Straight from the App Store.
The things people want to know first.
Reading, for the weeks between.
Add me
Download on the App Store
Join the Android list
$5.99
$39.99
structural bands identified on this funnel, cropped from its own capture
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 opinionfree trial
FREQUENTLY, UNDERSTANDABLY, ASKED. The things people want to know first. Six questions, an
free trial
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 opinion82% of measurable text passes WCAG AA. 4+ runs fail.
worst: “26” at 1.38:1 (13px, #e8d8da on #ffffff). 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 ~20px). below the ~16px readable floor.
fix Keep body copy ≥15-16px; reserve sub-13px for fine print only.
html[lang] is set for screen readers.
All 10 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 5.5 MB across 22 measurable resources. 12 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.
3 stylesheets/scripts in <head> block first paint.
fix Defer non-critical JS (defer/async) and inline only critical CSS.
9 images are shipped at more than 2x the width shown.
“back-pain-before-period.png?fit=768%2C43” is 768px wide, displayed at 280px
fix Serve responsive sizes (srcset/sizes) matching the rendered width.
No <header> landmark. screen-reader users cannot jump between regions.
fix Wrap the page in <header>, <main> and <footer> (or matching ARIA roles).
12 elements look clickable but cannot be reached by keyboard.
“01”, “Who is Otty for: me, my partner, o”, “02”
fix Use <button>/<a>, or add role + tabindex="0" and a key handler.
No autocomplete attributes across 1 field. browsers cannot autofill.
fix Add autocomplete="email"/"tel"/"name" to identity fields.
1 field carries validation attributes (required/pattern/aria-invalid).
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 Elements and Playbook match, and found none on this funnel.