Home / Dashboards / Mobbin audit
Download raw .md

Dashboard / Home Screen Pattern Audit (Mobbin)

Date: 2026-08-10 Source: Mobbin design database via MCP search_screens (deep relevance-ranked search) Purpose: Quantified original research on how top apps structure the home screen / dashboard users see every day. Feeds a research-driven YouTube video.

Methodology

  • 5-6 natural-language queries across distinct domains (fitness, finance, habit tracking, health, language learning) on iOS, plus 1 web query for SaaS analytics dashboards, limit 12-15 each.
  • Every screen image was visually examined; tallies come from what is visible in the screenshot, not metadata.
  • Screen IDs tracked across queries to avoid double counting; duplicates excluded from tallies.
  • Target sample: ~60 unique screens.

Tally dimensions (per screen)

  1. Above-the-fold structure: single hero metric/score | 2-4 stat-card grid | list/feed | chart-first
  2. Composite score (0-100-style readiness/sleep/credit score number)? y/n
  3. Goal-progress UI (rings, bars, "X of Y")? y/n
  4. Streak displayed? none | hero | badge/secondary
  5. Primary chart type: line | bar | ring | donut | area | none
  6. Default time frame: today/now | historical
  7. Personalized greeting/name? y/n
  8. Single clear CTA above the fold ("Start workout")? y/n
  9. Empty-state handling (if visible): placeholder prompt | blank | n/a
  10. Negative framing visible (red/down indicators)? y/n
  11. Data density: distinct numbers above the fold, bucketed 1-3 | 4-8 | 9+

Caveats

  • Mobbin curates top/design-forward apps; sample is biased toward polished market leaders, not average apps.
  • Search results are relevance-ranked against the query wording, which can over-select screens matching the described pattern.
  • "Above the fold" judged from full-screen captures (iPhone-height / desktop viewport approximations).

Per-screen observations

Query 1 — "fitness app home dashboard with activity stats" (iOS, 13 screens, 13 new)

# App Category Structure Composite score Goal progress Streak Chart Timeframe Greeting CTA Empty state Neg. framing Density URL
1 Withings Health Mate health/fitness list of stat cards no no none line sparklines latest/today no no n/a no (neutral "High HR" text flag) 4-8 https://mobbin.com/screens/3e0d9ab3-1658-4490-8738-6c7f90940729
2 Cal AI nutrition 2-4 stat-card grid no yes (0/10,000 steps ring) none ring today no yes (FAB + "add first meal") placeholder prompt ("Tap + to add your first meal") no 4-8 https://mobbin.com/screens/38c76d56-fed8-426d-8929-c58bae82edfd
3 Bevel health grid (3 score rings) yes (Strain 38 / Recovery 77 / Sleep 67) rings (score-style) none ring today no (date header) no n/a no 9+ https://mobbin.com/screens/2d3e8d5f-f3f1-4370-8b34-f914c8eb31ed
4 Any Distance running 2-4+ stat-card grid no yes (4/5km goal ring) none none above fold historical (This Year) no no n/a no 4-8 https://mobbin.com/screens/47e2e83b-6b36-420d-8ec8-b3682c555b2e
5 Google Fit fitness single hero metric (dual ring 240 / 22,931) no (Heart Pts = points, not 0-100) yes (ring + "3/7 achieved") none ring today no no n/a no 4-8 https://mobbin.com/screens/7e924261-2c27-4453-b9ca-43ff67a60c4e
6 adidas Running running (Progress tab) grid (8 stat cells) no no none none above fold historical (Month) no no n/a no 9+ https://mobbin.com/screens/35e7634c-c6b5-42ff-a931-9e027bcc2262
7 Apple Health health list of stat cards Sleep Score card present (No Data) no none mini bar latest/today no no "No Data" blank card no 1-3 https://mobbin.com/screens/37402325-0dcd-4f27-b55c-122ac857d2ac
8 Ultrahuman health/wearable list of cards yes (indices, locked) no none none today no no placeholder prompts (how to unlock each index) no 1-3 https://mobbin.com/screens/7d3e9291-99d5-4fcc-8b7e-6607c636952e
9 timespent activity single hero metric (ring "5.0 mi") no ring none ring today no no n/a no 1-3 https://mobbin.com/screens/f3038419-0196-4fe3-b003-3c11a7e1d7f5
10 Peloton fitness stat-card row + greeting no yes (weekly dots) HERO ("You have a 1 week streak going") none 7-day default yes ("Welcome back, JudySmithh") yes (JOIN CLASS) n/a no (green up-arrows, positive) 4-8 https://mobbin.com/screens/0cd621cb-59a9-46b3-ad46-86d7a5886474
11 Fitbit fitness list of stat cards no yes ("1 of 6" exercise days) none mini bar today no no zeros + "No target" (weak) no 1-3 https://mobbin.com/screens/10d034c3-883a-4e3f-aa84-6821c56ff632
12 pushr fitness micro single hero metric ("3 push-ups today") no no none none today no no n/a no 4-8 https://mobbin.com/screens/a5c74235-e040-49f2-8fb9-b9211e04c157
13 Runbuds running small stat row (3) no no none route line historical (1W) no no n/a no 4-8 https://mobbin.com/screens/aef57c53-f2e9-4739-b108-e95cbd9dda32

