Help Center
Find answers to common questions about MyTrainerOS
To update your profile information:
- Tap More tab at the bottom
- Select Settings
- Tap Edit Profile
- Update your name, email, photo, or other details
- Tap Save Changes
Note: Profile photo changes may take a few minutes to appear everywhere in the app.
To change your password:
- Go to Settings → Privacy & Security
- Tap Change Password
- Enter your current password
- Enter and confirm your new password
- Tap Update Password
Security tip: Use a strong password with at least 8 characters, including uppercase, lowercase, numbers, and symbols.
To cancel your subscription:
- Go to Settings → My Subscription
- Tap Manage Subscription
- Select Cancel Subscription
- Choose a cancellation reason (optional)
- Confirm cancellation
Important: You'll retain access until the end of your current billing period. No refunds are provided for partial months.
If you're a gym member, canceling will notify your trainer. Your workout and nutrition data will be preserved.
To update your payment method:
- Go to Settings → My Subscription
- Tap Payment Method
- Add a new card or select an existing one
- Tap Set as Default
Your new payment method will be charged on your next billing date. We accept Visa, Mastercard, American Express, and Discover.
Our refund policy:
- Within 7 days: Full refund available if you haven't used the app extensively
- After 7 days: No refunds for partial months, but you can cancel anytime
- Technical issues: Contact support for case-by-case evaluation
To request a refund, go to Settings → Help & Support → Contact Support and select Billing as your category.
To permanently delete your account:
- Go to Settings → Privacy & Security
- Scroll to Danger Zone
- Tap Delete Account
- Enter your password to confirm
- Tap Permanently Delete
Warning: This action cannot be undone. All your data, including workouts, nutrition logs, progress photos, and messages will be permanently deleted.
Trainers: You must transfer or remove all members before deleting your account.
If your payment fails:
- You'll receive an email notification
- Your subscription status changes to Past Due
- We'll retry charging your card 3 times over 7 days
- After 7 days, your account will be downgraded to free tier
To resolve a failed payment, update your payment method in Settings → My Subscription.
Note: Your data is never deleted due to payment issues. It's preserved for 30 days after downgrade.
To log a workout:
- Go to the Workouts tab
- Tap Today's Workout or select from your program
- For each exercise, tap Add Set
- Enter weight and reps, or tap the suggested values
- Tap Complete Set
- When finished, tap Complete Workout
Pro tip: Use voice commands like "10 reps at 185" to log sets hands-free during your workout.
Gym Members: You can log custom exercises, but workout programs are assigned by your trainer.
Trainers: Yes! To create a workout:
- Go to Workouts tab
- Tap Create Workout
- Add a workout name and optional notes
- Tap Add Exercise from the library
- Set prescribed sets, reps, weight, or leave blank for member choice
- Save and assign to members or add to a program
You can save workouts as templates for reuse with multiple members.
During a workout:
- To skip: Swipe left on the exercise and tap Skip, or say "skip" using voice logging
- To substitute: Tap the exercise name → Substitute Exercise → select a replacement
- To edit sets/reps: Tap the set you want to modify
- To delete a set: Swipe left on the set and tap Delete
Note: If your trainer prescribed the workout, they'll see which exercises you skipped or substituted.
Exercise tags help you understand the workout structure:
- 🔴 Compound: Multi-joint exercises (squats, deadlifts, bench press)
- 🟠 Accessory: Single-joint exercises for targeted muscle work
- 🟢 Cardio: Cardiovascular conditioning exercises
- 🔵 Core: Abdominal and core stability exercises
- 🟣 Warm-up: Mobility and activation exercises
Muscle group badges show which areas are targeted (e.g., Chest, Back, Legs).
Rest timers start automatically after you complete a set:
- Complete a set by tapping Complete Set
- A timer appears with your prescribed rest time (or 60s default)
- You'll get a notification when rest is complete
- Tap Start Next Set to continue
Customization:
- Tap the timer to adjust time mid-rest
- Skip rest by tapping Skip Rest
- Disable auto-timers in Settings → Workout Preferences
To see your past workouts:
- Go to Progress tab
- Tap Workout History
- Browse by date or search for specific workouts
- Tap any workout to see full details
You can also view exercise-specific history by tapping an exercise during a workout and selecting View History.
Trainers: View member workout history from their profile page.
A workout program is a structured training plan spanning multiple weeks:
- Phases: Programs are divided into phases (e.g., Hypertrophy, Strength, Deload)
- Progression: Exercises progress week-to-week with increasing volume or intensity
- Schedule: Specific workouts assigned to specific days
Gym Members: Your trainer assigns programs to you. View your current program in the Workouts tab.
Trainers: Build programs using the Program Builder and assign them to members.
MyTrainerOS automatically tracks your personal records:
- 1RM: Estimated one-rep max for each exercise
- Volume PR: Most total weight lifted (sets × reps × weight)
- Rep PR: Most reps performed at a given weight
When you set a new PR, you'll see a 🎉 celebration with confetti and haptic feedback!
View all your PRs in Progress → Personal Records.
You have multiple ways to log food in MyTrainerOS:
- Search: Tap Nutrition → Add Food → search for the item
- Photo: Tap the camera icon, take a photo, and AI will identify foods
- Voice: Say "two eggs and toast" and AI will log it
- Barcode: Scan packaged foods for instant logging
- Go-To Foods: Your frequently eaten foods appear at the top
Pro tip: Photo and voice logging are fastest for whole meals!
Photo nutrition uses AI to estimate macros with ~85-90% accuracy for common foods.
Best results:
- Take photos from directly above
- Ensure good lighting
- Include a reference object (hand, phone) for portion size
- Capture the full plate in frame
After AI analyzes your photo, you can:
- Edit any identified food
- Adjust portion sizes
- Add missing items
- Delete incorrect identifications
Note: MyTrainerOS shows transparent breakdowns (not a single opaque entry) so you can verify accuracy.
Gym Members: Your trainer sets your macro targets based on your goals. View them in Nutrition tab.
Trainers/Self-coached: To set targets:
- Go to Nutrition → Settings
- Choose Custom Targets
- Enter daily protein, carbs, and fat targets in grams
- Or use Auto-calculate based on your body weight and goals
- Save targets
Targets can also be set per day of the week (e.g., higher carbs on training days).
MyTrainerOS uses an adherence-neutral color system:
- 🟢 Green: Within ±5% of your target
- 🟠 Orange: Slightly under target (5-15% below)
- 🟣 Purple: Over target
Important: Purple is NOT red! Going over targets occasionally is normal and not "bad." We focus on weekly averages, not daily perfection.
Weekly view: Shows average daily intake to help you see the bigger picture beyond single-day fluctuations.
To create a custom food:
- Go to Nutrition → Add Food
- Tap Create Custom Food
- Enter food name
- Add serving size and unit
- Enter macros: protein, carbs, fat (calories auto-calculate)
- Save food
Custom foods are saved to your library and appear in your search results.
Pro tip: Create custom recipes with multiple ingredients and save them for quick logging!
Currently, MyTrainerOS focuses on macronutrients (protein, carbs, fat) and calories for simplicity and adherence.
Micronutrient tracking is planned for a future update. For now, we recommend:
- Eating a variety of whole foods
- Including colorful vegetables and fruits
- Taking a multivitamin if needed (consult your doctor)
Want to see micronutrient tracking sooner? Vote for this feature in Settings → Feature Requests.
To edit a food entry:
- Go to Nutrition tab
- Find the food entry you want to edit
- Tap the entry to open details
- Tap Edit
- Adjust serving size, macros, or meal time
- Tap Save
To delete a food entry:
- Swipe left on the food entry
- Tap Delete
- Confirm deletion
Changes are synced immediately with your trainer (if you have one).
Voice logging lets you log workouts and food hands-free:
Workout commands:
- "10 reps at 185" → Logs a set
- "repeat" → Duplicates your last set
- "skip" → Skips the current exercise
- "next" → Moves to next exercise
- "start timer" → Begins rest timer
Food commands:
- "Two eggs and toast" → AI parses and logs
- "Fist-sized chicken breast" → Estimates portion
- "Lunch at Chipotle, chicken bowl" → AI estimates macros
Setup: Enable microphone access when prompted. Voice logging uses advanced AI for real-time transcription.
MyTrainerOS includes AI-powered coaching to supplement your trainer (or coach you if self-directed):
- Workout AI: Suggests exercise substitutions, progression adjustments, and form tips
- Nutrition AI: Helps with meal planning, macro distribution, and food suggestions
- Recovery AI: Monitors sleep, HRV, and readiness to adjust training intensity
- Motivation AI: Proactive check-ins and encouragement
Trainers: AI learns YOUR coaching methodology from your programs and member interactions, then applies it consistently.
Access AI coaching via the Chat button in the app header.
No. Your personal data (workouts, nutrition, messages) is NEVER used to train public AI models.
Here's how AI works in MyTrainerOS:
- AI recommendations are based on your own data only
- Your trainer's methodology is learned from their programming patterns
- General fitness knowledge comes from pre-trained models (not your data)
- All AI processing follows strict privacy and encryption standards
Read our full AI privacy policy in Settings → Privacy & Security.
Yes! You have full control over AI features:
- Go to Settings → AI Preferences
- Toggle individual features on/off:
- Voice logging
- Photo nutrition
- AI coaching chat
- Proactive suggestions
- Smart notifications
- Save preferences
Note: Disabling AI features won't affect your trainer's ability to coach you.
MyTrainerOS uses JITAI (Just-In-Time Adaptive Interventions) to send helpful nudges at optimal moments:
- Workout reminders: When you typically train but haven't started
- Nutrition check-ins: If you haven't logged food by mid-day
- Recovery alerts: When HRV drops significantly (suggesting extra rest)
- Milestone celebrations: When you hit a PR or streak
Nudges are non-judgmental and focus on support, not shame.
Customize: Go to Settings → Notifications to adjust nudge frequency and timing.
No! AI is designed to enhance your trainer's coaching, not replace them.
Your trainer:
- Creates your programs and sets your targets
- Makes strategic decisions about your training
- Provides personalized guidance and accountability
- Builds a relationship with you
AI assists by:
- Making logging faster (voice, photo)
- Answering quick questions 24/7
- Providing real-time form tips during workouts
- Freeing up your trainer's time for strategic coaching
Think of AI as your trainer's assistant, not their replacement.
To add a member:
- Go to Members tab
- Tap Add Member
- Enter their email address
- Select a pricing tier (or custom pricing)
- Optionally add initial notes
- Tap Send Invitation
Your new member will receive an email to create their account. Once they accept, they'll appear in your member list.
Note: Members must have a MyTrainerOS account. If they don't, they'll be prompted to create one when accepting your invitation.
To assign a program:
- Go to Members → select a member
- Tap Programs
- Tap Assign Program
- Select from your program templates or create a new one
- Set the start date
- Optionally add a welcome message
- Tap Assign
Your member will be notified and can view the program in their Workouts tab.
Pro tip: Use program templates to save time when onboarding new members with similar goals.
View member progress from their profile:
- Go to Members → select a member
- Tap Progress tab
- View:
- Workout compliance: Completed vs. assigned workouts
- Nutrition adherence: Macro tracking consistency
- Body metrics: Weight, body fat %, measurements
- Progress photos: Side-by-side comparisons
- Performance: Strength gains and PRs
Dashboard view: See all members' weekly compliance at a glance from your trainer dashboard.
MyTrainerOS includes built-in messaging:
- Go to Messages tab
- Select a member or tap New Message
- Type your message
- Optionally attach:
- Workout links
- Progress photos
- Nutrition targets
- Files/documents
- Tap Send
Members receive push notifications for new messages. You can also message from a member's profile page.
Pro tip: Use Broadcast Message to send announcements to all members at once.
To update a member's macros:
- Go to Members → select member
- Tap Nutrition
- Tap Edit Targets
- Enter new protein, carbs, and fat targets
- Optionally set different targets for training vs. rest days
- Add a note explaining the changes (member will see this)
- Tap Save & Notify Member
Your member receives a notification and can see the new targets immediately in their Nutrition tab.
When a member cancels their subscription:
- You receive a notification
- Their status changes to Canceled in your member list
- They retain access until the end of their billing period
- After that, they're moved to Inactive Members
- You can still view their historical data
Reactivation: Inactive members can reactivate anytime. You'll be notified and they'll resume their previous program.
Note: You don't lose your historical data with that member, even if they leave.
MyTrainerOS streamlines weekly check-ins:
- Set check-in day: Configure in member settings (e.g., every Sunday)
- Member submits: They're prompted to log weight, photos, and weekly reflection
- You review: Check-ins appear in your Dashboard with a notification
- Respond: Leave feedback, adjust program, or schedule a call
Bulk check-ins: View all pending check-ins in the Dashboard and process them in batch.
AI assistance: AI can draft initial responses based on member data (you review and edit before sending).
Yes! To transfer a member:
- Go to Members → select member
- Tap Settings (gear icon)
- Select Transfer Member
- Enter the new trainer's email (they must be a MyTrainerOS trainer)
- Add a handoff note with important context
- Tap Transfer
The new trainer will receive an invitation. Once they accept, all member data (workout history, nutrition logs, etc.) transfers with them.
Note: You retain view-only access to the member's historical data from your time coaching them.
MyTrainerOS includes a built-in CRM to manage your sales pipeline:
Lead stages:
- New: Just added, no contact yet
- Contacted: Initial outreach sent
- Qualified: Expressed interest, fit for your services
- Consultation: Sales call scheduled or completed
- Won: Became a paying member 🎉
- Lost: Not interested or didn't convert
Access the pipeline from Members → Leads tab.
Drag and drop: Move leads between stages with a swipe.
To add a new lead:
- Go to Members → Leads
- Tap Add Lead
- Enter their information:
- Name
- Phone (optional)
- Source (e.g., Instagram, referral, website)
- Notes
- Tap Save
Leads start in the New stage. You can then add tasks (e.g., "Send intro email") and set reminders.
Import leads: Tap Import CSV to bulk-upload leads from a spreadsheet.
MyTrainerOS includes email marketing (no Mailchimp needed!):
- Go to More → Analytics & Reports → Campaigns (renamed from Email Campaigns on 2026-08-14)
- Tap Create Campaign
- Choose a template or start from scratch
- Write your email (rich text editor with drag-and-drop)
- Select recipients (all members, leads only, specific tags)
- Schedule or send immediately
Tracking: See open rates, click rates, and replies in the campaign dashboard.
Templates: Save common emails (welcome sequence, check-in reminders) as templates.
Yes! Create automated drip campaigns:
- Go to Marketing → Automations
- Tap Create Sequence
- Name your sequence (e.g., "New Lead Nurture")
- Add emails to the sequence:
- Day 0: Welcome email
- Day 2: Free workout guide
- Day 5: Success story
- Day 7: Book consultation
- Set triggers (e.g., "When lead is added")
- Activate sequence
Leads automatically receive emails based on your schedule. They're removed from the sequence if they become members or unsubscribe.
Lead sources help you understand which marketing channels work best:
Default sources:
- Referral
- Website
- Other
Custom sources: Add your own (e.g., "YouTube", "Podcast", "Local Gym")
Analytics: View lead source breakdown in Marketing → Analytics to see which channels convert best.
This helps you double down on what works and cut what doesn't!
MyTrainerOS includes a simple landing page builder:
- Go to Marketing → Landing Pages
- Tap Create Landing Page
- Choose a template (Consultation, Free Guide, Bootcamp)
- Customize:
- Headline and description
- Call-to-action button
- Images and testimonials
- Form fields to collect
- Tap Publish
You'll get a custom URL (e.g., app.mytraineros.com/yourname/consultation) to share on social media, ads, or email.
Leads are automatically added to your CRM when they submit the form.
Yes! Use tags to segment contacts:
- Create tags like "Weight Loss", "Muscle Gain", "Beginners", etc.
- Tag leads and members based on their goals or interests
- When sending campaigns, filter by tags
Example: Send a "Bulk Program Launch" email only to contacts tagged "Muscle Gain".
Smart segments: Create dynamic segments like:
- "Active members who haven't checked in this week"
- "Leads who haven't replied in 7 days"
- "Members with birthdays this month"
Manage tags in Marketing → Tags.
Trainers: To receive payments, you must connect Stripe:
- Go to Settings → Payments
- Tap Connect Stripe Account
- Follow Stripe's onboarding (provide business details, bank account, tax info)
- Complete verification (may take 1-2 days)
- Once approved, you can accept payments
Note: You must have a Stripe account to accept member payments. MyTrainerOS uses Stripe Connect for secure, compliant processing.
To configure your pricing tiers:
- Go to Settings → Pricing
- Tap Add Pricing Tier
- Enter:
- Tier name (e.g., "1-on-1 Coaching")
- Monthly price
- Description of what's included
- Save tier
Create multiple tiers for different service levels (e.g., Basic, Premium, Elite).
When adding members, select which tier they're on. You can also set custom pricing for individual members.
Payout schedule (via Stripe):
- Standard: Funds transferred to your bank account 2 business days after member is charged
- Instant: Available for an additional fee (varies by country)
Fees: Stripe charges standard processing fees (2.9% + $0.30 per transaction). MyTrainerOS does not take any additional platform fees on your member payments — you keep everything after Stripe's processing costs.
Example: Member pays $200/month
- Stripe processing fee: $6.10
- You receive: $193.90
View payout history in Settings → Payments → Payouts.
To issue a refund:
- Go to Members → select member
- Tap Payments tab
- Find the payment to refund
- Tap Issue Refund
- Select full or partial refund
- Add a reason (optional, for your records)
- Confirm refund
The refund is processed immediately through Stripe. It typically appears in the member's account within 5-10 business days.
Note: Stripe processing fees are not refunded by Stripe on refunded transactions.
For members paying trainers:
- Credit cards (Visa, Mastercard, Amex, Discover)
- Debit cards
- Apple Pay
- Google Pay
For MyTrainerOS subscriptions:
- Same as above
All payments are processed securely through Stripe. MyTrainerOS never stores your full card details.
Note: We do not accept PayPal, Venmo, or cryptocurrency at this time.
When a member's payment fails:
- You're notified via email and in-app
- The member is notified and prompted to update their payment method
- Stripe automatically retries 3 times over 7 days
- If all retries fail, the member's subscription is canceled
Your action: Reach out to the member via the Messages tab to resolve the issue.
Grace period: You can optionally give members grace period access while they resolve payment issues (configure in Settings → Billing Preferences).
MyTrainerOS syncs from two health platforms, not from device brands directly:
- Apple Health — on iPhone
- Health Connect — on Android
You connect the platform, not the brand. There is no brand picker anywhere in the app.
There is no direct Garmin, Fitbit, Whoop, Oura, Polar, or Suunto connection. Earlier versions of this article listed those brands and were wrong. If your device's own app writes its data into Apple Health or Health Connect, MyTrainerOS reads whatever lands there — so your device may still work, but that depends on your device's app, not on MyTrainerOS. Check it in your health app before assuming.
Health sync runs on the iPhone and Android apps only. Opening Wearable Devices in a web browser shows a note telling you to use the mobile app instead.
Find it at Settings → Wearable Devices. Note that the page itself is titled Health Data once it opens — same screen, two names.
Use the iPhone or Android app — this does not work in a web browser.
- Tap your profile picture at the top right, then All Settings → Wearable Devices.
- Tap Connect Apple Health (iPhone) or Connect Health Connect (Android).
- Your phone shows its own permission sheet. Grant read access to each metric you want shared. Anything you decline simply stays blank in MyTrainerOS — you will not get an error.
There is no brand to choose, no account to log into, and no Authorize button inside MyTrainerOS. The only permission prompt is your phone's.
Once connected, the page shows Connected and a Last sync badge. Tap Sync Now — or pull down on the page — to pull data immediately. After that it syncs on its own roughly every 4 hours on iPhone and every 6 hours on Android; your phone's operating system may delay a run to save battery.
There is no Disconnect button in MyTrainerOS. To stop sharing, revoke MyTrainerOS's access in your phone's own Apple Health or Health Connect permission settings. That is the only off switch.
One quirk: the permission sheet asks for body weight alongside the four metrics MyTrainerOS actually reads. Declining weight does not affect your sleep, HRV, resting heart rate, or step sync.
Exactly four metrics, and the same four on both iPhone and Android:
- Resting Heart Rate
- Heart Rate Variability (HRV)
- Sleep Duration & Quality
- Steps
That is the complete list. The page shows it back to you under Synced data types once you are connected.
Calorie burn is never synced or displayed, on purpose. Wearable calorie estimates are not accurate enough to program training or nutrition against. If you want a calorie figure, log your food instead — that number is yours and it is measurable.
Earlier versions of this article promised four things that do not arrive. To be straight with you:
- Device readiness or recovery scores (Whoop Recovery, Oura Readiness, Garmin Body Battery) are not imported. MyTrainerOS calculates its own readiness score from your HRV, sleep and training load — it is a MyTrainerOS number, not your device's.
- Workout heart rate is not read. MyTrainerOS writes the workouts you log into your health app; it does not read workout sessions back out.
- Sleep stages (deep, REM, light) are collected on iPhone but are not shown anywhere in the app today. The Sleep figure you see is total duration.
- A Data Preferences screen does not exist. You choose what to share in your phone's health permissions, not in MyTrainerOS.
Anything your device did not record shows as -- rather than a guess. MyTrainerOS never fills a gap with an estimate.
Work through these in order:
- Check you are on the mobile app. Health sync does not run in a web browser. In the browser, Wearable Devices only shows a note pointing you to the iPhone or Android app.
- Check the status. Open Settings → Wearable Devices. If it shows a Connect button instead of Connected, authorisation never completed — tap it again and accept your phone's permission sheet.
- Force a run. Tap Sync Now, or pull down on the page. You will get a toast telling you how many days synced, or what went wrong.
- Check permissions in your phone, not in MyTrainerOS. Each metric is granted separately in Apple Health or Health Connect. A metric you declined stays blank silently — there is no warning in the app.
- Confirm the data is in your health app first. MyTrainerOS reads from Apple Health and Health Connect; it does not talk to your tracker. If your device's own app has not written last night's sleep into your health app, there is nothing for MyTrainerOS to read.
Note: a previous version of this article told you to tap Disconnect then reconnect. There is no Disconnect button. To fully reset the connection, revoke MyTrainerOS's access in your phone's health permissions, then tap Connect in the app again.
Two things that look like faults and are not:
- A metric your device never recorded shows --, not zero. That is by design.
- The Active tile on your dashboard always shows --. Active minutes are not one of the four synced metrics, so nothing ever fills it. That is a gap in MyTrainerOS, not a problem with your device.
Background sync runs roughly every 4 hours on iPhone and every 6 hours on Android, and your phone's OS can defer it. If you need data now, use Sync Now.
If none of this helps, contact support with your phone model, OS version, and which of the four metrics is missing.
Yes. Your assigned trainer can see the health data you sync, and there is currently no in-app switch to turn that off.
What they see: the same four metrics you see — resting heart rate, HRV, sleep duration, and steps — for the days you synced. The database restricts each day's row to you and to the trainer you are assigned to. No other trainer and no other member can read it.
What they do not see: your location, your workout routes, or any calorie figure — calorie burn is never stored or shown to anyone.
Correction to older help articles: previous versions pointed to Settings → Privacy → Trainer Visibility with per-metric toggles and defaults. That screen does not exist. The Privacy page lists Profile Visibility and Activity Sharing as plain descriptions — they are not switches, and tapping them does nothing.
Your actual control is at the source. Grant or revoke each metric in your phone's Apple Health or Health Connect permissions. Revoke there and nothing new reaches MyTrainerOS, or your trainer.
Days you already synced stay in your account. There is no self-serve way to delete only your health history; deleting your account (Settings → Delete Account) removes it along with everything else. If you want the history gone but the account kept, contact support.
Why share at all? Sleep and HRV give your trainer something concrete to adjust around. A run of short nights is a reason to change the plan for the week — it is information about your training, not a verdict on you.
If the app is slow or unresponsive:
- Force quit and restart: Close the app completely and reopen it
- Check for updates: Ensure you're on the latest app version in the App Store/Play Store
- Free up storage: Delete unused apps or photos if your phone is low on space
- Restart your phone: A simple reboot often resolves performance issues
- Clear app cache: Go to Settings → Privacy → Clear Cache
If issues persist, contact support with your device model, OS version, and a description of when the slowness occurs.
To fix sync issues:
- Check internet connection: Ensure you have a stable Wi-Fi or cellular connection
- Manual sync: Pull down on any screen to refresh data
- Log out and back in: Go to Settings → Log Out, then log back in
- Check device date/time: Ensure your device clock is set to automatic
MyTrainerOS syncs in real-time when you have internet. Offline changes are queued and sync automatically when you reconnect.
Note: Large workout logs may take a few seconds to sync across devices.
To reset your password:
- On the login screen, tap Forgot Password?
- Enter the email address associated with your account
- Tap Send Reset Email
- Check your email for a password reset link (check spam folder if not in inbox)
- Click the link and create a new password
- Return to the app and log in with your new password
Didn't receive the email? Check that you entered the correct email, or contact support for help.
To report a bug:
- Go to Settings → Help & Support → Contact Support
- Select Bug Report as the category
- Describe:
- What you were trying to do
- What happened instead
- Steps to reproduce the issue
- Optionally attach a screenshot
- Tap Submit
Our team investigates all bug reports. You'll receive a ticket ID and we'll update you on the fix status.
Thank you for helping us improve MyTrainerOS!
Same path as a gym owner: your plan is cancelled in the Stripe billing portal, not inside MyTrainerOS.
- Tap your profile picture at the top right, then tap All Settings.
- Under Payments, tap Billing & Plan.
- Tap Manage billing & invoices to open the Stripe billing portal in a new browser tab.
- Cancel your plan there.
If you are on the Free tier there is nothing to cancel. Billing & Plan shows your current plan at the top — if it reads Free, you are not being charged for MyTrainerOS.
On a trial? The same screen shows Trial ends with the date. Cancel before that date and you are not charged. You only ever get one trial per account, so cancelling and re-subscribing later will bill you immediately.
Two things cancelling does not touch:
- Your members' payments to you. Those run on your own Stripe Connect account and keep billing. Cancel each one from the Members tab if you are winding down.
- Your Stripe Connect account. Payouts of money already collected are unaffected.
When the cancellation takes effect you drop to the Free tier — your account and member history stay.
Can't open the portal, or no cancel option inside it? Go to All Settings → Help Center → Contact Support and file a Billing question before your renewal date.
You can do this yourself in the app, in about four taps.
- Tap your profile picture at the top right of any screen. (There is no Settings tab on your bottom bar — the profile picture is the way in.)
- Tap All Settings.
- Under Subscription, tap My Subscription.
- Tap Cancel Subscription at the bottom of the card.
- A confirmation appears. Tap Cancel Subscription again to confirm, or Keep Subscription to back out.
You keep access until the end of the period you have already paid for. Nothing is charged after that. The card then shows a Canceling badge and the line “Your subscription will end on ”, and the Cancel Subscription button disappears.
You are not asked for a reason, and there is no option to end it immediately — cancellation always takes effect at the end of the current billing period.
If the screen says No Active Subscription, you have nothing being billed through MyTrainerOS. If you are still being charged, that payment is arranged outside the app — ask your trainer or gym directly.
To update a card or download receipts instead of cancelling, tap Manage Billing on the same screen.
This cancels what you pay your trainer or gym. It does not close your MyTrainerOS account — your workouts, nutrition history and progress stay.
The button opens Stripe in a new browser tab, so the usual cause is a blocked pop-up. Work through these in order:
- Allow pop-ups for MyTrainerOS in your browser, then tap Manage billing & invoices again.
- If you get a red message at the top of the screen, note that it is generic — it does not tell you the real cause. The most common one is that you have no payment method on file yet, which is normal on the Free tier. Check the plan name at the top of Billing & Plan: if it says Free, there is no subscription to manage or cancel.
- If your plan is Starter, Coach Pro or Studio and the portal still will not open — or it opens but offers no way to cancel — that is on our side to fix, not yours.
Do not wait for the renewal date. Go to All Settings → Help Center → Contact Support, choose Billing question, and say which plan you are on and what you saw. Support can cancel it for you. If you cannot reach the form, email support@mytraineros.com.
There is no other cancel control in the app to try: Change plan only moves you up a tier, and deleting your account does not stop billing.
No — and this order matters. Deleting your MyTrainerOS account does not cancel your paid plan. Deleting first can leave a subscription running with no account attached to it.
Do it in this order:
- Cancel your plan first. Profile picture → All Settings → Billing & Plan → Manage billing & invoices, and cancel in the Stripe portal. Members cancel at All Settings → My Subscription → Cancel Subscription.
- Confirm the cancellation took effect — check for the confirmation in the portal, or that Billing & Plan now reads Free.
- Then delete the account at All Settings → Delete Account. You will be asked to re-confirm your identity first.
Deletion is not instant: you get a 72-hour window to change your mind. Return to the same screen and tap Cancel Deletion to stop it.
If you only want to stop paying, cancel — do not delete. Cancelling drops you to the Free tier and keeps your account, members and history. Deleting removes them.
If you have already deleted an account and are still being charged, email support@mytraineros.com straight away.
This is separate from your own MyTrainerOS plan. Do it from the Members tab.
- Open the Members tab and find the member.
- Tap the ⋮ (three-dot) button on their row.
- Tap Cancel Subscription.
- Confirm with Cancel subscription, or back out with Keep subscription.
The subscription is set to end at the close of the current billing period — no further charges, and the member keeps access until then. They stay on your roster; cancelling billing does not remove them.
If you do not see Cancel Subscription in that menu, one of two things is true:
- The member has no active subscription with you — they may be on a prepaid session pack or paying outside the app.
- You are not the trainer on the subscription. The option only appears for the trainer who is billing that member. Gym owners: if one of your trainers set up the subscription, you will not see this option — ask that trainer to cancel it, or contact support.
To remove someone from your roster entirely, use Remove Member instead. That dialog offers a tick-box, Also cancel their subscription (at period end), which is ticked by default — leave it ticked unless you deliberately want their billing to continue.
There are three plans. Starter is free forever; Coach Pro and Studio are paid.
- Starter — Free. Up to 5 active members, core tracking only. No card required.
- Coach Pro — $49/month, or $468/year ($39/month). Unlimited members, the full AI toolkit (AI Coach, voice logging, photo nutrition, AI meal plans, AI progress reports, natural-language search, voice commands, auto-progression), scheduling and booking, CRM, digital products, SMS, video rooms, email marketing up to 5,000 sends per month, and custom branding — your logo and colours in the member-facing app.
- Studio — $99/month, or $948/year ($79/month). Everything in Coach Pro, plus multi-trainer management, multiple locations, payroll, your own custom domain (app.yourgym.com), and email marketing up to 25,000 sends per month.
Custom branding is included with Coach Pro — you do not need Studio for your logo and colours. The Studio-only part of white-labelling is your own custom domain.
Two accuracy notes before you decide:
- The in-app Upgrade Plan screen still lists Digital Products and Custom Branding as excluded from Coach Pro, and shows Studio's email allowance as 5,000. That card text is out of date — what your account actually gets is the list above.
- Reserve with Google appears as a Studio feature but is not switched on in any environment yet, so do not buy Studio for it.
Billing runs through Stripe from our price catalogue, so your invoice always shows the catalogue price. A one-time $100 Studio setup fee exists in the catalogue and is mentioned on the website as waived during launch — it is not added at checkout; only the subscription price is charged.
Starter and "Free" are the same plan under two names. It does not expire and needs no card.
Included: up to 5 active members, workout programming, member messaging, progress tracking and payments. Demo members do not count toward the 5.
Not included on Starter:
- AI Coach, AI meal plans, AI progress reports, auto-progression
- Voice logging and photo nutrition
- Scheduling & Booking — the Schedule tab is a paid feature
- CRM and lead pipeline, email marketing, SMS, video rooms
- Custom branding, digital products, analytics
When you reach 5 members, inviting another is blocked with Client limit reached (5/5) on free plan. Nothing is deleted and no existing member loses access — you simply cannot add a sixth until you upgrade.
Note: our marketing site describes Starter as including scheduling. It does not — scheduling requires Coach Pro or Studio.
The trial runs on a paid plan and starts at checkout, not at sign-up.
- Creating an account puts you on Starter (free, 5 members, no card). Nothing is counting down.
- When you choose Coach Pro or Studio and complete Stripe Checkout, you get 14 days free. Stripe collects a card at this step.
- You are charged the plan price when the 14 days end, unless you cancel first.
One trial per account, ever. If you subscribe, cancel, and subscribe again later, the second checkout starts billing immediately at full price rather than granting another free period.
While the trial is running, Settings → Billing & Plan shows Trial ends with the date.
Please check before publishing: our marketing site advertises a 30-day trial with no credit card required, and says every new account starts on Coach Pro. The app does neither — new accounts start on free Starter, and the trial is 14 days with a card. The two need to be reconciled before this article goes live.
- Tap your profile picture at the top right, then All Settings → Billing & Plan.
- Tap Change plan. (You can also just open a locked feature — the app takes you to Upgrade Plan and names the feature you tried to use.)
- Choose Monthly or Annual at the top. Annual is badged Save 20% and is preselected.
- Tap the Coach Pro or Studio card to select it.
- Read the renewal line, then tick I agree that my subscription will automatically renew… — the button stays disabled until you do.
- Tap Start 14-Day Free Trial and complete Stripe Checkout.
You return to Upgrade Plan with Welcome aboard! and your Current plan badge updates. Features unlock straight away.
Who can do this: owners and trainers. Admin assistants can open the Upgrade Plan screen but see it read-only with no checkout button — an assistant cannot buy the gym's plan. Members never see it at all.
Already subscribed? This flow will not work for a plan change. See "How do I change plans or cancel?".
Your account returns to Starter — the free plan. Nothing is deleted.
- Your data stays. Members, programs, history, branding settings and locations are all retained and remain exportable. Today nothing on your roster is switched off when you drop to Starter.
- Paid features stop immediately. AI Coach, voice and photo logging, AI meal plans and progress reports, scheduling, CRM, email and SMS all return a payment-required response as soon as the plan lapses.
- Adding members is blocked. Starter allows 5. If you already have more, you keep them but cannot invite anyone new until you upgrade.
- A failed payment is not an instant downgrade. While Stripe is retrying (past due), your plan stays active.
- Re-subscribing restores everything automatically — anything that had been switched off by a plan change is turned back on when the paid plan starts again.
Billing & Plan shows Trial expired — add a payment method to keep access. when a trial has lapsed without an active subscription.
Once you have an active subscription, plan changes and cancellation happen in the Stripe billing portal, not in the app.
- Tap your profile picture at the top right, then All Settings → Billing & Plan.
- Tap Manage billing & invoices. The Stripe billing portal opens in a new tab, where your payment method, invoices and receipts live.
Two things that trip people up:
- There is no cancel button in the app for your MyTrainerOS plan. The screen labelled My Subscription is a member's screen — it shows a member's plan with their coach or gym, not your platform subscription.
- Using Change plan → a plan card → Upgrade Now while you already have an active subscription will fail with a generic error. That path only completes for accounts without a live subscription. Use the billing portal to move between Coach Pro and Studio.
If you have never had a paid plan, Manage billing & invoices will report We could not open your billing portal. — there is no billing record to open yet. That is expected on Starter.
MyTrainerOS does not hold your money. Every payment your members make goes into a Stripe account opened in your own name, and Stripe pays it out to your bank. Connecting that account is what makes payments possible at all.
Stripe is legally required to verify who is receiving the money before it can pay anyone out, so the setup is really an identity and bank-details check. Stripe collects and verifies that information directly — MyTrainerOS never sees or stores your ID documents or bank details.
Where to do it: tap Settings, scroll to the Payments section, and use the Stripe Connect row.
What is blocked until it is done:
- A member trying to buy one of your marketplace products is refused with "This trainer cannot accept payments yet — their Stripe onboarding is incomplete."
- Retail sales are refused entirely — including cash — with "This store is not connected to Stripe yet… No sale was recorded: do not accept payment." Every sale is recorded against the store's Stripe account, so the till will not open before onboarding is finished.
- Payout requests are refused with "Connect a Stripe account before requesting a payout."
Who can set it up: gym owners and trainers. An admin assistant who opens the page is sent back to the dashboard with "This feature is only available for trainers or gym owners." Members never see it.
There are two ways in, and they behave slightly differently.
From Settings (owners and trainers):
- Tap your profile picture at the top right, then All Settings → the Payments section.
- Tap Connect Stripe Account. Stripe's onboarding opens in a new browser tab.
- Fill in Stripe's form and submit. Stripe returns you to the Payment Setup screen, which shows Setup Complete! for a few seconds.
From the owner setup checklist: on your dashboard, open Complete your setup and tap Connect Stripe & set up products. This opens the full Payment Setup screen, where you can choose Individual (sole proprietor or freelance trainer) or Company (registered business or LLC) before tapping Get Started. Trainers do not get this checklist item — use Settings.
Pick your business type before the first attempt. The Connect Stripe Account button in Settings always creates an Individual account. Your Stripe account is only created once, so if you run an LLC or corporation, start from the Payment Setup screen and select Company first. Selecting it later does nothing — the account already exists; correct business details inside Stripe's own flow instead.
If you drop out partway: Stripe's link is single-use and expires. Reopen the screen and tap Continue Setup (or Complete Setup in Settings) to get a fresh one. If you come back without finishing, you will see a Continue Setup prompt with Cancel and Continue.
Two limits worth knowing: accounts are created as US accounts — there is no country picker. And Stripe's own documentation says its hosted onboarding runs in web browsers and is not supported inside an app's embedded web view, so if the Stripe page will not load from inside the mobile app, open MyTrainerOS in a normal browser and start again from there.
What we pass to Stripe for you (so you are not retyping it): your account email and full name from your MyTrainerOS profile, your business type choice (Individual or Company), country US, and a business category of personal training and fitness coaching. Stripe still asks you to confirm these before you accept its service agreement.
What you will need to hand. Stripe decides its exact questions at the time you go through, based on your business type and its own risk checks — so treat this as what to have ready, not a fixed list:
- Your legal name, date of birth, and address
- A tax ID — typically your SSN if you are an individual or sole proprietor, an EIN if you are a registered company
- Bank account details for payouts (account holder name, account and routing number)
- For a company: the legal entity details plus the people who own or control it
- Sometimes a photo of a government ID or a proof-of-address document, if Stripe cannot verify you from the details alone
None of that comes to us. Stripe collects and verifies it directly, and MyTrainerOS never stores your ID documents or bank details. If Stripe needs something extra later, it will ask you for it — that is why a connected account can go back to Action Required weeks after you finished.
The Payment Setup screen shows three separate facts, and they turn on at different times:
- Details Submitted — you finished Stripe's form. It does not mean you were approved.
- Charges Enabled — money can come in. You can bill members and take card payments.
- Payouts Enabled — money can go out to your bank. Until this is on, payments still work but the balance sits at Stripe.
Charges on with payouts off is normal and usually means Stripe is still verifying you, or it needs a bank account. Your earnings are not lost — they are held in your Stripe balance and released once payouts turn on.
You are finished when all three are on. MyTrainerOS only treats you as done when details are submitted, charges are enabled, payouts are enabled, and Stripe has confirmed onboarding completed. Anything short of that shows:
- A yellow Action Required card with Complete Setup, listing which of the three is still missing, and a Continue Setup button that sends you back to Stripe.
- In Settings → Payments, an Action Required badge and the line "Setup incomplete - action required".
What finished looks like: a green Payments Enabled card, Account Details showing Charges and Payouts both Enabled, Settings reading "Connected and ready to accept payments" with a green check, and the Pricing Tiers and Payment History rows appearing underneath.
If the status looks stale, reopen the screen — it re-reads your status each time, and pulls fresh status from Stripe whenever you return from Stripe's flow.
Your members pay into your own Stripe account, not ours. That means the payout schedule is the one set on your Stripe account — MyTrainerOS does not set it, change it, or delay it.
Stripe's standard timing for US accounts is a rolling daily payout of funds from charges captured about 2 business days earlier. New accounts are often held longer at first while Stripe completes its review. Your account's actual schedule is whatever Stripe has on file for it.
Where to see payouts: on the Payment Setup screen, tap View Payout History. You get a Recent Payouts list of your five most recent payouts with date, amount and status. If there are none yet you will see "No payouts yet. Payouts will appear here once you start receiving payments." The list is built from payout events Stripe sends us, so a payout appears shortly after Stripe creates it, not the instant a member pays.
Two things worth knowing before you go looking:
- There is no payout-schedule control in MyTrainerOS. A payout schedule and delay screen exists in the codebase but is not reachable from anywhere in the app, and it would only save to our records rather than change anything at Stripe. To change your schedule, work with Stripe directly.
- MyTrainerOS does not offer instant payouts. Standard payouts on your Stripe schedule are what runs.
Nothing. MyTrainerOS takes no cut of your sales — not a percentage, not a per-transaction fee. Your payments settle directly into your own Stripe account and never pass through ours. The setup screen states it as You keep 100%: on a $100 payment, the platform fee is $0. This is a product commitment, not a plan perk: no platform fee is configured anywhere in the payment code, and an automated check runs on every build to make sure none is ever added.
Stripe's own processing fee still applies. That fee is billed to your Stripe account and deducted from your balance by Stripe — so of a $100 payment you keep $100 minus Stripe's fee, and MyTrainerOS receives none of it. Because the account is yours, Stripe's dispute fees and your 1099-K also sit with your account rather than with us.
We make money from your MyTrainerOS subscription, not from your transactions.
If you have ever been quoted a per-transaction platform fee for MyTrainerOS, that is wrong — please tell support so it can be corrected.
There is no Stripe dashboard for your connected account, by design. Accounts are created without Stripe-hosted dashboard access — MyTrainerOS is meant to be your dashboard. So Open Stripe Dashboard in Settings and View Stripe Dashboard on the Payment Setup screen have nothing to open, and you should expect an error rather than a Stripe login page. Do not keep retrying or hunt for a Stripe password: there isn't one to find. Report it to support instead of working around it — the buttons should not be offering something the account cannot do.
Use MyTrainerOS for what those buttons imply: View Payout History on Payment Setup, and Payment History under Settings → Payments.
Disconnecting. In Settings → Payments, Disconnect Account asks you to confirm on a Disconnect Stripe prompt (Cancel / Disconnect). After that:
- You cannot receive payments through MyTrainerOS until you connect again.
- It removes the link between MyTrainerOS and your Stripe account. Your Stripe account itself, and any balance or pending payouts in it, stay with Stripe.
- Your saved payout preferences in MyTrainerOS are removed along with the link.
Do not disconnect to "reset" a stuck setup — reconnecting starts a new account record. If your status is stuck, use Continue Setup first, and contact support if that does not clear it.
It isn't in the menu. The QuickBooks screens exist and work, but no link to them has been added anywhere in the app — not in Settings, not on the dashboard, and not on the Integrations page (that page lists a separate integrations marketplace and does not mention QuickBooks at all). Until a link is added, open the address directly:
/tabs/settings/quickbooks— QuickBooks setup/tabs/settings/quickbooks/sync-status— Sync History/tabs/settings/quickbooks/callback— Intuit's return page; you never open this one yourself
Three things must be true or the page won't do anything:
- You must be a gym owner. All three routes allow the gym owner role only. A solo trainer, admin assistant or member is turned away with the message "This feature is only available for gym owners." and sent to the dashboard. There is currently no way to delegate QuickBooks to an admin assistant.
- Your account must own a facility. The page looks up the facility you own and attaches the QuickBooks company to it. If you have no facility, tapping Connect QuickBooks Online does nothing at all — no error, no message. Add your gym first under Settings → Facility Details.
- QuickBooks credentials must be configured on our side. If they aren't, you'll see the toast "Failed to initiate QuickBooks connection" when you tap Connect. That's a server configuration issue — contact support rather than retrying.
One note on plans: our pricing page lists QuickBooks as a Studio-plan feature, but the app does not currently check your plan on these screens — only your role. Treat the pricing page as the commercial answer and expect that to change.
Go to Settings → Cancellation Policies (/tabs/settings/cancellation-policies). Only gym owners and trainers can open this page — admin assistants are blocked by the route guard.
Set the global policy first. It is the fallback for every session type.
- Under Global Policy, tap Add (the button only appears while no global policy exists).
- Cancellation Window — choose 1, 2, 4, 8, 12, 24 or 48 hours. 24 hours is preselected.
- Late-Cancel Fee ($) and No-Show Fee ($) — both start at 0.00, and 0 means nothing is charged.
- Forfeit Session (on by default) — also deducts the session from the member's prepaid pack.
- Apply to Memberships (on by default) — enforces fees for members on an active membership plan too.
- Tap Create Policy.
Per-service overrides. Under Service Overrides, tap Add, pick a Service Type, then fill in the same fields. An override completely replaces the global policy for that service. You get one override per service type — a service that already has one is removed from the picker.
If you configure nothing at all, no fee is charged and no prepaid session is deducted. "No policy" is treated as "no consequence", not as "defaults apply".
To pause charging, edit the policy and set both amounts to 0, or tap Remove and confirm Remove in the Remove Policy dialog. Be aware: the database has a fees_enabled master on/off switch, but no screen in the app exposes it. Zeroing the amounts is the only in-app way to suspend fees, and you will have to re-type your amounts when you turn them back on.
Members never see this policy in the app. The "Cancel by …" notice generated from it appears only on the staff booking form, and members have no cancel control on My Schedule — every cancellation goes through you. Tell members your policy outside the app.
Because two different windows exist and they are not the same setting.
- Cancellation Window on the Cancellation Policies page is used only to generate the "Cancel by …" notice shown on the booking form. It does not decide whether a cancellation is late.
- The decision is made from each service type's own
cancel_window_minutesvalue, which defaults to 24 hours. When you cancel an appointment, the app compares the session start time against that value and marks it early_cancel or late_cancel. Only late_cancel triggers your late-cancel fee.
There is currently no screen that lets you change the deciding value. It is written once when your default service types are created — 24 hours for 60-min Personal Training, 12 hours for 30-min Quick Session, 48 hours for 90-min Assessment — and nothing in the app edits it afterwards.
What you can do today:
- If you need a specific cancellation to count as late, cancel it as normal and then use Mark No-Show only when the member genuinely did not attend — do not use no-show as a substitute for a late cancel, because it is what the member's ledger and your reports will show.
- Keep your Cancellation Window setting matched to the 24-hour default so the notice members are quoted matches what the system actually enforces.
- Contact support if you need a non-default window enforced — it currently requires a change on our side.
MyTrainerOS marks no-shows for you, so you do not have to remember to do it.
Set the window: Settings → Cancellation Policies → Auto No-Show → Mark no-show after. Choose 5, 10, 15, 20, 30 or 60 minutes. The default is 10 minutes, and the change saves as soon as you pick it (you'll see a confirmation toast).
What runs, and when:
- A background job runs every 5 minutes. Your window is therefore a floor, not an exact moment — a 10-minute window can fire up to about 15 minutes after the start time.
- It looks at appointments still marked Booked, Confirmed or Arrived whose start time has passed and where no arrival was recorded. Marking a member arrived stops the clock.
- Each qualifying appointment is set to no_show, a visit record is written for billing and payroll, and your no-show fee is attempted.
- You get a notification: "[Member] marked as no-show", noting the window that was used.
The window and the fee are separate settings. The window only decides when the status flips. Whether money moves depends on the No-Show Fee ($) on your policy, and whether a session is consumed depends on Forfeit Session.
This applies to appointments only. Bookings that live as calendar events are not covered by the automatic no-show or its fee.
The fee was almost certainly recorded as a ledger debit instead of a charge — the debt is tracked, it just hasn't been collected. Work through these in order.
- Is a fee amount actually set? Settings → Cancellation Policies. If No-Show Fee ($) is 0, or you have no policy at all, nothing is charged. With no policy at all, no prepaid session is deducted either.
- Have you finished Stripe onboarding? Settings → Stripe Connect (
/tabs/settings/stripe-connect). Cancellation fees are charged inside your own Stripe account. Until onboarding is complete there is nowhere to route the money, and every fee falls to the ledger. The response message names this case explicitly rather than blaming the member. - Does that member have a card saved with you? Open the member, tap the Billing tab, and look at the Payment Method card. If it says No payment method on file, tap Add Card. The card lives on your Stripe account and nowhere else, so a card saved with another trainer does not count.
- The member must be assigned to a trainer. If they aren't, the card panel is replaced by a note telling you to assign them first.
- The card may simply have declined. That also lands as a ledger debit.
What you keep: when a fee does charge, it is a direct charge in your Stripe account — MyTrainerOS takes no cut of it, and Stripe bills you for the processing rather than us.
You must be the trainer on the appointment. The waiver is rejected for anyone else — including a gym owner waiving on behalf of one of their trainers, and admin assistants. They will see an Unauthorized error. Ask the assigned trainer to do it.
- Open Schedule → Appointments (
/tabs/schedule/appointments). - Long-press the appointment to open Quick Actions.
- Tap Waive $X Fee. This option appears only when the appointment is a no-show or a late cancel and your policy sets a non-zero fee for it.
- In the Waive Fee panel, optionally type a Reason (optional), then tap Waive $X Fee.
What happens next depends on whether money already moved.
- Fee was charged to the card — a Stripe refund is issued from your connected account first, and only then is the member's ledger credited. If the refund fails you get the real reason, nothing is credited, and the fee stays charged, so you can safely retry once the problem is fixed.
- Fee was only recorded as a debt — no refund is needed; the ledger credit simply cancels the debt.
- Your Stripe account is not connected — you get a clear error and nothing is credited, because the money cannot be returned.
The amount refunded is the amount on the ledger, not the figure printed on the button. If you changed your policy after the fee was raised, the two can differ — the ledger is the one that is honoured.
Settings → Privacy → Two-Factor Authentication. Available to every role.
- Tap the Authenticator App card.
- On Setup Authenticator App, scan the QR code with Google Authenticator, Authy or similar. If you can't scan, tap Copy under Or enter this code manually and paste the secret into your app.
- Tap Enter Verification Code and type the 6-digit code from your app.
Then save your recovery codes — this is the part that matters. The Save Your Recovery Codes screen shows 10 one-time codes. Use Copy All or Download (saves mytraineros-recovery-codes.txt), tick I have saved my recovery codes in a safe place, then tap Continue to Dashboard.
If a red banner says your codes could not be saved, stop. Those codes will not work. Tap Regenerate Recovery Codes and check for a success message before you rely on them.
Regenerating replaces all ten. Every previously issued code stops working the moment new ones are stored, so update wherever you keep them.
Can you skip it? Skip for now appears only while two-factor is optional for you. Once a trainer or gym owner has connected Stripe, two-factor becomes mandatory and the skip button is gone. Members and not-yet-connected trainers can skip, and will be prompted again.
What it protects. Your code is demanded when you open Settings → Payment History or Settings → Delete Account. Ordinary sign-in does not currently ask for it — see the article on losing your authenticator for exactly what that means.
Use a recovery code. It is the only self-service way back.
- Sign in with your email and password as usual.
- When you are asked to Verify Your Identity, tap Use Recovery Code.
- On Use a recovery code, type one of the 10 codes you saved at setup and tap Verify recovery code.
- Your authenticator is unlinked and every device is signed out. Tap Go to sign in and sign in with your password alone.
- Set two-factor up again straight away — Settings → Privacy → Two-Factor Authentication — and save a fresh set of codes.
Each code works once. The screen tells you how many remain. Five failed attempts in 15 minutes will temporarily block further tries; wait and retry.
Good news about the scope of the problem. A lost authenticator does not lock you out of MyTrainerOS in general. Ordinary sign-in — with your password, or with Continue with Google if you linked it — still works, and the app does not demand a code at the front door. The code is required only for Settings → Payment History and Settings → Delete Account. Linking Google does not substitute for the code on those two screens.
If you have lost the codes as well, contact support. There is no self-service reset, and we cannot restore access without one of the codes. Two specific messages you may see:
- "That code is not valid." — wrong code, or none are left.
- "Your recovery codes were issued in an older format that can no longer be verified." — codes generated before August 2026. They cannot be used; support has to help. If your codes are that old and you can still sign in, regenerate them today.
Read this before you rely on a passkey. Today a passkey satisfies the check that you have a second factor, so the two-factor setup prompt stops nagging you. It cannot sign you in, and it cannot get you back into a locked account. There is no "sign in with a passkey" button anywhere in the app — the capability is built but not yet wired to a screen.
What this means in practice:
- A passkey alone is not a substitute for an authenticator app plus saved recovery codes.
- If you register only a passkey and later need a code for Settings → Payment History or Settings → Delete Account, the passkey will not satisfy it.
- If you lose access, only a recovery code helps — and recovery codes are issued when you set up an Authenticator App, not when you add a passkey.
To add or remove one: Settings → Privacy → Two-Factor Authentication, then tap the Passkeys card. With none registered it starts registration immediately; with one or more it opens Manage Passkeys, where Add New Passkey adds another and the bin icon removes one. If the card reads Device doesn't support passkeys, that device has no Face ID, Touch ID or Windows Hello available to the browser.
Recommended setup: enable the Authenticator App and save your 10 recovery codes first. Add passkeys afterwards, as convenience.
No. MyTrainerOS has no direct integration with Garmin, Fitbit, Whoop, Oura, Polar, or Suunto, and no brand picker in the app. If you sell on "we support Whoop", the member finds out at onboarding — and that is your credibility, not ours.
What you can say accurately:
- MyTrainerOS syncs from Apple Health on iPhone and Health Connect on Android.
- If a member's device writes into one of those, its data reaches MyTrainerOS. Whether it does is a question about that device's own app — confirm it with the member before promising anything.
- Four metrics arrive: resting heart rate, HRV, sleep duration, and steps.
- You see those values for members assigned to you, once they connect.
- Sync is mobile-only — the web app cannot read health data.
Do not promise:
- Device recovery or readiness scores. Whoop Recovery, Oura Readiness and Garmin Body Battery are not imported. MyTrainerOS computes its own readiness score from HRV, sleep and training load — describe it as ours, not theirs.
- Calorie burn. It is deliberately never displayed, because wearable estimates are not accurate enough to program against. Sell that as a decision, not a missing feature.
- Sleep stages, workout heart rate, or a per-metric sharing dashboard. None of these are available to members or to you today.
If a prospect's decision genuinely hinges on a direct brand integration, say it is not available and route the request to support so it lands in the roadmap rather than in a promise.
Still need help?
Can't find the answer here? Write us a message — this page builds it for you and hands it to your email app, so you keep a copy of exactly what you sent.
Or email us directly at support@mytraineros.com