Skip to content
Expert Guide Series

Whats the best way to create personalised workout plans in my app

Fitness apps lose most of their users within the first week. The plans feel generic, the goals feel arbitrary, and the experience feels like it was built for someone else entirely. A user who signed up wanting to move a little more each day gets the same opening workout as someone training for a half marathon, and they both feel slightly misunderstood from the start.

Personalisation that works is built around the individual, not draped over a generic framework.

The gap between a plan that feels personal and one that technically contains your name is enormous, and it shows up almost immediately in how people behave inside the product. They slow down, they skip sessions, and then they quietly leave.

Getting personalisation right in a fitness app involves decisions that span data architecture, onboarding flow, behavioural psychology, and the timing of when things surface. None of those pieces work independently. A well-designed plan engine sitting behind a clumsy onboarding flow will still drive abandonment. A thoughtful onboarding that feeds into a rigid, non-adapting plan will frustrate users the moment life interrupts their schedule. What follows is how we think about building the whole system, drawing on the work we have done across fitness and wellness products.

The data you need to collect before building any plan

Building a workout plan without enough data produces something generic dressed up as personal. The question is what kinds of data actually change the plan in a meaningful way. Strava and Fitbit each collect around 21 unique data points per user, according to Statista, 2024, while meditation app Headspace collects around 13. More data is only useful if the plan genuinely responds to it.

The data worth collecting falls into a few clear categories. Stated preferences are what users tell you directly: current activity level, available time per session, equipment access, and any injuries or limitations. Inferred characteristics are what you read from behaviour: how fast someone moves through the product, where they dwell, whether they revisit certain screens. And then there are contextual signals, the things that change over time, like session frequency, completion rates, and what time of day the user typically opens the app.

The data that shapes the plan most

Not all data points are equal. Available time per session shapes every plan more than almost anything else. A person with 20 minutes three times a week needs a fundamentally different structure than someone with 45 minutes five times a week, and no amount of personalised language corrects a plan that ignores this. Current fitness level matters too, but self-reported fitness levels are often optimistic, which is why behavioural signals become important so quickly.

What to track from day one

From the first session, begin tracking completion rates, session duration relative to planned duration, and return visit timing. These three signals tell you more about whether the plan is right than any questionnaire answer. A user consistently completing sessions at 60% of the planned duration is showing you the plan is too long, and the data is available from day three if you are reading it.

Onboarding: what to ask, what to infer, and what to leave until later

Onboarding is where most fitness apps create the problem they then spend months trying to solve. They ask too much, too early, and in the wrong order. Every extra step in an app's onboarding flow can increase user churn by 20%, according to UXCam. The impulse to gather everything upfront is understandable, but it costs users before the product has given them any reason to stay.

On a fitness product we worked on, one of the changes that made a measurable difference was simple: we framed how long the orientation questions would take. We told users upfront what to expect. The result was that people entered the process in a much more prepared emotional state rather than bouncing at the first sign of effort. The change was not technical, and it was not a redesign. It was one sentence placed at the start of the flow.

What to ask in onboarding

Ask only what you cannot infer and cannot wait for. Current activity level, available time, and any physical limitations belong in onboarding because they affect the first plan the user sees. Goals belong there too, but hold them loosely, because stated goals shift quickly once users start using the product and encounter what they can actually do.

What to leave until later

Preference questions around music, environment, and workout style can wait until after the first completed session. Equipment details beyond the basics can be gathered progressively as plans develop. Asking these questions on day one creates cognitive load at the worst possible moment, and it suggests the app is more interested in building its database than in getting the user their first win.

UX/UI design built around real psychology

We design app interfaces around how people actually think and behave. User research, psychology-driven UX/UI design and technical specs delivered as one complete package.

See how we work Get started

No commitment

Why most algorithmic personalisation feels hollow to users

Algorithmic personalisation fails users when it treats stated preferences as a fixed profile and stops there. A user answers five questions, gets a plan, and then receives the same plan regardless of what they actually do with it. The plan was personalised at setup and then became static, which means it stopped being personal almost immediately.