Query 2 — "finance app home screen with account balance and spending overview" (iOS, 13 screens, 13 new; running unique n=26)

# App Category Structure Composite score Goal progress Streak Chart Timeframe Greeting CTA Empty state Neg. framing Density URL
14 Ubank Money App banking list of cards no no none none this week yes ("Hey [name]") yes ("Get started" bill planner) placeholder prompt (Bill Planner illustration + copy) no 1-3 https://mobbin.com/screens/9bbc33b2-7e59-49b5-8c8b-fb3da8f1918b
15 Copilot Money PFM list of stat cards no no none horizontal allocation bars current month no "Review in detail" links italic "No recurring payments being tracked" no 4-8 https://mobbin.com/screens/b1befa2f-2fc7-4be6-ab4a-c7bb0d8651f0
16 Origin PFM chart-first (Spent This Month line chart card) no no none line (month-vs-month comparison) this month no promo "Get $50" + "Ask Sidekick" n/a no 1-3 https://mobbin.com/screens/1d636ff5-01c1-4d6f-9f12-accb3c61868c
17 Crypto.com crypto single hero metric ($0.00 Total Balance) no no none none (chart area empty) 24H default no "Open" (cash) "No balance history yet" pill % change indicator present (0.00%) 4-8 https://mobbin.com/screens/82434aa8-3646-47f3-8c93-8e7400515a3c
18 Quicken budgeting single hero metric (donut + "-$320.00 Available") no yes (budget donut) none donut month no no n/a YES (negative $, "Over spent" in warning color) 4-8 https://mobbin.com/screens/2486b1b1-13a5-4424-82c9-6dd4ce0ee371
19 Kakao Pay securities single hero metric (981,188 won) + allocation list no no none horizontal bar (allocation) current no multiple action buttons (충전/출금/환전) n/a no 4-8 https://mobbin.com/screens/60addae9-8585-41ab-8cd2-64f85d6e1536
20 Cleo budgeting 2-4 stat grid ($1,274.87 until $1,463 / $115.90 per day) no yes (budget "until $1,463", "$0 of $16") none none current period/today no no "Add a bill" tile no 9+ https://mobbin.com/screens/d1d13fc6-5d1c-4250-8b9a-f9b668d06428
21 Wealthsimple investing single hero metric ($85.00) + area chart no no none area historical (ALL) no no n/a neutral $0 (0%) change row 4-8 https://mobbin.com/screens/667bf371-6e73-42f5-b179-574e62d9b64b
22 Vivid banking single hero metric (€5.00 spent today) + donut no no none donut today (1D default) no no n/a no 1-3 https://mobbin.com/screens/bbe54734-fd09-421d-a4f8-ee947d03ddb0
23 Toss PFM single hero metric (spend total) + breakdown list no no none none month no no n/a YES (red "spending 480K won more than last month") 9+ https://mobbin.com/screens/88fec282-2dc9-4f3d-9a49-7fa304b8fea5
24 Wise banking single hero metric (30.00 SGD total balance) no no none none current no "Learn more" chips "Learn more" prompts for unopened products no 4-8 https://mobbin.com/screens/60cb8ffa-dad5-4e2f-b3d6-bd965d2bb92a
25 bunq banking chart-first (line chart) + 4 account tiles no no none line/area recent history no Pay/Request/Add (multiple) n/a no 4-8 https://mobbin.com/screens/44be00d7-cd84-4285-a095-66c44089f0da
26 Monarch PFM single hero metric ($0.00 net worth) + chart no no none area (empty) 1M historical no no dashed "+ Add an account" neutral 0% 1-3 https://mobbin.com/screens/561df1a2-d4e6-4733-9471-f43b18c1b330

