Body text size
type:Smallest body text is 10px (base ~10px). below the ~16px readable floor.
FixKeep body copy ≥15-16px; reserve sub-13px for fine print only.
saas · Aug 3, 2026
40/100 Thin
Scores higher than 36% of 1,391 multi-step funnels we have measured. Among the 1,074 saas funnels in that group, higher than 25%.
Measured by Roentgen 1.18 on 2026-08-03. A capture is read once and its measurements freeze there, so the stamp says which ruleset read this one.
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. Per device: desktop 40 · mobile 40.
Walk 30 links on the entry page, 24 walkable. 1 matched a funnel step; we captured 2 pages in all, this one included.
this funnel’s coverage score across measured re-scans
measuredextracted directly from the live page. a fact, not an opinionsee 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 opinionKitolity — Fast, private, browser-based tools
Free suite of 55+ fast, private tools for PDFs, images, documents & code — most run in your browser (even AI like background removal & OCR). No sign-up.
Fast, private everyday tools
AI Tools
Cloud tools
Browser tools
A fast, private toolbox for everyday tasks
Frequently asked questions
Coming soon
Audio to Text (Transcribe)
Background Remover+6 more, not shown
HOME
PRICING
GUIDES
ABOUT
CONTACT
ACCOUNT
ALL
DOCUMENTS
DEVELOPER TOOLS
PRODUCTIVITY+2 more, not shown
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, $6/mo
free forever
? Frequently asked questions Is Kitolity free to use? Do I need to create an account? Are
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 opinion2 of 9 measured checks need work
Smallest body text is 10px (base ~10px). below the ~16px readable floor.
FixKeep body copy ≥15-16px; reserve sub-13px for fine print only.
32 of 62 interactive targets are under 44×44px on mobile.
smallest: “Terms” at 44×20px
FixGive tappable controls a ≥44×44px hit area. the touch minimum.
7 paragraphs run past ~95 characters per line.
FixCap measure at ~60-75ch for comfortable reading.
type:23 controls have an aria-label that does not contain its visible text, so voice-control users cannot activate it by saying what they see.
FixMake the accessible name start with the visible label text.
a11y:6 stylesheets/scripts in <head> block first paint.
FixDefer non-critical JS (defer/async) and inline only critical CSS.
weight:Text contrast (WCAG AA) · Mobile viewport · Language declared · Page weight
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.
layers we ran on this funnel that came back empty
measuredextracted directly from the live page. a fact, not an opinionElements — the atomic pieces — price anchors, ratings, guarantees — with their verbatim on-page text
Playbook match — which funnel play this page runs — measured, evidence-quoted
We ran these passes on the pages we captured and found nothing to show. That is a measurement of this funnel, not a recommendation — and it is a different statement from a layer we never ran, which does not appear here at all.