The deeper problem is that algorithmic personalisation often produces something that looks personal but reads as generic. A plan that addresses the user by name, uses their stated goal in the header, and then delivers exercises that bear no relationship to their actual pace or energy that week has done the cosmetic work without the substantive work. Users feel this quickly.

A plan that uses your name but ignores what you do is just a template with a label.

On a genetics wellness app we worked on, the retention problem traced back to this exact issue. The product had stripped away its storytelling layer to make room for data dashboards, and users stopped feeling that the product was speaking to them as individuals. Bringing the narrative back, giving people a genuine sense of identity within the product, rebuilt engagement. The features had not changed. The feeling of being known had, and that was what drove people back.

Algorithmic systems are good at pattern-matching. They are less good at making a user feel seen, and fitness is a domain where feeling seen matters considerably. A plan that acknowledges a hard week, adjusts accordingly, and still finds something to celebrate is doing emotional work that a standard recommendation engine does not perform.

Framing progress around behaviour, not performance

Fitness apps default to performance metrics because performance is measurable. Kilograms lifted, kilometres run, calories burned. These are clean numbers that graph well and feel objective. They are also precisely the kind of goal that causes users to abandon the app the first time they miss a session, plateau, or have a bad week.

On a fitness product focused on weight loss, we shifted the gamification approach away from outcome-based achievements entirely. The app had been rewarding results. We changed it to reward showing up every day and being better than yesterday. The emphasis moved to consistent engagement and small daily improvement rather than whether the user hit a specific number on the scale. The experience of the app changed even though the exercises did not.

What behaviour-based progress looks like

Behaviour-based progress rewards actions within the user's control. Completing three sessions this week. Returning to the app after a gap. Finishing a session that was shorter than planned rather than skipping it entirely. These are the moments where a user is deciding whether to continue, and they deserve acknowledgement at exactly that point.

On another fitness product, the framing centred on the idea that everything is better than nothing. Two minutes of movement over zero minutes of movement was worth celebrating explicitly. The product was designed for users who felt self-conscious about their fitness level, and the fear of being judged by a product that only acknowledged big wins was a real barrier. Removing that barrier by celebrating the smallest consistent actions changed how users related to the app over time.

Frame your progress notifications around what the user did, not what they fell short of. "You showed up three times this week" carries a different weight than "you're 2 sessions behind your goal".

Streaks as behaviour reinforcement

Streaks work well in fitness products specifically because they reward the behaviour of returning rather than the performance within any single session. A streak that breaks when a user misses one day can punish the exact moment where they need encouragement most. Building in grace periods, or framing streaks around weekly consistency rather than daily, keeps the reward structure aligned with real human schedules.

How to adapt plans in response to what users actually do

A plan that cannot change is a starting point, not a personalisation engine. The first plan a user receives is always an educated guess, and it becomes more accurate the more the product reads what the user actually does with it. Adaptation is where the guess becomes knowledge.

The signals worth reading are completion rate, session duration relative to what was planned, return timing, and the pattern of which sessions users skip. If a user consistently completes the first two exercises in a session and skips the third, the third exercise is either too difficult, too long, or poorly placed in the sequence. The data makes the diagnosis available if the product is reading it.

Build a simple rule into your plan engine: if a user completes fewer than 70% of planned sessions over two consecutive weeks, reduce session length before adjusting intensity. Length is almost always the first friction point.

Adaptation also means timing. A plan that surfaces a longer session on a Friday evening when the user has only ever completed sessions on weekday mornings is ignoring available information. The plan is technically the same plan, but it is landing at the wrong moment, and timing changes everything about how it feels.

Matching gamification visibility to where the user is emotionally

Gamification has a visibility problem in fitness apps. Products tend to display every available badge, every possible achievement, and every reward tier simultaneously, which creates a wall of things to do rather than a single next step. For a user who is already feeling behind, that wall is discouraging rather than motivating.