Query 3 — "habit tracker home screen with streaks and progress" (iOS, 13 screens, 13 new; running unique n=39)

Note: this query pulled several streak-centric surfaces that are not classic dashboards (Duolingo + pushr widget galleries, Bloom celebration modal, QUITTR streak-explainer overlay). Kept with type flags; streak stats for this batch are query-biased and are reported per-category in the summary.

# App Category Structure Composite score Goal progress Streak Chart Timeframe Greeting CTA Empty state Neg. framing Density URL
27 Duolingo (widgets) language single hero metric ("846 days") no no HERO (flame + day count + week checks) none today no ("Don't forget me!" mascot nudge) no n/a no 1-3 https://mobbin.com/screens/3ed7f990-7eea-4cfa-bc35-af1ee8ecee40
28 QUITTR (overlay) habit/recovery single hero metric ("5 Day Streak") yes-adjacent ("Brain Rewiring 6%" bar behind) yes (rewiring bar) HERO none today no Panic Button (dimmed) n/a no 1-3 https://mobbin.com/screens/62e93e5d-41f4-42ba-b556-af0bfce9f536
29 Atoms habits list/feed (habit rows) no no badge per habit ("1 day in a row!") none today no no "You haven't tracked any feelings yet" no 1-3 https://mobbin.com/screens/9f9332f0-59c7-436f-be2c-b01837ed35d8
30 pushr (widgets) fitness micro single hero metric (streak "3 days") no no HERO (flame + week checks) none this week no no n/a no 1-3 https://mobbin.com/screens/bd1913f9-cb73-4126-9c41-fb92dfe61b97
31 Liven (widgets) mental wellness single hero metric ("3 day" streak card) no ring HERO ("Look at you go!") ring today no yes (+ "Pause, notice, name it") n/a no 1-3 https://mobbin.com/screens/30e09a65-4b59-4fea-a70b-82f2f6e04545
32 Gymshark Training (66 challenge) fitness/habits checklist with progress header ("DAY 3/66") no yes (3 of 66 day dots) day-counter as hero none today no yes (SEE MY PROGRESS) n/a no 1-3 https://mobbin.com/screens/7f0eef36-d323-49a3-a7b0-ae3be548cc16
33 Alma habits single hero metric (streak "3") no yes ("Track one item to keep your streak" bar) HERO none today no yes (Record) prompt to track today no 4-8 https://mobbin.com/screens/ea9f1fd5-652e-4cb3-afb6-7a6a30e53d78
34 timespent (Arcs) habits list (habit arcs + week dots) no no badge ("3 days Days Active") calendar dots this week no no n/a no 4-8 https://mobbin.com/screens/c49184d7-4dc7-4f49-b7df-cce7563bc829
35 MacroFactor (Habits) nutrition single hero metric (60% ring) no (rate, not composite) yes (ring) badge ("13 days" longest/current) ring + yearly heatmap historical (month/year) no no n/a no 1-3 https://mobbin.com/screens/ee7446c3-51b7-49c8-ac12-ce4a878af742
36 Yazio nutrition single hero metric ("0 Day Streak") no yes (milestone Day 0/3 bar) HERO none today no yes ("I'm Committed" + "Track food") placeholder prompt ("Track a food to kick off your streak!") greyed flame for 0 4-8 https://mobbin.com/screens/a1866274-9fc1-4c95-89b1-db0d40ff68af
37 Anything habits list (checklist) no yes ("0/5 completed" bar) badges ("0 day streak" per habit) none today no + Add Habit zeros + Add Habit no 4-8 https://mobbin.com/screens/5d0e3b4b-a4a5-4e4d-b969-7577157db613
38 pliability fitness/recovery grid of stat cards (Trophy Case 0/2/2) no no secondary (current/best streak labels low) calendar heatmap historical (monthly) no no empty trophy slots no 4-8 https://mobbin.com/screens/e51f880b-c434-4beb-9fd8-8deb9306f769
39 Bloom (celebration) wellness single hero metric (ring "1 DAY") no week circles HERO ("You're on a roll!") ring today no yes (Continue) n/a no 1-3 https://mobbin.com/screens/177c6522-6829-49a3-8ede-fddd53c7f2df

