saas · Aug 31, 2026

duoportrait.com

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%.

How this was measured

Measured by Roentgen 1.27.0 on 2026-08-31. 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 64 links on the entry page, 54 walkable. 1 matched a funnel step; we captured 2 pages in all, this one included.

Captured Homepage / Lander
Step 1 · Homepage / Lander1 / 2

What we recorded

The funnel, frame by frame

2 steps walked

see their whole funnel without clicking through it. scored step by step

measuredextracted directly from the live page. a fact, not an opinion
Homepage / Lander
01

Homepage / Lander

▲ strongest
5 tactics

$0 +6 more  ·  subscription

Trust badgesPressFree trialLogo wallPricing tiers
Pricing
02

Pricing

▼ thinnest
3 tactics

$0.10 +5 more  ·  subscription

Trust badgesPressFree trial

In their own words

25 quoted

the entry page’s own title, headline, buttons and prices — quoted, never paraphrased

measuredextracted directly from the live page. a fact, not an opinion
Page title
DuoPortrait — A photo of us, anywhere.
Meta description
For two people who can't be in the same place. Upload yours and theirs — we make the photo you wish you had together. Kyoto in spring, a Seoul studio, a wedding venue you'll book one day.
Headline
A photo of us, anywhere.
Section headings
Two photos in. One we'll keep.30 places you could've gone.Two other reasons to want this photo.The first photo's free.For someone we lostFor a meet-up that never happenedHow does it know it's really us?Can I delete my photos sooner than 7 days?+1 more, not shown
Buttons and links
EnglishHow does it know it's really us?Can I delete my photos sooner than 7 days?Do you use my photos to train AI?Start freeStart with one free photo →
Prices on the page
$0$0.10$4.99$0.03$9.99$0.02$19.99

Sections

4 identified

structural bands identified on this funnel, cropped from its own capture

measuredextracted directly from the live page. a fact, not an opinion
Nav section of duoportrait.com
Nav0% down the page
Hero section of duoportrait.com
Hero2% down the page
FAQ section of duoportrait.com
FAQ80% down the page
Footer section of duoportrait.com
Footer95% down the page

What we found

4 tactics

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

Offer clarity1 of 1

Makes the pricing ladder explicit free, $4.99mo

Action path1 of 4

Offers a free trial or free tier Start free

Trust & proof1 of 2

Shows customer logos or a trusted-by claim logo wall (30 distinct marks)

Friction reduction1 of 2

Offers a free trial or free tier also shown under Action path

What we didn’t find

7 of 11 applicable

applicable tactics we checked for and did not see on any step we reached

measuredextracted directly from the live page. a fact, not an opinion

What we didn’t see7 of 11 applicable

FAQ / objection handling 1,302 of the 1,968 funnels we checked
Demo / docs entry 477 of the 1,393 funnels we checked
Lead-capture form 342 of the 1,393 funnels we checked
Us-vs-them comparison 332 of the 1,968 funnels we checked
Proof above the fold 314 of the 1,968 funnels we checked
Usage / adoption proof 237 of the 1,539 funnels we checked
Scarcity / urgency copy 101 of the 1,960 funnels we checked

Absence 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.

How well it’s built

11 run · 3 flagged

contrast, mobile, typography, accessibility, weight — each with what would fix it

measuredextracted directly from the live page. a fact, not an opinion

3 of 10 measured checks need work1 could not be measured — not counted either way

Text contrast (WCAG AA)

contrast:text-contrast-wcag-aa

51% of measurable text passes WCAG AA. 4+ runs fail.

worst: “Kyoto, in spring” at 1:1 (36px, #f4ecdf on #f4ecdf). needs 3:1

FixRaise text/background contrast to ≥4.5:1 (≥3:1 for large text), especially on CTAs and body copy.

Body text size

type:body-text-size

Smallest body text is 9px (base ~20px). below the ~16px readable floor.

FixKeep body copy ≥15-16px; reserve sub-13px for fine print only.

Tap-target size (mobile)

mobile:tap-target-size-mobile

47 of 92 interactive targets are under 44×44px on mobile.

smallest: “Style library” at 81×21px

FixGive tappable controls a ≥44×44px hit area. the touch minimum.

Worth knowing4

Line length

6 paragraphs run past ~95 characters per line.

FixCap measure at ~60-75ch for comfortable reading.

type:line-length
Render-blocking resources

4 stylesheets/scripts in <head> block first paint.

FixDefer non-critical JS (defer/async) and inline only critical CSS.

weight:render-blocking-resources
Keyboard reachability

2 elements look clickable but cannot be reached by keyboard.

FixUse <button>/<a>, or add role + tabindex="0" and a key handler.

structure:keyboard-reachability

Not measurable1

Page weight

At least 1.4 MB across 105 measurable resources, but 45 cross-origin resources did not expose a size. The true weight cannot be determined from the page.

weight:page-weight

Clear3

Mobile viewport · Language declared · Image alt text

Brand kit

5 colour roles

palette by on-page usage · type rendered live

measuredextracted directly from the live page. a fact, not an opinion
full palette ordered by on-page usage %
accent#f4ecdf
bg#fbf6ec
surface#f4ecdf
text#f4ecdf
See the roles applied
accent

Body copy in their text role, on a surface card.

the roles, doing their job
The quick brown fox64px
Jumps over the lazy dog60px
A subheading in their voice36px

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.

  • List item one, at body scale
  • List item two
  • List item three
Type scale, weights & families
SIZE SCALE
9pxAa
10pxAa
11pxAa
13pxAa
14pxAa
15pxAa
16pxAa
24pxAa
30pxAa
36pxAa
60pxAa
64pxAa
WEIGHTS
Aa300
Aa400
Aa500
Aa600
FAMILIES
Italiana · Manrope
rendered in their own type system · webfont not loaded. system fallback if uninstalled

Measured, found none

2 of 9 layers

layers we ran on this funnel that came back empty

measuredextracted directly from the live page. a fact, not an opinion

Elements — 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.

X-ray a funnel

Your competitor's funnel is one URL away.

Give your AI real references · Measured facts, not taste

Similar crawls