On a travel app we worked on, we built the gamification display around inferred emotional state. Where behavioural signals suggested the user was anxious, moving slowly through the product, dwelling on certain screens, we limited the visible reward window to the next achievable goal and perhaps one or two beyond it. For users who were moving confidently through the product, we opened the window much wider, showing the full range of available rewards and which ones they had already earned.

The same logic applies directly to fitness. A user who has just returned after a two-week break needs to see their next small win, not the full mountain. A user who has completed every session for three weeks and is feeling strong can see the bigger picture without it feeling overwhelming. The plan content does not need to change. The visibility of what comes next does.

Use dwell time and session completion patterns as your primary indicators of emotional state. A user spending a long time on plan preview screens before starting is likely anxious. Reduce visible targets for that session rather than pushing encouragement harder.

Timing and context: when personalisation should surface

Personalisation that surfaces at the wrong moment feels intrusive even when the content is right. A thoughtful plan recommendation sent at a time when the user is not thinking about exercise gets ignored at best and irritating at worst. Personalised push notifications have four times higher open rates than generic ones, according to Leanplum via iZooto, but timing drives a significant portion of that gap.

On a concierge app for residential buildings, the system adapted to what users needed and to when they would actually receive it well. If someone signed up midweek, the app waited until the weekend before suggesting they explore the local area. It waited two days after move-in to surface recycling information, because the team reasoned the user was still surrounded by boxes and would not act on it sooner. The timing logic was driven by what the user was likely experiencing, not by what the product wanted to surface.

Applying timing logic to fitness

In a fitness context, this means reading when users typically open the app and anchoring plan reminders to those windows rather than sending them at a standard time. It means waiting until after a user's second completed session before introducing more complex features or longer plan options. And it means recognising that Monday morning and Friday afternoon carry different emotional weight, and the same push notification will land differently across those two moments.

Contextual signals worth reading

The contextual signals that change when personalisation should surface include time of day relative to usual usage, days since last session, current streak status, and recent completion rate. A user who has just broken a streak needs a different message than one who is on a run. Sending the same encouragement to both is broadcast with a first name attached.

The technical architecture that makes responsiveness possible

Responsive personalisation requires the architecture to support real-time reading of user behaviour. A system that batches user data overnight and updates plans the following morning is operating on yesterday's information, which means it will always be slightly behind the user's actual state. For a product meant to feel personal and adaptive, that lag is significant.

The minimum architecture for genuine responsiveness includes a behavioural event stream that captures in-session actions as they happen, a rules engine that can act on those signals within the same session, and a plan layer that can modify what surfaces next without requiring a full plan rebuild. These do not need to be expensive or complex, but they do need to exist as distinct components rather than being folded into a monolithic content management system.

What to build first

  1. Capture session completion rate and duration in real time, as the session runs.
  2. Build a simple rules engine that flags when completion or duration falls below a threshold.
  3. Connect that flag to the plan layer so the next session surfaces at a lower intensity or shorter duration automatically.
  4. Add timing logic once the core loop is working, reading usage patterns to anchor content delivery.

Keeping it maintainable

The temptation at the architecture stage is to build for every possible scenario from the start. The more practical approach is to build the core feedback loop well, test it against real behaviour, and extend it as you learn what signals actually predict what outcomes in your specific product. A system that reads three signals reliably is more useful than one that reads fifteen signals inconsistently.

How to measure whether your personalisation is working

The standard metrics for fitness apps, daily active users, session count, and total sessions completed, tell you whether people are using the product but not whether personalisation is doing anything. A plan could be driving high session counts because it is easy rather than because it is right, and easy plans do not produce outcomes, which means they do not produce retention over months.

The better indicators are plan completion rate relative to plan difficulty, return rate after a missed session, and the distribution of how far into a plan users get before stopping. If most users drop off at week three of an eight-week plan, week three contains a problem. If users who receive a plan adapted based on their completion rate stay longer than those on static plans, the adaptation is working. Those comparisons require building comparison groups, even informally, which means not rolling personalisation out to every user simultaneously.