Query 4 — "health app dashboard with daily metrics like sleep and heart rate" (iOS, 13 screens, 13 new; running unique n=52)

Note: several apps repeat from Query 1 (Ultrahuman, Bevel, Fitbit, Google Fit, Withings, Cal AI, MacroFactor) but with different screens; screen IDs are unique. App-level duplication is noted in the summary caveats.

# App Category Structure Composite score Goal progress Streak Chart Timeframe Greeting CTA Empty state Neg. framing Density URL
40 WHOOP health/wearable grid of stat cards (sleep planner + health monitor row) no (on this tab) no none none today/tomorrow no no "Data not found" + locked assessment cards no 1-3 https://mobbin.com/screens/13f61703-ee24-4062-b70b-e0dae30d3a0f
41 Ultrahuman (sleep) health/wearable single hero metric ("84 Sleep Index") + charts YES (Sleep Index 84) no none bar + line day view (latest) no no n/a no 4-8 https://mobbin.com/screens/e2b0a4ea-2c6d-4319-8f6d-96feab329e02
42 Bevel (strain) health list of stat cards (HR zones + trends) YES (Strain Score 72%) no none line sparklines today + trend no no n/a "Above normal" flags (blue, neutral) 9+ https://mobbin.com/screens/4398dbfe-241b-4880-b6ef-9eafaab69861
43 Fitbit (sleep day) health single hero metric (ring "1h 47m Sleep") + 3 mini rings no yes (rings, "0 of 6 Mindful days") none ring today no no zero rings no 4-8 https://mobbin.com/screens/718d303d-1979-4a8b-bffe-7557f4756643
44 Google Fit (trends) health list of stat cards no no none 7-day mini bars historical (last 7 days) no no "No recent data" (bedtime card) no 4-8 https://mobbin.com/screens/f057b93f-92b9-45e6-b867-51042d40ff1a
45 Pillow sleep list of stat cards (each with chart) no no none bar historical (week) no no placeholder prompt ("Record sleep for at least 5 days...") "Mixed" mood neutral 4-8 https://mobbin.com/screens/cae1ceff-9e9c-4999-bee6-3e7cbd646d93
46 Eight Sleep sleep list of stat cards + bar chart no in-range targets (±30m) none bar today + week no no n/a YES (red "Out of range" dots) 9+ https://mobbin.com/screens/2424533e-d3a6-43fd-846c-b360ce3272dc
47 TIDE sleep/wellness list of stat cards YES (Sleep Efficiency 95% rated "Excellent") bar as % none bar today default + 7/30d rows no no "Unrated" regularity green positive rating 4-8 https://mobbin.com/screens/ed035943-bea9-40eb-84c2-4cacd4e85caa
48 Withings Health Mate (2) health list of stat cards no yes ("17 % Goal" steps) none mini bar latest/today no no n/a no ("Normal" tag) 4-8 https://mobbin.com/screens/72f11245-eb96-405a-be2a-91b05ce7b01c
49 The Outsiders training single hero metric (Training Load Ratio 0.83 "OPTIMAL") YES (ratio with rating badge) no none line sparkline today no no prominent "No Data" cards (3 of 5 metrics + sleep) green OPTIMAL (positive) 4-8 https://mobbin.com/screens/1500b341-0f28-455d-8571-b9eb6af8d26c
50 Cal AI (progress) nutrition chart-first (weekly stacked calories bar) yes-adjacent (BMI 22.8 rated "Healthy") no none stacked bar this week no (motivational banner) no n/a green Healthy (positive) 4-8 https://mobbin.com/screens/e1299a34-2bd7-4819-a90f-f29e4094fd7b
51 MacroFactor (dashboard) nutrition 2-4 stat-card grid no yes (Calories/Protein 54% bars) none line + stacked bar today/recent no Explore All n/a no 9+ https://mobbin.com/screens/3057b127-006f-4b0e-9a88-9cc272f992be
52 Opal screen time list of stat cards (metric + rating meter each) no (Opal Score referenced above fold, cut off) meter bars vs AVG none meter/bar today no no n/a YES (red "Short"/"Early"/"Late" ratings) 4-8 https://mobbin.com/screens/b662feae-1b4c-4bf1-84bf-65c660f8dcf4

