We show what you built

The UX audit that shaped v1.42's honest first run had a second, larger observation: after nine onboarding questions, the app produced a good plan and then hid it. This release fixes that, and cleans up two other framing sins the audit called out.

Your plan is ready

There's a new screen between the last diagnostic answer and your first workout: a plain read-out of what the app just built for you.

  • Tier badge — the shape of your plan. Foundations 10-week for beginners, Guided or Custom for the tiers above.
  • Where you're starting — one row per movement family (push / pull / squat / hinge / core / mobility), with the step your diagnostic answers landed you on. Not marketing. The actual step the next session reads from.
  • Your rhythm — how many sessions per week you're committed to and how rest days sit between them.
  • One line about why — plain English restating that the diagnostic answers picked this starting point. "Based on your answers about push-ups, hangs, planks and mobility. As you crush a step, we'll bump you to the next one automatically."

Nothing on that screen is new data — the backend already produced it. What's new is that we finally show it. The audit's cost estimate was that nine questions felt unrewarded because personalisation stayed invisible; the fix was worth building the screen alone.

Nine questions actually feels like six

The old flow claimed "3 quick steps" on the welcome screen and then delivered nine questions with four different progress-indicator patterns — sometimes three dots, sometimes bars, sometimes a text counter, sometimes nothing. Twice, the app told you you'd finished before you were done.

v1.43 replaces every step's indicator with one shared bar and an honest total. Step 1 of 6 through Step 6 of 6, or 5 of 5 if you signed in with Apple and skipped the name screen. The diagnostic's four internal sub-questions fill the third segment gradually as you answer them, so you can see where you are inside that block. No lies about the count. No stuck dots.

One goal question, not three

The pre-v1.43 flow asked variants of the same question three times: "What's your main goal?" then "What brings you here?" then "Which skill brought you here?" Being asked the same thing again reads as the app not having listened.

The Main Goal screen is retired. The tier screen still asks where you're starting from — but in plain experience-level language, not goal-mixed copy. The skill picker still names the one movement you're chasing (or lets you say "not sure yet"). The redundant middle question is gone, and its downstream behaviour — biasing program recommendations toward what you picked — now derives from the answers we already collected.

Under the hood

  • New OnboardingProgressBar component drives every counted step. Coordinator computes (step, total, subFill) from live state instead of each view baking in its own.
  • OnboardingPlanRevealView slotted between .complete and .ready. Consumes the full POST response — steps, plan, tier — that iOS previously discarded.
  • FitnessGoal.derived(tier:pickedFocusSkill:) replaces the deleted OnboardingGoalView. Downstream consumers (Home program-ordering, Profile chip) keep working unchanged.
  • Two new analytics events (onboarding_plan_reveal_shown + onboarding_plan_reveal_continued) with seconds-on-screen so we can see whether users read the plan or tap through.

Twelve new unit tests lock in the derivation rules and the shared progress bar's clamp math.

Coming next

The same audit's Wave 3 material — tap-through fixes on the workout tips, a pausable elapsed timer that stops running while you read instructions, and reconciling the exercise count between Home and the workout preview — lands next.

Available in v1.43.0 on TestFlight now. Rolling out to the App Store this week. Feedback welcome at support@zenmotion.app.