DiscoveryBrain · Inquiry 004Competitive teardown17 Aug 2026

Product surface

Ladder · A1

Screens, information architecture, and design tokens sampled from pixels. Also: why the screenshots cannot be trusted as current.

A16,530 words~30 minchapter 3 of 6
inquiry004-ladder-teardown
areaproduct-surface
typefinding
sensitivitypublic
created2026-08-16
last_validated2026-08-16
reconciles
statusdraft

Source legend

Only sources actually opened for this Finding.

  • [AS] Apple App Store metadata. On-disk pull assets/appstore-us.json, plus live https://itunes.apple.com/lookup?id=1502936453&country={us,gb,ca,au,de} (2026-08-16).
  • [SS] The 10 official App Store screenshots on disk, assets/screenshots/appstore-01.pngappstore-10.png, read as images and pixel-sampled with PIL for colour values.
  • [IB] Ilia's first-hand field notes (SCOPE.md).
  • [WEB] Ladder-owned web properties: https://joinladder.com, https://joinladder.com/pricing, https://www.joinladder.com/team/limitless, https://www.joinladder.com/sitemap.xml, https://www.joinladder.com/robots.txt, https://www.joinladder.com/app/workout/today, https://www.joinladder.com/support, https://shop.joinladder.com/pages/ladder-app-referral-gift-cards, https://teams.joinladder.com/old-home and https://teams.joinladder.com/programs/origin-deprecated (both legacy, © 2020).
  • [REV] App Store customer reviews, 500 unique entries (versions 4.10.2 and 4.11.0), pulled 2026-08-16 via https://itunes.apple.com/us/rss/customerreviews/page=1..10/id=1502936453/sortby=mostrecent/json.
  • [PRESS] https://techcrunch.com/2025/10/27/workout-app-ladder-launches-nutrition-tracking-experience and Apple's editorial story https://apps.apple.com/us/iphone/story/id1823321534.
  • [3P] Third-party, secondary — treat as reported, not primary: https://ladder-strength-training-plans-ios.soft112.com/ (a mirror of Apple's release notes, versions 3.8.2 → 4.10.2; the text reads verbatim but the mirror is not Apple), https://www.garagegymreviews.com/ladder-app-review (2025-03-26), https://www.bustle.com/wellness/ladder-app-review (2024-02-02), https://www.outdoorsynomad.com/ladder-fitness-app-review/ (2026-02-05), https://www.corahealth.app/compare/ladder (2026-04-16, discounted, see §3).

No [VID] source is cited: video walkthroughs could not be evidenced frame-by-frame with the tools available, so nothing is claimed from them.


1. What we found

1.1 The screenshot set is a ~2024 artefact. Read everything else against that.

This has to come first, because it changes how the whole Finding is used.

  • The screenshot canvas is 1242×2208 — Apple's legacy 5.5-inch (iPhone 8 Plus) asset slot, 16:9. The device mockups drawn inside the images are iPhone 14/15-era frames with Dynamic Island cutouts. [SS] [AS]
  • The same 10 files are served in every storefront checked (US, GB, CA, AU, DE — identical asset filenames, zero iPad screenshots anywhere). One global marketing set, no localisation. [AS]
  • Award laurels in the cover image read 2024 Women's Health and 2024 CNET, while the listing description claims Apple 2025 App of the Year Finalist, Women's Health 2026 Best Overall, CNET 2026 Best Strength Training App. [SS] [AS]
  • In-app dates inside the screenshots: workout detail says "Monday, August 21" (21 August was a Monday in 2023); the chat date divider says "April 1, 2024"; the movement-history table shows 10/09–10/10 on a Mar–Oct chart. [SS]
  • Nutrition appears nowhere in the screenshots and nowhere in the App Store description — yet Ladder Nutrition shipped in v4.0.0 on 2025-10-26 and has since received ~20 releases of feature work. [3P] [PRESS] [AS]
  • v3.8.2 (Sep 2025) release note: "Improvements to the Liquid Glass experience in workout" — the shipping app uses iOS 26 Liquid Glass materials in the workout surface. The screenshots predate that language. [3P]

Verdict: the screenshot set documents roughly the mid-2024 app. It is still the best available high-fidelity record of Ladder's IA and design system, but it is a historical snapshot. Below, every screen is labelled either 2024 snapshot (seen) or current, changelog-only (evidenced but never seen). Ladder's own store listing being this stale is itself a finding: they are not competing on store-page conversion.

1.2 Navigation model — a 5-tab shell (2024 snapshot)

Exhibit 02 · Home · player · Journal Week strip with completion ticks and Change Teams; the player with floating Cheers; the Journal showing Total Volts and the Effort/Reps/Weight log.

Tab bar, left to right, confirmed twice: Workouts | Chat | Teams | Profile | Rewards. Active tab = white icon + white label; inactive = mid-grey. Glyphs: a barbell-squat pictogram, a messenger-style circle, a four-dot cluster, a person-in-circle, a gift box. [SS-02] [SS-03]

Only Workouts, Chat and one drill-down reachable from Teams are actually shown. Profile and Rewards are never shown → §4. Whether the bar is still five tabs after Nutrition shipped is unknown → §4, and it is the single biggest IA gap in this Finding.

Push/modal split, as evidenced:

Workouts (tab root = Home)
├── hero card → Workout detail            [pushed, full-screen, own nav bar]
│   └── (same scroll) block/movement preview
│       ├── movement row expand           [inline accordion]
│       ├── "View History" → Movement analytics   [pushed]
│       └── "START WORKOUT" → In-workout player   [full-screen, takeover]
│           └── bottom sheet = Journal    [draggable sheet, in-context]
├── "Change Teams" → program browse grid  [modal-ish, also under Teams]
│   └── program card → Program detail     [modal sheet over autoplaying video]
└── Flex workouts entry point             [current, changelog-only]
Chat   → team channel → thread            [pushed]
Teams  → program browse grid (root unproven)
Profile  — not evidenced
Rewards  → "Ladder Wallet"                [named by Ladder's shop site]
Onboarding / music-connect step           [modal, ✕ dismiss, own progress rail]

The workout flow starts on the Home hero card and ends in the Journal, which is reachable both as the in-workout bottom sheet and as a post-workout editable screen — so logging is not a separate destination, it is the tail of the workout. [SS-02] [SS-06] [SS-07] [3P]

1.3 Home (Workouts tab root) — 2024 snapshot

Exhibit 02 · Home · player · Journal Week strip with completion ticks and Change Teams; the player with floating Cheers; the Journal showing Total Volts and the Effort/Reps/Weight log.

Top to bottom [SS-02] [SS-03]:

  1. Greeting row. Circular avatar photo wrapped in an open lime progress arc (~60% sweep, thick stroke), with a dark rounded chip hung bottom-right showing a lime number + lime ⚡ ("4⚡"). Then "Good Morning, {FirstName}" on two lines, bold sentence case, and a grey sub-line "You're crushing it this week!".
  2. Week strip. Seven day tokens. Completed = filled lime circle with a black check. Today = lime-outlined circle with the day initial in white. Future = bare white/muted letter, no circle. (SS-02: four done, F is today. SS-03: three done, T is today.)
  3. Team row. Current program name at left — rendered "LIMITLESS" in caps in SS-03 but "Define" in title case in SS-02, i.e. the casing is not normalised — and a lime text link "Change Teams" at right.
  4. Hero workout card. Full-bleed photograph; a dark translucent pill chip top-left with the day name ("Thursday", "Friday"); the workout name in heavy condensed all-caps plus an emoji ("PEACH PALACE 🔥", "STRENGTH X PILATES"); a meta line "60 min • Lower Body Strength"; then a three-icon action row — filled heart (save), paper-plane (share), and a three-rounded-rectangle glyph (two small squares stacked left, one tall bar right) carrying a lime count badge ("1582", "720"). Neighbouring cards peek at both edges → the week is a horizontal carousel. The badge's meaning is not evidenced → §4.

Current-era additions to this screen, changelog/review-only: a Flex button on Home (v4.4.0 release note fixes "the flex button on the home screen") [3P], and a "smart priority system" surfacing the top three priority workouts each week [3P], echoed by a reviewer: "it's nice to have several workouts to choose from each week with guidance about which ones to prioritize" [REV].

1.4 Workout detail + block preview — 2024 snapshot

Exhibit 06 · Workout preview Named blocks with emoji. Expanded, each movement shows the per-set table: Sets, Effort %, Reps, Previous, and a per-set coach audio cue.

[SS-05] [SS-06]

The detail and the preview are one scrolling screen, with the primary CTA pinned at the seam between them.

  • Header: full-bleed, autoplaying coach intro video (coach talking to camera in Ladder kit). Nav chrome floats on top: a circular translucent back chevron left, a countdown "01:08" centred (video time remaining), a circular translucent gear right. That gear is the only settings entry point anywhere in the set; its sheet is unseen → §4.
  • Title block over a bottom scrim: date "Monday, August 21"; name "PYTHON PUMP 🐍"; equipment line "Cable Machine • Barbell • Dumbbells".
  • Four labelled state actions: saved (heart) · schedule (calendar) · share (paper-plane) · downloaded (check). Note the labels name the state, not the action — a small but distinctive choice. downloaded implies offline caching; a 2026 reviewer contradicts that → §3.
  • Primary CTA: full-width lime pill, black caps, "START WORKOUT".
  • Block list begins immediately below: "Light It On Fire & Let It Rip — 10 min — Barbell • Dumbbells".

The dedicated preview screen [SS-06] has its own nav bar (back ‹, centred workout name in condensed caps + emoji, speaker-slash mute right) and repeats this pattern:

  • Block header row: name + emoji ("Bench Blaze 🔥", "high TA low 🤤"), equipment sub-line ("Barbell", "Cable Machine"), duration in lime at the right ("2 min").
  • Movement row: 16:9 video thumbnail with a play glyph; set count as a lime multiplier ("4x Incline Dumbbell Press"); sub-line "45 sec • Reps 12, 8, 8, 8"; chevron to expand.
  • Expanded per-set table: Sets | Effort | Reps | Previous | Coach. Effort is a coloured percentage. Previous carries the last logged weight ("60 lb") — history is surfaced before the set, not after. Coach is a speaker glyph present on some rows only: an audio cue attached to that specific set.
  • Footer: lime pill "START WORKOUT", plus two outlined secondary pills — "Start Here" (jump into the workout at this movement) and "View History" (→ §1.6).
  • This screen's ground is pure #000000, whereas Home, Journal and the analytics screen are #0E0E0E. Two blacks in one app.

Current-era: full-screen movement preview with closed captions, and a larger video area when previewing a movement (v4.10.1, v4.1.3). [3P]

1.5 In-workout player — 2024 snapshot

Exhibit 02 · Home · player · Journal Week strip with completion ticks and Change Teams; the player with floating Cheers; the Journal showing Total Volts and the Effort/Reps/Weight log.

[SS-02] [SS-07]

  • Top-left: "33:50 • 35%" / "28:54 • 48%" — remaining time • percent complete.
  • Under it: a full-width segmented progress bar (~9 segments) = the workout's blocks/movements. White = done/current, grey = pending; SS-02 shows a lime dot marking the live position.
  • Top-right chrome: in SS-02, the Spotify mark plus a two-stacked-toggles glyph (SF-Symbol switch.2 shape). In SS-07, a single rounded-square-with-bands glyph. Given the changelog line "Fixes an issue changing the audio slider in workout" (v4.4.0) and "persistent music button" (v4.10.1), the mixer reading is plausible but not proven → §4. [3P]
  • Coach avatar with a lime ring, upper right below the bar — the coach whose voice is running.
  • Full-bleed looping demo video of the current movement (real coach, real gym).
  • Floating 🔥 emoji rising up the frame. These are live cheers from teammates, not decoration: "I love seeing cheers pop up while I'm working out" and "I can send cheers to people currently working out" [REV]. Apple's editors describe teammates sending encouragement with "animated confetti and sound effects" [PRESS]. So the player is a presence surface: other people can see you are training right now.
  • Bottom control trio: reps (number + grey "reps") · a semicircular tick-gauge timer (lime ticks for elapsed, grey for remaining, "00:28" centred) · weight (number + unit + grey "weight"). Apple calls these "haptic-enabled dials" for real-time rep logging. [PRESS]
  • Bottom sheet with a grab handle (#232323): movement name left, set position right — "Set 1 of 3" in SS-07 (index in lime), but "2 of 4" without the word "Set" in SS-02. The Journal lives in this sheet (v4.5.2 fixed "the journal disappearing in workout"). [3P]
  • Current-era: a user-toggleable "screen flash setting for movement transitions" (v4.10.1) [3P]; coaching voiceover can be toggled on/off [3P]; Liquid Glass materials since v3.8.2 [3P].

This corroborates [IB] note 1 (tracking navigation is convenient) and note 2 (voice accompaniment) — the tracking controls are three fat thumb targets and nothing else.

1.6 Journal and movement analytics — 2024 snapshot

Exhibit 08 · Exercise analytics Per-lift Total Volume, Total Reps, Avg Weight and PR, a volume chart, and colour-graded Effort history. Plus the Apple Watch companion.

Journal [SS-02]. Title "Journal" left; "Total Volts ⚡1,450" right. Per-movement card: video thumbnail, block sub-label ("S3 Push Pull All Day"), movement name, equipment picker ("Dumbbells ⌄"). Then a table Sets | Effort | Reps | Weight ⌄ | Logged, where Logged is a lime filled checkbox with a black check when done and an empty rounded square when not, and Weight carries a unit dropdown. It is, deliberately, a spreadsheet rendered in the dark.

Current-era Journal: editable after the workout, supports swapping exercises, adding sets and notes [PRESS]; Auto Log auto-checks bodyweight movements or all movements (v4.4.1); edit-after-swap fixes (v4.5.3) [3P]. Swapping is the most-praised customisation in reviews: "swap ability to customize workouts to your equipment" [REV].

Movement analytics [SS-08], pushed from "View History". Title = movement + equipment in parentheses: "Romanian Deadlift (Barbell)". Then:

  • Four stat tiles on #202020, lime values over grey labels: Total Volume 4.9K lb · Total Reps 187 · Avg Weight 60 lb · PR 100 lb.
  • A volume-per-session line chart: lime line, lime→transparent area gradient, a dot per session, y-axis 1k–5k lbs, x-axis Mar–Oct, and a dashed lime vertical marking the newest point. The shape tells a plateau-then-step story, which is exactly the story the product wants to sell.
  • "History" with a "Latest ⌄" sort control; table Date | Effort | Reps | Weight, rows grouped by session, with weight printed only on a group's first row.

Current-era: plateau detection — "we'll proactively let you know when it seems like you've hit a plateau with a movement", mutable per movement (v4.10.1/4.10.2) [3P], plus "updates to your movement history" (v4.10.2).

1.7 Chat — 2024 snapshot

Exhibit 10 · Team chat Threaded replies, reaction counts, Coach Pins, and a coach posting video into the channel.

[SS-10]. Chat is the only surface with its own accent colour.

  • Purple-gradient header fading into black: back ‹, circular team/coach avatar, channel name = the team name ("Body & Bell"), and a dark pill button "📌 Coach Pins" with lime label at the right.
  • Date divider chips ("April 1, 2024"). Message = avatar + author name + timestamp + body on the black ground. Coach messages carry a lime Ladder-mark badge next to the name — an in-house verification mark. Coach video messages render inline with a play overlay.
  • Reaction chips under a message (emoji + count: 🎉 6, 👏 10, 💪 15, 🔥 18); chips you reacted to are filled purple; a trailing "+" chip adds a reaction.
  • Threads: "8 • View Thread ›" in lime, with a lime L-shaped connector drawn from the parent message.
  • Your own message: purple gradient bubble. A quote-reply renders the quoted author's avatar, name and text in muted grey directly above your bubble.
  • Composer: circular image-picker button + rounded "Type a Message ..." field. A floating circular white chevron jumps to the latest message.

Current-era: chat search (v4.2.0/4.2.1, polished 4.2.2/4.2.3), unread badge on the chat tab (4.0.6 fix), reactions fix (4.1.1) [3P]. Direct messaging with your coach also exists [3P bustle], and a post-workout selfie wall with "cheer on" is reported [3P outdoorsynomad].

1.8 Teams / program browse and program detail — 2024 snapshot

Exhibit 04 · Team picker Coach cards framed by physique outcome. Detail sheet carries Skill Level, Workout Style, Suggested Equipment, Designed For and Certifications.

[SS-04]

  • Browse: a 3-column grid of program cards, each a portrait photograph with "Coach {FirstName}" as a caption, the program name in heavy condensed caps, and a one-line physique/goal tagline. Visible: LIMITLESS, FORGED, EVOLVE, RESILIENT, ICONIC, MOVEWELL, ELEVATE, CREWS CONTROL, FORMATION. The card is the coach's face first and the programme name second — the unit of the catalogue is a person.
  • ICONIC (Coach Sarah), "Achieve an hourglass physique with glute-focused Strength" appears in neither the App Store's 20-programme list nor the 22 on joinladder.com today. The roster churns → §3.
  • Program detail: a modal sheet over a muted autoplaying video (back ‹ and a speaker-slash toggle float on the video). Header: "Coach Kelly" / "LIMITLESS" / "Build a muscular physique with athletic Strength x Conditioning". Then a dark spec card of icon + label + value rows: ⚡ Skill Level (Advanced) · Workout Style (Athletic Strength and …) · Suggested Equipment (Dumbbells • Barbell) · ◎ Designed For (a paragraph of prose) · Certifications. Primary CTA: lime pill "TRY LIMITLESS" — the CTA is templated on the programme name.
  • The public web mirror of the same object, joinladder.com/team/limitless, prints a different field set today: Coach, an all-caps tagline ("LIFT HEAVY, LOOK ATHLETIC, AND FEEL POWERFUL"), description, Skill Level, Average Workout Length (45–60 Minutes), Suggested Equipment, and a day-by-day Weekly Schedule (Mon Full Lower Body … Sun Rest) — with no "Designed For" and no "Certifications". [WEB] Either the field set changed or web and app render different projections of the programme object.

1.9 Onboarding — only one step evidenced

Exhibit 09 · Music onboarding Spotify or Apple Music, with a skip. Three-segment progress bar.

[SS-09]. A modal with a circular ✕ top-left, a 3-dash progress rail (all three dashes lime), a bold sentence-case heading "Connect your music to jam out during the workout.", two large outlined tiles (Spotify in brand green, Apple Music in white), and a muted "SKIP" at the bottom. Note the register shift: onboarding speaks in sentence case, content speaks in condensed caps.

The rest of the sequence — a quiz on demographics, goals, equipment, weekly time, and movement dislikes, then a team match, then a "welcome workout" — is reported but not seen [3P garagegymreviews] [3P bustle]. That is A3's territory; I did not evidence the screens. This corroborates [IB] notes 3, 5 and 6 without proving them.

1.10 Rewards and Profile — named, never seen

The only external handle on Rewards is Ladder's own shop page, which instructs:

"Open the Ladder App. Navigate to Shortcuts > Rewards > Ladder Wallet."

with gift cards "earned when you share Ladder with your Guest Pass Link, and your referral subscribes", a CARD ID redeemable at checkout in the Ladder Shop, and a $25 amount referenced. [WEB] This introduces a nav surface called "Shortcuts" that appears nowhere in the screenshots. joinladder.com/referral offers only a "Claim Free Guest Pass" CTA. [WEB]

Profile is evidenced only as "Ladder app profile and streak view" — a screenshot caption in a third-party review [3P garagegymreviews] — plus a Badges section for weekly streaks [3P], described elsewhere as carrying "seasonal challenges and personalized milestones" [3P outdoorsynomad], and weight/progress-photo tracking "Tracking macros, nutrition, weight including photos, workouts, goals" [REV].

Across 500 App Store reviews, the words "Rewards", "Volts" and "Coach Pins" never appear once. Streaks do: "My favorite feature is that it captures your 'streak' which makes me come back week after week to earn that higher number." [REV] Whatever Volts are, users do not talk about them. → §4.

1.11 Surfaces that exist now but appear in no screenshot

All [3P] release notes unless marked; none of these screens has been seen.

  • Nutrition (v4.0.0, 2025-10-26; [PRESS]). Log by search / barcode / photo / voice. "Daily Targets: Clear calorie and protein goals, with optional macro views." Later: smart log with context capture (4.9.0), Quick Log re-logging your last 10 items (4.3.x), food cart with multi-date logging for weekly meal planning (4.4.4), customisable meal times — timing, name and number (4.4.3), recipes created from URL / text / photo-AI / manual plus recipe sharing, barcode ingredients, a saved cookbook and logging by portions (4.1.0–4.2.3), a water tracker (4.4.1) with two-way HealthKit hydration (4.5.1), a weekly nutrition calendar you swipe between weeks (4.3.2/4.4.0), goals adapted for breastfeeding/expectant mothers (4.1.3). A protein mode and logging streaks, badges and reminders [PRESS]. It is free to all subscribers, and Ladder ran it as a cross-app play — "70% of testers said that they intended to switch calorie tracking apps" [PRESS]. Reviews confirm it landed: 14 of 500 recent reviews mention nutrition unprompted, e.g. "The macro tracking is very well done with best-in-class use of AI" [REV].
  • Flex workouts — an à-la-carte library outside your team's plan, with list view, filter, sort and "vibe search" (4.9.1–4.10.0), entry point on Home. Confirmed by a user: "If you want more training you can pick from a multitude of flex workouts that are in addition to your team" [REV].
  • Home-screen widgets (4.6.1, polished 4.6.2): Water — "Bottle-style Home Screen widget (small + medium) — pick your bottle size, log water with a tap, undo accidental logs"; Macros — "Daily macro progress (protein, carbs, fat) … in small or medium sizes"; Steps. A reviewer: "Having the widget on my Home Screen keeps me accountable" [REV].
  • iOS Share Extension — create a recipe from any web page: "tap Share > tap Ladder icon" (4.1.0).
  • Non-Apple wearable path (4.7.1/4.8.0): after a workout, import an existing workout from Apple Health, share a photo as proof of calories burned, or manually enter heart rate and calories.

1.12 Platform surfaces

Exhibit 08 · Exercise analytics Per-lift Total Volume, Total Reps, Avg Weight and PR, a volume chart, and colour-graded Effort history. Plus the Apple Watch companion.
  • Apple Watch — evidenced in the screenshot set itself and in supportedDevices (Watch4-Watch4) [AS] [SS-08]. The watch face shows: current movement name + clock, a semicircular lime tick gauge with a large timer (2:30), and BPM 89 / MAX HR 56% / CAL 210, plus a lime "ZONE 1" pill with a marker riding over four grey zone segments, and three page dots. Reviewers add control: view movement, timer and reps plus heart rate and calories, and pause / skip / rewind from the wrist [3P]. The watch uses the identical visual language as the phone — same lime, same gauge, same numeral-over-tiny-label hierarchy.
  • HealthKit — workouts to Health; macros to Apple Health (4.7.0); hydration two-way (4.5.1); weight and metrics pulled in (4.0.1). [3P]
  • Music — Spotify and Apple Music at onboarding [SS-09]; the Spotify mark persists in the in-workout chrome [SS-02]; an in-workout audio slider (4.4.0) and a "persistent music button" (4.10.1) [3P]. One reviewer claims YouTube Music sync — no other source supports it; treat as user confusion [REV].
  • Notifications — scheduled workout reminders ("you just schedule it ahead of time then when you get the notification, open the app and go" [REV]) and mutable plateau notifications [3P].
  • Live Activities / Dynamic Island / Lock Screenno evidence either way in the screenshots, the changelog mirror, 500 reviews, or press. Do not assume → §4.
  • Offline download — the 2024 workout detail shows a downloaded state action [SS-05], but a v4.10.2 reviewer writes: "Would be 5 stars if it had actually offline access, where I could download the workout and not have to worry about the no WiFi and limited service at the gym" [REV]. Contradiction → §3.
  • Web — a client-rendered web app at joinladder.com/app/workout/today serves a free Workout Of The Day; the HTML shell renders only chrome without JS, so its UI could not be evidenced. robots.txt additionally blocks /app/internal/, /internal/, /support/, /app/support/. [WEB]
  • iPad / Android — no iPad screenshots in any storefront [AS]; no Google Play listing for com.ladder.bootcamp (404); iOS-only per [3P garagegymreviews].
  • Availability — live ratings by storefront: US 180,865 · CA 22,693 · GB 14,156 · AU 9,315 · DE 628, all on v4.11.0 [AS]. English-only, but shipping worldwide.

1.13 Design system, measured

Exhibit 02 · Home · player · Journal Week strip with completion ticks and Change Teams; the player with floating Cheers; the Journal showing Total Volts and the Effort/Reps/Weight log.

Values below were sampled from the PNGs with PIL, not eyeballed.

Colour

Token Hex Where
Accent (the only one) #E6FF00 every CTA fill, all accent text, checks, rings, gauge ticks, chart line, stat values, count badges
Accent, alt export #E6FF0A SS-04, SS-06 — same token, different compression
Ground A #0E0E0E Home, Journal, program detail, analytics, chat
Ground B #000000 workout preview / block list
Surface 1 #202020 stat tiles
Surface 2 #232323 in-workout bottom sheet
Surface 3 #313131 chat composer field
Surface 4 #333333 avatar ⚡ chip
On-accent black text on lime is always black, never white
Marketing field #E6FF00#EEFF52 wash cover image only, black type

Chat-scoped violet — the one place the system breaks its own single-accent rule: own-message bubble gradient #7A39D6#593BE0; active reaction chip #533BE2; header wash ≈ #3D2A5D over black. Nothing outside Chat uses it.

Effort ramp — a semantic intensity scale, and the one place the system is internally inconsistent:

Screen 50% 70% 75% 80% 90% 100%
Journal [SS-02] #B982FF #5E77FF
Movement history [SS-08] #6CC1FF #FFE071 #FF9E02 #FF5349
Preview table [SS-06] #FEE070

The two screens do not agree on the low end (75% indigo vs 70% sky blue) → §3.

No light theme. "Looking at light text on a dark background means I can only use the app for brief periods of time. Can't justify the cost of membership if I can't really use the app due to the perpetual dark mode." [REV] Dark-only is a deliberate, and evidenced, accessibility cost.

Typography

  • Content display: a very heavy grotesque, all-caps, tight tracking, near-zero leading in multi-line settings. Used for marketing headlines ("GET STRONGER, WITH A PLAN."), workout names ("PEACH PALACE", "PYTHON PUMP", "PEC POWER"), programme names ("LIMITLESS", "CREWS CONTROL"). Exact family not identified → §4.
  • UI text: a separate bold humanist/geometric sans in sentence case ("Good Morning, Lauren", "Connect your music to jam out during the workout."). The register split is the point: the product speaks politely, the content shouts.
  • Numerals carry the hierarchy. Every data view is a big bold figure with a tiny grey unit and a tiny grey label beneath: "135 lbs / weight", "4.9K lb / Total Volume", "28:54 • 48%", "89 / BPM". The unit is always visually subordinate to the number.
  • Emoji are first-class content, not decoration. In workout names (PEACH PALACE 🔥, PYTHON PUMP 🐍), in block names (Bench Blaze 🔥, high TA low 🤤 — lowercase, coach slang), as chat reactions, and as the live-cheer particle. This is the single cheapest personality lever in the whole product: the naming voice is coach-authored and deliberately un-corporate.

Component vocabulary

  • Primary pill: full-width, fully rounded, lime fill, black caps label. Exactly one per screen.
  • Secondary pill: transparent fill, 1px grey stroke, small icon + grey label, used in side-by-side pairs ("Start Here" / "View History").
  • Circular translucent icon button for nav floating over media (back, gear, ✕).
  • Pill chip: dark translucent, white text — day label on the hero card, date divider in chat.
  • Count badge: lime rounded rect, black numerals, hung off an icon's corner.
  • Media card: full-bleed photo or video with a bottom gradient scrim carrying title, meta line and action row.
  • Icon + label action row where the label names the state ("saved", "downloaded") rather than the verb.
  • Spec-row list: small icon + label on one line, value beneath, stacked on a dark card (programme detail).
  • Stat tile row: four across, #202020, lime value over grey label.
  • Dark data table with a right-aligned lime checkbox column (Journal).
  • Progress, five different renderings: segmented full-width bar (workout position), semicircular tick gauge (timer, watch), circular arc (avatar), dash rail (onboarding), filled-circle-with-check (week strip). All lime.
  • Sheets: draggable grab-handle sheet (in-workout Journal), modal sheet over video (programme detail).
  • Rhythm: ~24px side gutters at 1242 wide (≈20pt); generous vertical air; hairline dividers between list rows; card radius ≈16–20pt; pills fully rounded; thumbnails ≈8pt radius, 16:9.

Motion and feedback (evidenced, not directly observed)

  • Haptic-enabled dials for real-time rep/weight logging [PRESS].
  • Animated confetti and sound effects when a teammate encourages you [PRESS]; the rising 🔥 particles in the player are the in-workout form [SS-02].
  • "Improvements to your nutrition experience e.g. improved animations when adding your weight or water" (4.7.0) [3P].
  • A screen-flash setting for movement transitions, user-toggleable (4.10.1) [3P].
  • Autoplaying muted video wherever an object has a face — workout detail hero, programme detail header, movement thumbnails, the demo loop.
  • Liquid Glass materials in the workout surface since v3.8.2 [3P].

Photography and brand world

One consistent world: matte black rubber gym, black plates and kettlebells, a lime accent line built into the environment (wall strips, floor edges, a large lime ladder-monogram painted on the wall), athletes in black Ladder kit, natural non-studio lighting, shot mid-action or direct-to-camera. Produced gym footage coexists with vertical coach-shot video in a home bookshelf setting [SS-10] — polished and authentic on purpose. The logo is a slanted-H / ladder-rung monogram, reused as the app icon glyph, on plates and apparel, and as the lime coach verification badge in chat [SS-01] [SS-03] [SS-10].


2. Capability / object table

Exhibit 02 · Home · player · Journal Week strip with completion ticks and Change Teams; the player with floating Cheers; the Journal showing Total Volts and the Effort/Reps/Weight log.
Item Status Evidence Notes
5-tab bar: Workouts, Chat, Teams, Profile, Rewards Seen, 2024 [SS-02] [SS-03] Post-Nutrition shape unknown
Home: greeting, ⚡ badge, week strip, team row Seen, 2024 [SS-02] [SS-03] ⚡ number meaning unproven
Hero workout carousel Seen, 2024 [SS-03] Neighbours peek both edges
Hero card count badge (1582 / 720) Seen, meaning unknown [SS-03] Parked
Workout detail w/ coach video + countdown Seen, 2024 [SS-05] Gear icon = only settings entry seen
Actions: saved / schedule / share / downloaded Seen, 2024 [SS-05] State-as-label; downloaded disputed
Block + movement preview, expandable set table Seen, 2024 [SS-06] Cols: Sets, Effort, Reps, Previous, Coach
Per-set coach audio cue Seen, 2024 [SS-06] Speaker glyph on some rows only
"Start Here" / "View History" Seen, 2024 [SS-06] Secondary outlined pills
In-workout player + segmented bar Seen, 2024 [SS-02] [SS-07] Time + percent, ~9 segments
Reps / timer / weight dials Seen, 2024 [SS-02] [SS-07] Haptic per [PRESS]
Live teammate cheers in-workout Seen + confirmed [SS-02] [REV] Floating 🔥; confetti + SFX [PRESS]
Journal (in-sheet and post-workout) Seen, 2024 [SS-02] Logged checkbox, unit dropdown
Total Volts ⚡ counter Seen, meaning unknown [SS-02] 0 of 500 reviews mention Volts
Movement analytics: tiles, chart, history Seen, 2024 [SS-08] PR tile; lime area chart
Effort % colour ramp Seen, inconsistent [SS-02] [SS-06] [SS-08] Two ramps, see §3
Chat: threads, reactions, Coach Pins, video Seen, 2024 [SS-10] Only violet-accented surface
Coach verification badge in chat Seen, 2024 [SS-10] Lime ladder monogram
Chat search Changelog only [3P] v4.2.0–4.2.3 Screen unseen
Programme browse grid (coach-first cards) Seen, 2024 [SS-04] 3-col; ICONIC not in any roster list
Programme detail spec sheet Seen, 2024 [SS-04] Field set differs from web [WEB]
Music-connect onboarding step Seen, 2024 [SS-09] Spotify / Apple Music / SKIP
Full onboarding quiz + welcome workout Reported only [3P] Screens unseen → A3
Paywall screen Not evidenced Parked
Profile tab contents Reported only [3P] [REV] Streak view, badges, weight + photos
Rewards tab contents Named only [WEB] "Shortcuts > Rewards > Ladder Wallet"
Guest Pass referral, $25 gift card, CARD ID Reported [WEB] Redeemed in Ladder Shop
Nutrition (search/barcode/photo/voice) Changelog + press [3P] [PRESS] [REV] Nav placement unknown
Nutrition: recipes, cookbook, food cart Changelog only [3P] v4.1.0–4.4.4 Screens unseen
Water tracker + hydration HealthKit Changelog only [3P] v4.4.1, 4.5.1
Flex workouts + filter/sort + vibe search Changelog + review [3P] [REV] Screens unseen
Priority workouts (top 3 per week) Reported [3P] Screen treatment unseen
Plateau detection + notification Changelog only [3P] v4.10.1/4.10.2 Mutable per movement
Auto Log Changelog only [3P] v4.4.1
Movement swap Changelog + reviews [3P] [REV] Most-praised customisation
Home-screen widgets: water, macros, steps Changelog + review [3P] [REV] Small + medium
iOS Share Extension (recipe import) Changelog only [3P] v4.1.0
Apple Watch companion Seen + reported [SS-08] [AS] [3P] Pause / skip / rewind from wrist
HealthKit (workouts, macros, hydration, weight) Changelog only [3P]
Spotify + Apple Music Seen [SS-09] [SS-02] YouTube Music claim unsupported
Live Activities / Dynamic Island Not evidenced No evidence either way
Offline download Contradicted [SS-05] vs [REV] See §3
Light mode Absent [REV] "perpetual dark mode" complaint
iPad layout Absent [AS] No iPad screenshots, any storefront
Android app Absent [AS] [3P] Play listing 404
Web WOD player at /app/workout/today Exists, UI unseen [WEB] Client-rendered
Localisation English only [AS] One global screenshot set

3. Reconciliation notes

Exhibit 02 · Home · player · Journal Week strip with completion ticks and Change Teams; the player with floating Cheers; the Journal showing Total Volts and the Effort/Reps/Weight log.

Programme roster count. Five sources, five answers: 20 named programmes in the App Store description [AS]; 22 in the joinladder.com footer today; a "25 total teams" claim on the same site; "14 strength training programs" in [3P garagegymreviews]; and the browse grid contains ICONIC, which appears in none of the lists. Legacy programme objects also survive at teams.joinladder.com/programs/<slug>-deprecated. Winner: none. The correct statement is "roughly 20–25 coach programmes, with a churning roster and per-surface lag". Any single number is wrong by the time it is written. (A4 owns the churn rate itself.)

Effort colour ramp. The Journal [SS-02] renders 50% violet #B982FF and 75% indigo #5E77FF; the movement-history table [SS-08] renders 70% sky #6CC1FF, 80% #FFE071, 90% #FF9E02, 100% #FF5349. A monotonic ramp cannot contain both a 70% sky blue and a 75% indigo. Winner: neither. Both are genuine screens; the ramp was almost certainly retuned between builds, or the two screens run different scales. Both recorded; do not treat either as the token set.

Offline download. [SS-05] shows a downloaded state action with a check. A v4.10.2 reviewer says offline access does not exist [REV]. Winner: neither, and the gap is the finding. The screenshot is ~2 years older than the review, so the likeliest reading is that the affordance existed (or exists as a save/cache that users do not find) and is not a usable offline mode in 2026. Not asserted either way → §4.

Set-position label. "Set 1 of 3" [SS-07] versus "2 of 4" [SS-02]. Not a factual conflict (two different moments), but the string differs — either context-dependent or changed between builds. Recorded as observed.

Android availability. [3P corahealth] states "The app is available on iOS and Android"; [3P garagegymreviews] states iOS-only; the Play listing for com.ladder.bootcamp 404s. Winner: iOS-only. corahealth also asserts "live team challenges and leaderboards" and "4-12 week program" cohorts, neither of which any primary source supports. It reads as AI-generated comparison-farm content and is discounted throughout this Finding — cited only here, as a negative example.

Review volume. [3P garagegymreviews] says "more than 26,000 reviews"; [PRESS TechCrunch] says "more than 100,000"; the live API says 180,865 US ratings [AS]. Winner: the live API. The others are accurate snapshots of their publication dates and are useful only as a growth trace (A6's material).

teams.joinladder.com. Presents "Fit. Together.", "Coming Soon!", $59/month, US-only, and "© 2020 Milton Finch, Inc.". This is a 2020-era property left standing. Never cited as current — used only to show that programme objects get deprecated and that the company operated under an earlier name.

Store listing vs shipping app. Where the App Store description/screenshots and the release-note mirror disagree about what exists, the release notes win — they are per-build and the store listing has demonstrably not been refreshed since ~2024 (§1.1). This is why §1.11 exists as a separate section rather than being folded into the screen walkthrough.


4. Open Questions / Parked

Exhibit 04 · Team picker Coach cards framed by physique outcome. Detail sheet carries Skill Level, Workout Style, Suggested Equipment, Designed For and Certifications.

Everything here is behind signup, behind the paywall, or simply not published. Parked, not inferred.

IA — highest value first

  1. Where does Nutrition live in the navigation? Is the tab bar still five tabs? Did Nutrition displace a tab, become a sixth, or nest under Profile? This is the one unknown that most changes how Ladder's IA should be read.
  2. Profile tab contents. Streak view, badges, settings, subscription management, weight and progress photos are all reported in fragments; the screen is unseen.
  3. Rewards tab contents, and what the "Shortcuts" surface named by Ladder's own shop page actually is — it appears in no screenshot.
  4. Teams tab root. Is it my-team home with browse nested, or browse itself? The [SS-04] grid is also reachable from "Change Teams" on Home, so the root is unproven.
  5. Settings. A gear exists on workout detail [SS-05]; its sheet, and any global settings location, are unseen.

Semantics of things we can see

  1. What Volts are — how earned, what they buy, how they relate to the ⚡ number on the avatar. "Total Volts ⚡1,450" is the only in-app evidence, and 0 of 500 reviews mention them.
  2. The hero card's three-rectangle glyph and its lime count badge (1582 / 720). The completions/social-proof reading is plausible and unproven.
  3. The in-workout top-right glyphs — a switch.2-shaped two-toggle control (SS-02) and a rounded-square-with-bands control (SS-07). Audio mixer and layout toggle are the best guesses; neither is proven.

Screens never seen

  1. The paywall itself — layout, price presentation, trial-end treatment. (A3 owns the mechanics; the screen is still missing from this inventory.)
  2. The onboarding sequence — screen count, question order, the progress-rail pattern beyond the one 3-dash step.
  3. Flex workout browse — the list view, the filter and sort controls, and what "vibe search" looks like and accepts as input.
  4. All nutrition screens — daily-target rings or bars? the food cart? the weekly calendar? the smart-log camera and voice UI? the recipe editor?
  5. The Profile streak / badge visual language — seasonal challenges and personalised milestones are reported but unrendered here.

Platform

  1. Live Activities, Dynamic Island, Lock Screen widgets — no evidence in either direction. Do not assume presence or absence.
  2. Dynamic Type, VoiceOver, contrast behaviour. Only the missing light mode is evidenced.
  3. iPad. iPad devices appear in supportedDevices but there is no iPad screenshot in any storefront; whether an iPad layout exists is unresolved.
  4. The web app UI at joinladder.com/app/workout/today — client-rendered, and /support likewise renders only "Loading...". Ladder's help centre would be the single best remaining source for screen names and navigation paths; it is JS-gated and blocked in robots.txt, so it needs a JS-rendering fetch (the ScrapeGraph MCP was unavailable — no SGAI_API_KEY in this shell).

Design

  1. Exact typefaces for the display and UI faces. Characteristics documented; families not identified.
  2. Whether #0E0E0E vs #000000 is intentional (two ground levels) or drift between screens built at different times.

5. What this does NOT cover

  • The training model. How a week is programmed, how progressive overload is applied, what the effort percentage actually prescribes, and how the audio coaching is authored → A2. This Finding documents the containers those things appear in.
  • Onboarding content and conversion. The quiz questions, the customisation options, the trial's "welcome workout", the paywall's pricing psychology → A3. Pricing ($29.99/mo, $179.99/yr, a $99 first-year promo seen in reviews, monthly = 1 team with 2 changes/month vs annual = all teams) is recorded here only where it was already in hand [WEB] [REV].
  • Content and coach supply. Roster churn rate, cost of a programme, weekly refresh cadence, the deprecation trail → A4. §3 only proves the churn exists.
  • Retention mechanics as behaviour. What streaks, Volts, badges, cheers and team chat do to week-4 retention → A5. This Finding says where they render.
  • Business. Company, funding, the 300,000+ paid members figure, revenue estimates, the Milton Finch history → A6.
  • Implementation stack. Explicit SCOPE cut. Liquid Glass, widgets and the Share Extension are noted as product surfaces, not as architecture.
  • Any screen behind signup or the paywall that could not be evidenced. Listed in §4 rather than reconstructed.
DiscoveryBrain Inquiry 004 · Ladder teardown
Six parallel Scouts · reconciled in one brief · nothing summarised away