Query 5 — "language learning app home screen with lesson path and progress" (iOS, 12 screens, 12 new; running unique n=64)

Note: learning apps use a distinct home-structure: the vertical lesson path/map. Coded as structure "lesson path" (subtype of list/feed). "Timeframe" is mostly n/a for these — the unit of progress is the curriculum, not the calendar.

# App Category Structure Composite score Goal progress Streak Chart Timeframe Greeting CTA Empty state Neg. framing Density URL
53 Duolingo language lesson path score-based ("Your French Score is 11") yes (score bar 11 -> 12) badge (flame 8, top bar) progress bar n/a (curriculum) no current node = implicit CTA greyed locked path no 4-8 https://mobbin.com/screens/96eb27fc-8ee5-44e1-91a0-d39d70415767
54 Mimo coding lesson path no yes (course ring 58%) badge (flame 2, top bar) ring n/a no highlighted current node locked nodes no 1-3 https://mobbin.com/screens/e466340b-80ce-4a91-b557-14d55afcf4c9
55 Liven (journey) mental wellness lesson path no implicit (done vs locked nodes) no (lightning counter) none n/a no current node locked nodes no 1-3 https://mobbin.com/screens/d98bf80c-9d46-45c6-833d-d0baef1b2e1d
56 Brilliant STEM learning lesson path no node rings banner ("Streak extended!") ring nodes n/a no YES (bottom-sheet "Start") greyed nodes no 1-3 https://mobbin.com/screens/ec3fe703-fe07-489e-92a5-45eb5b3d4720
57 Life Reset habits/learning lesson path no yes (completed nodes + bar) none none n/a no no n/a no 1-3 https://mobbin.com/screens/0d8849b9-6253-472b-9067-2b5f40c648b8
58 Duolingo ABC kids literacy lesson path no implicit none none n/a no current node locked nodes no 1-3 https://mobbin.com/screens/7599d3b5-26c2-466e-98a3-2687ac207c95
59 Ahead emotional skills lesson path (journey map) no yes (13% course bar) badge (flame 1) progress bar n/a no numbered next step greyed future steps no 1-3 https://mobbin.com/screens/2f0ce7b1-a8cd-4839-bd45-37d505e08e3e
60 Kit kids finance ed lesson path (game map) no implicit (checked stops) none none n/a no current node n/a no 1-3 https://mobbin.com/screens/ccfc2094-3ae7-4d12-a8a6-1dc25dfcaa32
61 Speak language lesson path (bubbles) no "Check your progress" node badge (flame 0, top bar) none n/a no current node ("Welcome!") greyed future bubbles no 1-3 https://mobbin.com/screens/a7b59b62-1a06-49b9-b386-5508bbfe97af
62 GoHenry kids finance ed grid of content cards (levels + missions) no mission counts per topic none none n/a no "Motivate [child] to learn" prompt n/a no 1-3 https://mobbin.com/screens/9bcd500f-f446-492e-8af1-1a50702b6db5
63 Alan anti-stress learning lesson path no implicit (checked tasks) none none n/a no yes ("See task" buttons) n/a no 1-3 https://mobbin.com/screens/d872b883-aa94-45b5-aa60-3c57bd22bb6b
64 Uxcel Go design learning lesson list/path no implicit (checks + locked test) no (lightning 1) none n/a no YES ("Start" tooltip on current lesson) locked level test no 1-3 https://mobbin.com/screens/dba87d9e-9955-49be-be73-686477e601ee