The signals that indicate real progress

Signal What it indicates What to do if it drops
Session completion rate Plan difficulty and length are right Reduce session length before intensity
Return after missed session Emotional relationship with the app Adjust the post-gap re-entry message and plan reset
Week 3 to Week 6 retention Whether personalisation holds beyond novelty Audit what the plan offers at that point in the journey
Plan adaptation acceptance Whether users trust the app's adjustments Review how adaptation is framed and communicated

Qualitative signals matter too

Quantitative metrics describe behaviour. They do not explain it. Running short user interviews at the three-week mark, specifically with users who are still active and users who have dropped off, surfaces the reasoning behind the numbers. A user who says the plan felt too easy by week two is giving you information no dashboard catches. Building a regular feedback loop into the product, even a single question after a session, gives you qualitative signal at scale without a research programme.

Conclusion

Personalised workout plans work when the whole system works together. Onboarding that asks the right amount, a plan layer that reads what users actually do, gamification that adjusts to emotional state, and timing that respects the user's context. Pull any one of those out and the others cannot fully compensate.

The products that retain users over months are the ones that make people feel genuinely seen rather than sorted into a cohort. That feeling comes from small signals handled well: a plan that got shorter after a hard week, a notification that arrived at the right moment, a reward that acknowledged the return rather than ignoring the gap. These are design decisions as much as technical ones, and they shape how people experience the product long after the onboarding is done.

The work is iterative by nature. The first plan is always an educated guess. The adaptation that follows it is what makes it personal, and the measurement that follows that is what tells you whether the system is working or just running. Getting the architecture right early makes that iteration faster and gives the product a genuine chance of becoming something users stay with.

If you are building or improving a fitness app and want to think through how personalisation should work across data, behaviour, and emotional design, let's talk about your product.

Frequently Asked Questions

Why do most fitness apps lose users so quickly?

Most fitness apps lose users because their plans feel generic rather than truly personal. When someone training casually receives the same opening workout as a half marathon runner, they feel misunderstood from the start and quietly disengage within the first week.

What data should I collect before building a personalised workout plan?

You should collect stated preferences such as available time, equipment access, and injuries, alongside inferred behavioural signals like how users move through the product. Contextual signals including session completion rates and the time of day a user opens the app are equally valuable as they change over time.

Which data points have the biggest impact on how a plan is structured?

Available time per session is the single most influential data point, as a person with 20 minutes three times a week needs a fundamentally different plan to someone with 45 minutes five times a week. Current fitness level matters too, though self-reported levels tend to be optimistic, which is why behavioural signals become important early on.

What should I track from a user's very first session?

From day one, you should track completion rates, actual session duration compared to planned duration, and how quickly users return to the app. These three signals reveal whether a plan is working far more reliably than any questionnaire, and meaningful patterns can emerge as early as day three.

How should I approach onboarding without overwhelming new users?

You should ask only what is necessary to generate a first plan, then infer additional details from behaviour rather than front-loading questions. Every extra step in onboarding can increase churn by around 20 per cent, so restraint at this stage is a practical design decision, not just a stylistic one.

What happens if onboarding is well designed but the plan itself does not adapt?

A thoughtful onboarding that feeds into a rigid, non-adapting plan will frustrate users the moment life interrupts their routine. Personalisation needs to work as a connected system, because no single part of it, whether onboarding, the plan engine, or the timing of content, functions effectively in isolation.

How can I tell if a workout plan is too long for a particular user?

If a user consistently completes sessions at around 60 per cent of the planned duration, the plan is almost certainly too long for their available time or current fitness level. This kind of signal is visible in your data within the first few days and should prompt an automatic adjustment to the plan.

Does collecting more data always lead to better personalisation?

Not necessarily. Collecting more data is only worthwhile if the plan genuinely responds to each additional signal in a meaningful way. Apps like Strava and Fitbit collect around 21 unique data points per user, but volume alone does not improve outcomes if the underlying plan logic does not use that information effectively.