Query 6 — "analytics dashboard with charts and key metrics overview" (web, 12 screens, 12 new; final unique n=76)

# App Category Structure Composite score Goal progress Streak Chart Timeframe Greeting CTA Empty state Neg. framing Density URL
65 Contra freelance SaaS stat-card grid + lists no no none area sparklines last 30 days no Share profile / Share services skeleton rows + coaching copy no 4-8 https://mobbin.com/screens/dca29be6-a238-4493-abfa-e34071e4eee1
66 Dub link analytics chart-first (stat row + large area chart) no no none area/line last 24 hours no no flat-line zeros no 1-3 https://mobbin.com/screens/0f402d92-dce8-492d-b795-9f428b7fd16b
67 Google Analytics web analytics 2-4 KPI row + line chart no no none line + realtime bar last 7 days + realtime module no no n/a comparison dashes (neutral) 4-8 https://mobbin.com/screens/70fbd62f-42ba-42a6-ac3b-e2c297b0c080
68 Fresha booking SaaS list of stat+chart cards no no none bar + line w/ comparison series historical range vs comp period no View report links n/a 0% change chips (neutral), up/down arrows 9+ https://mobbin.com/screens/0882a9ac-c0b5-4649-ba28-f94bfafbc680
69 Mixpanel product analytics grid of chart cards no no none number + funnel bars + sankey Today default (range toggles) no no n/a YES (red -25% badge, red drop-off %) 9+ https://mobbin.com/screens/5e11ed1d-ede3-4aab-bb71-6a9a379679a5
70 Wix site analytics KPI stat row + charts + map no no none line sparklines + map last 30 days vs previous no Ask Analytics AI "No visitors at the moment" realtime card no 4-8 https://mobbin.com/screens/ddb749b0-c243-4272-91bb-1e0ceb702123
71 Hashnode docs SaaS 2-4 stat row + bar chart no no none bar last 7 days no no n/a no 4-8 https://mobbin.com/screens/731d15b9-2f2d-4f89-82fe-b36dac0a66e8
72 Lovable site builder 5-KPI row + line chart + tables side panel has 7.5/9.5 site score (AI review, not analytics) no none line + bar rows last 7 days no no n/a no 9+ https://mobbin.com/screens/cd428f5f-6760-4e0d-803a-bc4fd150ffc2
73 Ghost publishing chart-first (hero stat + large line chart) no no none line + donut 30 days no no n/a green +100% (positive) 4-8 https://mobbin.com/screens/58585b72-748a-47b2-90c3-179e92a963d4
74 Glide internal tools 2-4 stat row + charts no no none stacked bar + multi-line year (historical) no no n/a no 4-8 https://mobbin.com/screens/9b9c8d31-6c35-4c38-94d8-49c42d1577f5
75 Better Stack monitoring chart-first (response-time chart + availability table) no no none multi-line today + 7/30/365d table rows no no "none" incident cells no (all healthy) 9+ https://mobbin.com/screens/a6fefc36-f40b-4a53-9bd9-f1199becd668
76 Navattic demo analytics grid of 6 KPI cards w/ sparklines no no none area sparklines date range vs previous period no Try a demo (upsell) 0-baseline sparklines 0% chips (neutral) 9+ https://mobbin.com/screens/5b908c10-a485-4dad-9030-37608f9b0c35

Summary

Final sample: n=76 unique screens (64 iOS consumer, 12 web SaaS) across fitness/running (13), finance (13), habit/streak surfaces (13), health/sleep/nutrition (13), learning (12), web SaaS analytics (12). Zero duplicate screen IDs; 7 apps contribute 2 screens each (different surfaces).

Counts table

Dimension iOS (n=64) Web SaaS (n=12) Overall (n=76)
Above-the-fold structure
— single hero metric 22 (34%) 0 22 (29%)
— 2-4 stat-card grid/row 11 (17%) 7 (58%) 18 (24%)
— list/feed of stat cards 17 (27%) 2 (17%) 19 (25%)
— chart-first 3 (5%) 3 (25%) 6 (8%)
— lesson path (learning-specific) 11 (17%) 0 11 (14%)
Composite 0-100-style score visible 5 clear + 4 borderline (8-14%) 0 (Lovable's 7.5/10 is an AI side panel) ~9 (12%)
Goal-progress UI (rings/bars/X of Y) ~36 (56%; 22 explicit numeric, rest rings/meters/path) 0 (0%) ~36 (47%)
Streak visible — any 18 (28%) [6/51 = 12% excl. streak-query batch] 0 18 (24%)
— hero position 9 0 9
— badge/secondary 9 0 9
Primary chart above fold ring 14 / bar 12 / line-sparkline 9 / donut 2 / none ~27 line-area 9 / bar 2 / donut 1 / none 0
Default timeframe = today/now ~30 of 53 with a timeframe (57%) 2 of 12 (17%: Mixpanel today card, Wix realtime) ~42%
Personalized greeting/name 2 (3%) 0 (0%) 2 (3%)
Clear single CTA above fold 12 explicit (19%); +6 path current-node = 28% 0 core-task CTAs (only share/upsell links) ~18 (24%)
Empty state seen: placeholder prompt vs blank prompt 13 / blank-zeros 8 prompt 2 / blank 3 prompts win ~60/40
Negative/red framing visible 4 (6%) 1 (8%) 5 (7%)
Density 1-3 numbers 27 (42%) 1 (8%) 28 (37%)
Density 4-8 30 (47%) 6 (50%) 36 (47%)
Density 9+ 7 (11%) 5 (42%) 12 (16%)

Findings (prose)

  1. The "single hero metric" is a consumer-mobile pattern, not a dashboard universal. 34% of iOS home screens lead with one dominant number (streak, balance, ring); not one of the 12 web SaaS dashboards does. SaaS leads with a KPI row (58%) or a chart (25%) — the web default is "4-6 equal cards + time series," the mobile default is "one number you feel."
  2. Goal-progress UI is near-universal in consumer, absent in SaaS. ~56% of iOS screens show rings, bars, or "X of Y" — and if you include lesson-path completion it approaches 70% — versus 0% of SaaS analytics dashboards. Consumer apps frame data as progress toward a target; SaaS frames it as observation over time. This is the single sharpest divide in the sample.
  3. Streaks are a category strategy, not a general one. Streaks appeared on 0 of 13 finance screens and 0 of 13 health/sleep screens, but on 5 of 12 learning screens (flame counters in the top bar) and dominated habit apps (hero placement: Duolingo's 846-day flame, Yazio, Alma, Bloom, Peloton's "1 week streak" greeting). When present, hero-vs-badge split exactly 50/50 — habit apps make the streak the product; learning apps wear it as jewelry.
  4. "Today" is the consumer default; "last 7/30 days" is the SaaS default. 57% of iOS screens with a timeframe open on today/now (fitness/health especially), while 10 of 12 SaaS dashboards open on a historical window with a comparison period. Only finance splits internally: balances are "now," spending reviews are monthly.
  5. The personalized greeting is nearly extinct. Despite being a staple of dashboard tutorials and UI kits, only 2 of 76 screens (3%) show "Hey [name]"-style greetings (Peloton, Ubank). Top apps spend that pixel row on data, not pleasantries.
  6. Nobody wants to show you red. Only 5 of 76 screens (7%) use negative/red framing (Quicken's "-$320 Over spent," Toss's red "spending more than last month," Eight Sleep's out-of-range dots, Opal's "Short/Early/Late," Mixpanel's -25%). Even zero-data states get neutral gray, and SaaS change-chips at 0% stay neutral. Positive-only framing (green arrows, "Excellent," "OPTIMAL") outnumbers negative roughly 3:1.
  7. Above-the-fold number count clusters at 4-8, and SaaS overloads. 47% of all screens show 4-8 distinct numbers; iOS is bimodal (42% show just 1-3) while 42% of SaaS dashboards show 9+ numbers before scrolling. The composite score (readiness/sleep-index style) exists almost exclusively in wearable-adjacent health apps (~30% of that category), where it acts as compression for 9+ underlying metrics.
  8. Learning apps solved "what do I do next" better than anyone. The lesson path (11 of 12 learning screens) makes the primary CTA structural — the next node — while only 19% of other iOS home screens and 0% of SaaS dashboards surface a clear next action. SaaS "CTAs" above the fold were exclusively share/upsell links, never the user's core task.

Exemplars

Strong: 1. Google Fit — https://mobbin.com/screens/7e924261-2c27-4453-b9ca-43ff67a60c4e — one dual-value ring (Heart Points + steps) compresses the whole day, goal progress inherent in the ring, today-default, 4-8 numbers with clear hierarchy: hero, then three secondary stats, then cards. 2. Fitbit (Today, sleep hero) — https://mobbin.com/screens/718d303d-1979-4a8b-bffe-7557f4756643 — textbook hierarchy: one large hero ring, three mini rings beneath ("0 of 6" goal framing), everything today-scoped; density stays readable even in a near-empty data state. 3. Mimo — https://mobbin.com/screens/e466340b-80ce-4a91-b557-14d55afcf4c9 — course ring (58%) + highlighted current node = progress and next action in one glance; total above-fold numbers: 3.

Weak/overloaded: 1. Cleo (Budget) — https://mobbin.com/screens/d1d13fc6-5d1c-4250-8b9a-f9b668d06428 — 9+ competing numbers ($326 in / $188 out / $1,274.87 / $1,463 / $115.90/day / $18.63 / $169.50 / 52% / $0 of $16) with no single anchor metric; three different mental models (cashflow, budget-remaining, category spend) stacked above the fold. 2. Fresha (Sales dashboard) — https://mobbin.com/screens/0882a9ac-c0b5-4649-ba28-f94bfafbc680 — every stat repeated with a "0%" comparison chip (11+ chips visible), channel breakdown rows of $0.00 values not collapsed, so real signal ($1,285, 26 appointments) drowns in zero-noise. Good before/after candidate: collapse zero rows, keep one comparison per card.

Methodology note (honest limits)

  • Curated, design-forward sample: Mobbin indexes top/polished apps; percentages describe what leading products do, not the app-store average.
  • Relevance-ranked retrieval: each query surfaces screens matching its wording, so batch-level stats inherit query bias (e.g., the streak query guarantees streak UI; streak prevalence is therefore reported per-category and with that batch excluded). Structure/density/greeting/framing dimensions are less query-correlated and travel better.
  • Screen-level, not app-level sampling: 7 apps contribute 2 different screens; a few captures are widgets galleries, overlays, or celebration modals rather than strict home tabs (flagged inline). Several captures show demo/zero-data accounts, which made empty-state auditing possible but slightly deflates density counts.
  • Judgment calls: "above the fold" estimated from full-screen captures; composite-score vs plain-percentage and hero-vs-grid boundaries involve coder judgment (borderline cases noted inline).
  • n=76 unique screen IDs; web subsample (n=12) is small — treat iOS-vs-web contrasts as directional.