Only versions with significant user visible changes are listed here.

TrainAsONE 0.85.168 (2023-11-17)

  • Tweak to fast workout paces when target-time training
  • Rework injury related pace override handling for new AI pace calculations
  • Reduce dependency on completion of first Perceived Effort assessment - no longer need to hide paces on upcoming workouts
  • New peak performance prediction pace sanitiser to better handle uncommon data
  • Sync HRV data from Garmin Connect (not currently shown to users)
  • Improvements to linking completed Garmin activities to planned workouts
  • Better handle any failure to push activity data to Strava
  • Adapt for changes to adidas API
  • Fetch weight data from Fitbit
  • Minor adjustments for Runkeeper API revoked handling
  • Make Garmin API processing more robust in handling unexpected errors
  • Performance improvements in weather data handling
  • Improvements to vRE calculations
  • Fix Retrospective Riegel predictions using the performed race itself
  • Fix Template workouts potentially not setting user stated distance

TrainAsONE 0.85.126 (2023-06-30)

  • Allow pushing activities recorded on the TrainAsONE app to Strava
  • When connecting to Garmin add separate checkboxes for enabling fetching of activity and heath related data
  • Improve the detail recorded in activity histories

TrainAsONE 0.85.123 (2023-06-13)

  • When connecting to services such as adidas, Fitbit, Garmin, Runkeeper, Strava and Suunto, allow users to select whether or not activity collection or workout pushing is enabled by default
  • Handle Strava sending lap endtimes past the end of activities (sometimes even in the future :)
  • Allow users to choose whether to schedule 3.2K and 6 minute assessments individually
  • Provide more control over email unsubscription options
  • When unpausing the Garmin activity service, contact Garmin to send any activity data from within the paused period

TrainAsONE 0.85.122 (2023-05-30)

  • Improvements to Artemis race time predictions
  • Make Training Algorithm selection clearer
  • Refinements for repetition easy steps
  • Performance improvements on plan generation for users with less than 1000 days of training history
  • Indicate Garmin ConnectIQ device firmware version and capabilities on service tile
  • Allow entering Garmin race time prediction into race data
  • Show relevant source activity next to Riegel race time predictions
  • Improvements to race time prediction probability display
  • Check distance and duration limits for user entered template workouts
  • Improvements to managing requested minimum and maximum run durations for Artemis

TrainAsONE 0.85.94 (2023-04-19)

  • Show race time predictions to Artemis users
  • Add race totalAscent and totalDescent values
  • Reworked race list page
  • Preparation for general Artemis availability

TrainAsONE 0.85.91 (2023-04-05)

  • Initial early access to new Artemis training algorithm
  • Provide interface to allow individual paces to be overridden (restricted to Artemis)
  • Allow training for specific target race time (restricted to Artemis)
  • Improve specification of Progression runs
  • Switch to Visual Crossing as primary source for weather and forecast data
  • Adjust Garmin integration to better handle overlapping notifications
  • Improvements in UltraMarathon pacing
  • Migrate remaining Garmin Training only users to unified Garmin integration
  • Better handle data from users who run off-grid against a stored plan for a week then return and upload all completed data
  • Copy perceivedExertion from Strava data into subjectiveEffort
  • Improve Suunto Guide on watch field layout
  • Add dropdown to select forecast activity to planned workout dialog, and per day training rules
  • Offer "Retry push" on service tile when a workout service has an error
  • Fix adjusting temperature and undulation for planned workouts on calendar

TrainAsONE 0.85.50 (2023-01-16)

  • Make autoGenerated Fitbit activity data clearer (does not include GPS data)
  • Provide detailed voucher breakdown on subscriptions page
  • Update for latest Garmin ConnectIQ SDK
  • Fix issue with display of Suunto Guide step status for workout steps without pace or heart rate target

TrainAsONE 0.85.43 (2023-01-09)

  • Improve handling of future plans where we see volume drops
  • Better handle high volume runners training for shorter races
  • Better filter and sort candidate planned workouts shown on edit activity screen
  • Make workout and goalDay display user startOfDay aware
  • Reduce latency in fetching changes from remote services
  • Improve retry behaviour for Garmin initially returning an error when we attempt to fetch activity data
  • Rework initial activity data fetch from remote services to better manage per-user rate limits such as Fitbit and Runkeeper
  • Implement preempting analysis/plan generation queue. Now a lower priority long-running analysis task can be preempted by a higher priority task (such as a user interacting with the app). This significantly reduces the latency before interactive tasks are picked up
  • Indicate if any service has hit a per-user rate limit on services page
  • Rework display of subscription page to make current state and any upcoming changes clearer
  • Avoid displaying previous workout when plan regeneration overdue (only an issue for free accounts during surge of new data)
  • Improvements to Suunto workout (Guide) generation
  • Added more Garmin Devices
  • Handle FIT data with multiple TrainingFileMesg messages
  • Rework remote service disconnection to avoid occasional errors
  • Always make all workouts steps visible for Perceived Effort Assessments - even when workout is beyond the "detailed data horizon"

TrainAsONE 0.84.9 (2022-09-09)

  • Indicate whether Training permission is enabled within Garmin Connect on the Garmin service tile, and provide a link to adjust if not
  • Speed up initial Garmin activity backfill process
  • When disconnecting and reconnecting to Garmin, reattach to previously fetched activities where possible

TrainAsONE 0.84.0 (2022-08-31)

  • Merge Garmin Training and Garmin Health into a single service, no longer requiring two separate links to Garmin
  • Improve display of activity and workout status on service tiles
  • Add pre-step notification messages to Suunto guided workout data
  • Allow download of past workouts from view activity page
  • Make options clearer when adding a payment card to the system
  • Fix issue where some completed activities would not link correctly to their planned workout reference

TrainAsONE 0.83.9 (2022-07-15)

  • Add upcoming workout schedule sync to Suunto Guides
  • Allow External and C25k Plans to add individual workouts on calendar days
  • Add Custom (tempo) run type
  • Switch to new searchable FAQ system, and show suggested FAQ answers on "ask question" page
  • Improve performance of initial Garmin activities fetch
  • Perform full analysis on "Ignored" activities
  • Add option to "disable workout service" (removes all workouts from remote service) in addition to "pause workout service" (leave existing workouts on remote service)

TrainAsONE 0.83.3 (2022-06-29)

  • Make planned workout select dropdown clearer, with "None" as the first option, followed by "Automatic", then candidate workouts
  • Reworked health questionnaire, allowing quicker completion with many fewer answers in most cases
  • Fix issue with rapid disconnect and reconnect to Garmin Health not always syncing activities correctly
  • Fix issue with current linked planned workout not always showing in edit activity dropdown

TrainAsONE 0.82.0 (2022-06-23)

  • Clear any temperature or undulation on upcoming workouts when user disabled temperature or undulation on profile
  • Improve "Denied by Garmin" response handling for Garmin Training
  • Automatically push workouts on resuming a WorkoutAccount
  • Rework Couch to 5K settings UI
  • Avoid issues when Garmin send health metrics with future dates
  • Misc changes to support new app features
  • Fix environment adjustment for Garmin (and Suunto) Workouts
  • Fix occasional issues disconnecting Garmin/Strava/Fitbit/Suunto/adidas/Runkeeper accounts
  • Fix issue matching completed CouchTo5K runs

TrainAsONE 0.81.11 (2022-05-09)

  • Fix issue with unadjusted workouts on CouchTo5K plan
  • Fix workout for today still showing after completion if plan locked

TrainAsONE 0.81.5 (2022-04-29)

  • Improvements to progressive pace specification
  • Extend workouts passed to external services to include explicit reference to temperature and undulation, to assist in linking completed activity data during analysis
  • Split workout and activity service handling, to allow for single services which support both activities and workouts (Suunto)
  • Fix issue where plans locked for more than four days could be incorrectly cleared

TrainAsONE 0.80.26 (2022-03-28)

  • Allow workouts to be marked as 'do not adjust for temperature/undulation'
  • Improve completed activity matching to adjusted workout data
  • Improve handling of Adidas activity data with start latitude/longitude but no detailed GPS track
  • Add snowshoe activity type
  • Avoid unnecessary plan regeneration if the first activity on a new day was a non-run
  • Fix Suunto activities sometimes being incorrectly detected as changed and triggering a plan rebuild

TrainAsONE 0.80.7 (2022-02-01)

  • Add iSmoothRun as recommended Apple Watch app
  • Implement workout temperature/adjustment history, where each adjustment for workout gains a unique /number on the end
  • Extract more activity types from additional Suunto metadata
  • Add "Circuit Training" to activity types
  • Improve handling for null headers sometimes returned by Strava
  • Update for changed Runkeeper OAuth2 API scope
  • Handle invalid whitespace at the start or GPX or TCX files
  • Fix issue where dashboard could sometimes incorrectly show a message indicating the next workout was not "the next"

TrainAsONE 0.79.23 (2021-12-30)

  • Added per user FitScore data
  • Open up Suunto activity fetch to all users
  • Improvements to Progression run planning for slower users
  • Decode additional activity name data from Garmin Health API
  • Improve behaviour for users who may have bookmarked /login as their arrival page
  • Fix activity view page showing ascent total as descent

TrainAsONE 0.78.5 (2021-11-11)

  • Initial Peak performance prediction data calculation (restricted access)
  • Changes for new app registration process
  • Parse distance and velocity from MyFitnessPal fitbit activities
  • Parse activity name from RunGap FIT exports
  • Rework adidas push handling to handle multiply linked accounts
  • Fix issue where mobile app could miss a plan lock and pickup a non locked plan

TrainAsONE 0.76.33 (2021-10-01)

  • Improved running pace calculator
  • Allow the option to keep existing Strava data when user is disconnecting
  • Indicate which activities were updated/deleted by external services when viewing plan build records
  • Handle <tcx> and well as <TPX> extensions in TCX files
  • Allow post-race rest days to override custom workouts
  • Improved service page, including ability to push updates to TrainAsONE mobile app and Racefully plus better layout
  • Initial Suunto integration (restricted testing for now)
  • Add "Garmin Training JSON" to available workout download formats
  • Make the next workout available to Garmin Training for free subscribers
  • Allow free subscribers to download any past workouts

TrainAsONE 0.76.11 (2021-08-24)

  • Add user visible analysis insight for incomplete activity data
  • Add some Couch To 5K related plan insights
  • Catch some more cases where Garmin Health API mistags TCX data as FIT
  • Minor extension to planned workout API for upcoming iSmoothRun integration
  • Add minimum heart rate to user daily metrics chart
  • Indicate why an activity analysis was triggered in the recent plan builds dropdown
  • Some extra sanity checking on upper velocity values
  • Rework workout 'runback step' handling. If enabled a runback step now shows on calendar/dashboard entries and will be sent to all conencted services, not just Garmin
  • Add more Garmin device codes, including Forerunner 55, 945 LTE and many Asia/APAC models
  • Fix issue where a plan build which resulted in the same schedule could leave a blank entry in the recent plan builds dropdown
  • Fix issue processing DarkSky humidity forecast data
  • Avoid issue when user disconnects from external service and then starts to reconnect immediately (while tokens are still being cleared)

TrainAsONE 0.76.3 (2021-07-30)

  • Include Weight records from Garmin Health data in analysis
  • Improve prioritisation of overlapping activities
  • Better handle bad activity data from the future
  • Speed up shared calendars and improve some wording
  • Indicate plan build number in recent plan calendar list
  • Show more potential linkable planned workouts when editing an activity

TrainAsONE 0.76.0 (2021-07-20)

  • Add a "Goals and Races" dashboard tile
  • Indicate on dashboard if there is a Garmin connection issue
  • Mark locked calendar days on calendar
  • Show completed activities with analysis insights directly on calendar
  • Add activity type icons to calendar activites
  • Improved Interval and Repetition scheduling
  • API enhancements for improved mobile app performance
  • Slight improvement in 3.2 km vLT calculation for less gifted runners

TrainAsONE 0.75.47 (2021-06-28)

  • Add "preferred distance" goal. Allows active training to maximise performance for a given distance without having a specific race
  • Make it easier to lock and unlock current plan
  • Make it easier to edit current goals, and distinguish performance from general goals
  • Improve progression run scheduling when user has no upcoming races
  • Allow generating a plan consisting only of user entered template workouts
  • Improve handling of activity data with implausible start times
  • Fix handling of device distance on multisport activities

TrainAsONE 0.75.40 (2021-06-10)

  • Rework Zwift ZWO workout generation to take advantage of newer ZWO features
  • Improve custom (template) run load specification
  • Indicate if plan locked on dashboard and calendar
  • Improve race day padding of assessments
  • Allow user to elect to receive a receipt from Stripe when a card payment is taken
  • Adjust for Garmin Health API changes

TrainAsONE 0.75.35 (2021-05-21)

  • Avoid triggering a plan rebuild in more cases where updated activity data would not significantly influence outcome
  • Handle more cases of non-compliant TCX data
  • Improve handling of user switching from Couch to 5K to full adaptive plan
  • Handle Runkeeper data with massive timestamp jump
  • Fix issue where races scheduled for first day of plan might not appear
  • Running Economy charts could be shown with offset time depending on analysis data
  • Avoid issue when a user indicates that they completed two c25k runs on the same type on the same day

TrainAsONE 0.75.23 (2021-05-10)

  • Improved activity type recognition
  • Improved activity overlap handling - if two or more activities are close overlaps and one has been confirmed, copy confirmation data including workout type to others. Targets the case where initial data arrives from a phone app, to be later overriden by the same activity recorded on a running watch
  • Implement stream intersection handling for running efficiency analysis
  • Fix issue where an initially unparsable activity would not pick up the correct activity type after the parser was updated to handle changed data from a remote service

TrainAsONE 0.75.21 (2021-05-05)

  • Handle updated GarminHealth summary format

TrainAsONE 0.75.17 (2021-04-30)

  • New 'Post race rest days' setting for races
  • Add adidas runtastic activity integration
  • Improved Fitbit activity integration
  • Reworked analysis and plan generation queue. Reduce overall latency, prioritise Premium over free users and changes made in the UI over updated data from other services, and coalesce different priorities where appropriate to further improve throughput
  • Decode Apple Watch device strings to model names
  • Handle a variety of mis-formatted GPX & TCX data, including timestamp such as 2021-04-015T13:46:36.000Z, product id numbers containing non digits, and javascript "nan" values
  • Implement custom velocity values akin to custom heart rate zones
  • Calculation of longitudinal running efficiency, using a temporal-based weighted rolling average
  • Handle Yoga activity type specified in Garmin summary JSON as well as FIT/GPX data

TrainAsONE 0.74.82 (2021-01-26)

  • Workaround Garmin Training Calendar getting out of sync leaving multiple workouts showing per day
  • Adjust Garmin Health to fetch activity data back to 2010
  • Include full device name and app version on service page tiles
  • API performance improvements

TrainAsONE 0.74.77 (2021-01-19)

  • Add support for (older) GPX 1.0 data
  • Allow setting "warmup minutes" for Couch to 5K plan runs
  • Improve wording of various messages related to PayPal payments, vouchers and subscription renewals
  • Handle grace period and on hold state for Apple subscriptions
  • Various changes to adjust for updated TrainAsONE app versions

TrainAsONE 0.74.75 (2021-01-11)

  • Better handle errors from Strava servers when refreshing auth tokens
  • More refinements to distance filtering for poor GPS data
  • Minor enhancements to specification of Pickup runs
  • Mention TrainAsONE app in onboarding options
  • Improvements to the PayPal payment flow

TrainAsONE 0.74.71 (2020-12-29)

  • Improved distance filtering for poor GPS data, including linear regression with forced intercept
  • Allow yearly subscription payment via PayPal
  • Add Garmin 45 Plus
  • Calculate device distance residiual metric to improve handling for bad GPS data with repeating start/stop pattern
  • Handle non-standard GPX data where elevation data can be 'NaN'
  • Cater for activities with less than 3 points in distance statistics calculations
  • Handle new status code 412 from Garmin Training API
  • Correctly tag GarminHealth "Virtual Ride" data
  • Do not show "Ignore in weekly run count" for non RUN activities

TrainAsONE 0.74.58 (2020-12-08)

  • Improvements for OAuth2 handling for upcoming native app
  • Automatically revoke any attempt to create overlapping Google subscription payment

TrainAsONE 0.74.56 (2020-12-01)

  • Rework OAuth2 revoke handling
  • Add token exchange API for mobile app to securely open web page
  • Fix issue with password reset dialog - would sometimes complete but show error

TrainAsONE 0.74.49 (2020-11-25)

  • Improve logic for determining past runs to pick for forecast data
  • Add more Garmin devices
  • Initial Apple subscription payment handling
  • Add endpoints for mobile app subscription handling

TrainAsONE 0.73.165 (2020-08-24)

  • Add "length of warmup steps" adjustment to training settings
  • When two or more activities overlap, always prefer an activity with GPS data over one without by default
  • Fix an issue when reattaching to a Strava account with expired refresh token

TrainAsONE 0.73.160 (2020-08-11)

  • Make pause plan / adjust injury option clearer on dashboard and calendar
  • If an error is received from Runkeeper when checking for new activities, do not add an extra delay before the next check
  • Prevent display of superfluous Analysis Insight on Perceived Effort assessment results
  • Indicate more clearly when activity data only contains summary information (and no detailed location points)
  • Avoid issues disconnecting from Strava accounts with expired access tokens

TrainAsONE 0.73.156 (2020-07-28)

  • Improve display of training pause/injury settings on dashboard
  • Handle (non-standard) decimal cadence values in TCX data
  • Handle badly formatted TCX data with present but empty TrackPointExtension data
  • Improve handling of Apple generated distance data
  • Subjective effort fields with a value of 0 were not shown

TrainAsONE 0.73.153 (2020-07-14)

  • Improve handling of Fitbit activities with summary details but empty TCX data
  • Extract device name from TCX data (including Fitbit)
  • Avoid issues with some damaged FIT files
  • Reworking of APIs in preparation for new features
  • Fix issue with empty OAuth scope handling affecting Pace-To-Race

TrainAsONE 0.73.148 (2020-06-26)

  • Improved linking of activities to planned workouts
  • Improve FAQ link handling
  • Support MultiSport TCX activity data
  • Add additional completed activity mood & stress fields
  • Speed up Strava activity fetching
  • Improve temperature and undulation forecast logic
  • Track dewpoint weather data for improved analysis
  • Significantly speed up Garmin Health data processing by using a single thread pool to process all summary data then larger batches of file data
  • Block faked redirect to external URLs after login

TrainAsONE 0.73.124 (2020-05-07)

  • Indicate workout adherence on completed activities by traffic lights
  • Improved Garmin Health processing performance
  • Better handle Runkeeper server problems

TrainAsONE 0.73.99 (2020-04-27)

  • Allow quick adjustment of run type from view activity page and confirmation email link
  • Dynamically adjust Garmin Health activity backfill start based on activity data
  • Decode watch model from HealthFit data

TrainAsONE 0.73.85 (2020-04-21)

  • Quickly adjust run types from activity listing
  • Add optional per activity subjective effort rating
  • Extend dashboard activity confirmation to allow setting activity notes and subjective effort
  • If a Garmin service is showing an error, provide a reconnect button to clear and reconnect without losing any data
  • Resolve issue selecting recent plans

TrainAsONE 0.73.60 (2020-04-03)

  • Switch from Garmin Connect to Garmin Health for collecting Garmin activity data

TrainAsONE 0.73.57 (2020-04-01)

  • Show some simple challenge results on dashboard
  • Allow switching to previous plans from dashboard

TrainAsONE 0.73.50 (2020-03-30)

  • Allow users to view previous plans, switch back and optionally lock for a number of days

TrainAsONE 0.73.42 (2020-03-24)

  • Give free access to all plan features for anyone on the Couch to 5K plan

TrainAsONE 0.73.41 (2020-03-23)

  • Handle when Garmin Health API mislabels FIT data as GPX

TrainAsONE 0.73.36 (2020-03-18)

  • Better handle GPX and similar activity files containing out of order data
  • Final storage changes in preparation for Garmin Health API integration
  • Indicate dayes to next race in calendar title
  • Extend sync API to categorise activities

TrainAsONE 0.73.23 (2020-03-05)

  • New Fibit activity collector
  • Resolve issue with activity type detection introduced with Garmin activity storage changes
  • Fix previous plan popup when wide display chosen on narrow (mobile) screens

TrainAsONE 0.73.17 (2020-03-02)

  • Reworked activity storage to handle upcoming Garmin Health integration

TrainAsONE 0.73.5 (2020-02-13)

  • Still generate new plans when a plan is locked, but add them to the plan history while keeping the current plan locked
  • When selecting a previous plan, include any workout for today unless it has been linked to a completed activity
  • Adjust plan "locking" to always run to end of a given day
  • When retiring previous plans always try to keep the first and last from each day
  • Fix case where a locked plan could update to show an empty calendar
  • Plans generated implicitly due to a user change to activity data could show an empty "plan build reason"

TrainAsONE 0.73.4 (2020-02-04)

  • Extract Footing information (primarily Treadmill) from Garmin FIT data
  • Allow a user to "lock" a plan when selecting a plan build
  • Ensure Garmin Training calendars updated when switching to previous plan

TrainAsONE 0.73.0 (2020-01-29)

  • Allow metrics with dates in the future (but on the same day) for HealthFit users
  • Initial "switching plan build" feature for testing users
  • Better handle broken Fitbit data where fitbit.com TCX endpoint always returns an error
  • Complete change to new Strava Webhook Events API
  • Fix issue saving birthdate in some situations
  • Fix referral links setting default race goal details

TrainAsONE 0.72.0 (2020-01-06)

  • Add the new 2020 TrainAsONE challenge
  • Rework Stripe integration to add SCA2 compliance
  • Support arbitrary offset timezones in metrics from external services - eg "UTC+08:00"

TrainAsONE 0.71.0 (2019-11-27)

  • Easier navigation from one activity (or set of activity graphs) to the next/previous
  • Make default training settings page less intimidating
  • Improvements to onboarding wizard
  • Add 'training goals' to onboarding wizard
  • Detect and 'handle' high frequency integer values in distance stream
  • Improve handling of activities which change start or duration after detailed analysis

TrainAsONE 0.70.40 (2019-11-19)

  • Better handle large Strava fetch backlogs (for example when Strava improve the precision of returned data and all activities are tagged for refetch)
  • If we encounter an error when fetching Runkeeper activities, try falling back to a smaller pageSize, and also indicate any final error on the Runkeeper service tile
  • Add a small sleep and retry for some errors from the Garmin Training service
  • Use original creation timestamp as start time for unparseable activities from external services
  • Improve handling of swim distance data (not yet used in plan generation)
  • Fix calculation of plan start date/time to respect user day start time
  • Avoid a potential issue with anomalous 3.2K assessment data
  • Strip html tags from error messages returned from Garmin Training

TrainAsONE 0.70.39 (2019-10-29)

  • Extract and display TimeZone information from activity source data for Strava, Runkeeper and TCX
  • Extract averageHeartRate and totalCalories from Runkeeper data
  • Handle GPX data with localised speed decimal separator
  • Better handle activities with present but invalid summary duration
  • Decode and display Ant+ devices on view activity
  • Scale chart display for longer activities
  • Improvements to Training Points calculation
  • Enhanced determination of activity start and duration when any of heart rate, location, or elevation stream and summary data disagree
  • Add API endpoint for downloading workouts in TAO, FIT, TCX, ZWO and GARMIN_TRAINING formats
  • Fix issue completing health questionnaire on iPhone

TrainAsONE 0.70.38 (2019-10-16)

  • Improved Garmin FIT speed and altitude handling
  • Fix some plans not respecting user specified day start time and causing runs not to be scheduled on appropriate days
  • Indicate any attached Ant+ devices in activity view
  • Add "Give Blood" activity type
  • Improve handling of when a user tries to link multiple TrainAsONE accounts to the same Fitbit, Strava, Garmin or Runkeeper account
  • Avoid error with GPX data with fractional heart rates

TrainAsONE 0.70.37 (2019-09-25)

  • Improved route and distance calculations from enhanced handling of errors in recorded activity data. This has been achieved by the improved detection and classification of erroneous jumps in location or device-provided distance data, with the resultant ability to remove or transpose source or destination jumps more intelligently. (Traditional approaches suffer many short-comings as they focus on single points and then just remove them or perform simple averaging techniques.)
  • Improved Garmin FIT speed and altitude handling

TrainAsONE 0.70.36 (2019-09-20)

  • If a user has not edited an activity's notes on TrainAsONE, track updates to the notes from services like Strava
  • If a Strava and Garmin activities overlapped, and the Strava activity was marked "Ignore due to overlap", then editing the activity in Strava could cause the Strava activity to switch to "Valid" and the Garmin activity to "Ignore due to overlap"

TrainAsONE 0.70.35 (2019-09-17)

  • Recognise Garmin fēnix 6, vívoactive 4, Venu and legacy heros watches
  • Stop ignored activities from linking to an unused planned workout
  • Allow looking up an activity on the lookup users page
  • Refine velocity to heart rate processor thresholds
  • Improve split analysis handling for excessively long activities
  • The system would not generate a correct interval workout if a user had set the maximum minutes to run to exactly one minute less than the minimum interval length

TrainAsONE 0.70.34 (2019-09-11)

  • Add option for users to enter multi day race goals
  • Indicate second and subsequent multi day races in view activity
  • Better handle formatting issues in activity data sent from external services
  • Handle Strava blocking access to user data by switching service to inactive
  • "Excessive monotonic heart rate" was sometimes incorrectly flagged
  • Allow users to signup with emails containing '+' symbols

TrainAsONE 0.70.33 (2019-08-05)

  • Add additional diagnostics to help track down edge case with Strava and Garmin overlapping activities not always being handled correctly
  • Add some momre Garmin device decodes (Including "Garmin MARQ Expedition")
  • Speed up Garmin map loading on Activity page
  • Initial work on migrating to bootstrap 4 for new view activity pages
  • Fix issue with some IE versions, affecting questionnaire and some other input pages

TrainAsONE 0.70.32 (2019-07-18)

  • Automatically detect changes to Strava activity names, and update our activity name if the user has not changed it on TrainAsONE
  • Improved matching of races in run type classifier
  • Switch gift voucher and voucher payment pages to new Stripe SCA compliant versions
  • Setting the Garmin Training service to inactive now freezes rather than clears workouts on Garmin
  • Add "(recent updates)" to activity services - will show the most recent five activities created or updated from an individual service

TrainAsONE 0.70.31 (2019-07-08)

  • Add a button to refresh Strava, Runkeeper, Fitbit, Garmin Training on the Services page
  • Add FitBit, Strava and Runkeeper to services which show whether they are currently updating on Services page
  • Quicker activity analysis
  • Fix drifting of planned workout steps in planned vs performed charts
  • Make Connecting to the Garmin Training service more obvious
  • Improve handling of some Garmin Training service errors

TrainAsONE 0.70.30 (2019-06-28)

  • Improve default activity naming when remote service does not provide a name - eg: "Monday Run", "Tuesday Cycle" or "Wednesday Activity"
  • Track remote service activity name changes. If user has not edited activity name, automatically update to new remote service value, otherwise indicate difference when editing activity

TrainAsONE 0.70.29 (2019-06-17)

  • If user adjusts temperature or undulation on dashboard or calendar, immediately send an updated workout to Garmin Training
  • Improved decoding of Garmin Product id from FIT activity files
  • Send full workout names to Garmin Training for display on calendar
  • Fix incorrect grade calculations during latter phases of certain runs

TrainAsONE 0.70.28 (2019-06-13)

  • Integrate with what3words for indicating activity start locations
  • Improvements to velocity analysis, including GIS processing, and determining best velocity source
  • If the Garmin Training server returns an error, show it to the user on the services page
  • Improved analysis performance
  • Improvements to run type classifier, particularly around race identification
  • Recognise and decode names for all valid CIQ devices in services page
  • Duration override could be triggered when device duration was one second different to analysis duration
  • Avoid issues with Strava activity names longer than 250
  • Fix issue parsing Garmin multisport activities

TrainAsONE 0.70.27 (2019-06-05)

  • Garmin Training Workouts were not correctly created for some user generated template workouts

TrainAsONE 0.70.26 (2019-05-31)

  • Allow the option to keep activities when disconnecting from a Garmin Activities account
  • If the Garmin Training server returns an error, show it to the user on the services page
  • Extend the GarminCIQ API to allow querying and updating Garmin Training

TrainAsONE 0.70.25 (2019-05-30)

  • Adjust workouts sent to Garmin Training for temperature and undulation (and indicate values in workout name)
  • Add default activity Distance Choice and Velocity Choice to profile preferences
  • Reject metrics with measured timestamps in the future or too far in the past

TrainAsONE 0.70.24 (2019-05-29)

  • Implement "Include run back step" in Garmin Training workouts
  • Include Garmin Connect IQ app connection details on the services page
  • Allow full subscription users to download future workouts
  • Default fitbit "treadmill" activities as runs
  • The next upcoming run email and Racefully notification were not set correctly after the Garmin Training integration

TrainAsONE 0.70.23 (2019-05-24)

  • Garmin Training API integration
  • New activity charts: Planned vs performance velocity, heart rate and load
  • Optionally show device values for heart rate, velocity, elevation and distance on activity graphs
  • Include first and last 10% of all charts for free subscription users
  • Previous fix for Re-authorising Garmin or Racefully without disconecting the service in TrainAsONE was incomplete

TrainAsONE 0.70.22 (2019-05-21)

  • Garmin Training API integration (testing users only)
  • Include count of pushed workouts to entries on service page
  • Indicate deleting and updating (workouts only) entries on service page

TrainAsONE 0.70.21 (2019-05-10)

  • New "Services" page which lists all connected services, including when they last updated, and the number of activities and/or metrics for each
  • Added Pace To Race to the list of directly connected running applications
  • When disconnecting from external services, provide option to keep activities/metrics where appropriate
  • Show both raw (brown) and analysed (orange) activity paths on maps
  • Detect and show device name correctly for some more Garmin Forerunner 245 and 945 models
  • Re-authorising Garmin or Racefully without disconecting the service in TrainAsONE first would not complete successfully

TrainAsONE 0.70.20 (2019-05-06)

  • Include activity name in activity list (will take a little while to populate for older data)
  • Show raw lat/long paths on activity maps
  • Clear distance/duration override if improved analysis matches overridden values
  • Include sourceId in remote metrics API to make deduplication easier
  • Add speed to GPX TrackPointExtension parsing
  • Speedwork would not be scheduled on maintenance training plans

TrainAsONE 0.70.19 (2019-05-01)

  • Do not show heart rate target for standing workout steps
  • Add sourceId to metrics to allow external services to easily deduplicate pushed data
  • Improve colours selected on activity charts (more reds for heart rate)
  • Adjust charts when display as pace selected to get pace scale ticks every 5min/distance
  • Increase the maximum workout name length for FitBit activities
  • Activity listing table could show pre-analysis activity duration
  • Avoid spurious refetching for some RunKeeper activities
  • Older perceived effort runs could fail to pick up a natural velocity during analysis
  • Weekly custom workout could override goal race being specified
  • If a user selected today for gift voucher delivery (rather than leaving field blank) the confirmation email would not be sent immediately
  • If a user tried to authorise two TrainAsONE accounts against the same Garmin account an unhelpful error was shown

TrainAsONE 0.70.18 (2019-04-18)

  • Update main system preferences when Garmin app adjusts workout step target and similar
  • Split activity charts into separate page and add temperature chart
  • Added 'Custom (True Speed)' run sub type
  • Initial (testing only) changes for Garmin Training API integration

TrainAsONE 0.70.17 (2019-04-11)

  • Allow selecting '- not a planned workout -' when editing activities to stop the system linking to any potential planned workout
  • Handle Running Efficiency bad data a little better
  • Limit vVO2max historical based adjustment on races
  • Cap Run Monotony calculations
  • Fix links to activities in shared calendar when viewed in Apple calendar
  • Fix vVO2max zone fraction calculations under upcoming new V3 analysis

TrainAsONE 0.70.16 (2019-03-27)

  • Make Stripe card processing less likely to be affected by misbehaving browser plugins (Chrome Selenium IDE we see you)
  • Allow external services to pass across race details when creating a new TrainAsONE account
  • Improve handling of activities which include a gap of several days (just ignore the latter part of the activity)
  • The system would not automatically regenerate a plan if a user had completed their training settings but not yet selected how to collect their activity data
  • Suggestion to update training history pointed to incorrect URL

TrainAsONE 0.70.15 (2019-03-22)

  • Add "Running efficiency" value to view activity display
  • Include standing heart rate values derived from activity data in metrics chart
  • Make metrics chart clickable to display metric and activity data

TrainAsONE 0.70.14 (2019-03-19)

  • Add a metrics chart to the user charts page
  • Reduce resting and standing heart rate lower thresholds
  • If distance or duration is overridden, also show the value before override
  • Make links in question and answer text clickable
  • Add a link to the TrainAsONE merchandise shop
  • Fix activity graph display when activity has heartrate but no location data

TrainAsONE 0.70.13 (2019-03-05)

  • Fix downloading of GPX and TCX data on iOS devices
  • Add SDNN to metrics table view
  • Make referral credits usage clearer

TrainAsONE 0.70.12 (2019-03-04)

  • New training setting "Prevent back to back speedwork"
  • Add VO2Max to metrics
  • If activities of the same type overlap, prefer one with heart rate data over one without

TrainAsONE 0.70.11 (2019-02-27)

  • Add HRV SDNN for Apple Watch compatibility
  • Move height, weight and heart rate fields out of onboarding
  • Decode Garmin device 2957 as TEMPE
  • Subscription page would not show existing cards if all had expired
  • Show numeric durations with : between minutes and seconds rather than .
  • Max run streak calculations could have issue with a streak of custom workouts

TrainAsONE 0.70.10 (2019-02-14)

  • Adjust for Strava activity id rollover issue

TrainAsONE 0.70.9 (2019-02-05)

  • Add (and recommend) HealthFit for Apple Watch users
  • Improve Couch to 5k scheduling
  • Activity graphs could show right axis labels even when no right axis data
  • Heart rate points could be shown on graphs even when outside activity start / stop
  • Setting a non Couch to 5k training settings and then switching to Couch to 5k would still show that setting values in Training Settings

TrainAsONE 0.70.8 (2019-01-31)

  • Add "Max run streak" option to Training Settings
  • Reworked top menu for mobile devices
  • Adjust Couch to 5k intro week to split run sections into shorter steps
  • Better handle Strava rate limit when a large number of activities need refreshing
  • Do not warn about Cadence points with duplicate timestamps, only when time goes backwards
  • Fix TSB values for transitional days not displaying in charts
  • Couch to 5k plan rebuild could be delayed in some cases

TrainAsONE 0.70.7 (2019-01-22)

  • Switch to new Strava activity API for new user connections

TrainAsONE 0.70.6 (2019-01-18)

  • New "Couch to 5k" training option
  • Per activity graphs would not maximise correctly on some displays

TrainAsONE 0.70.5 (2019-01-16)

  • Indicate if activity is linked to a planned workout on calendar
  • Add Boots, Flip flops, Sandals & Other Footwear options (no Wellies yet)
  • Show linked planned workout name for Garmin activities on calendar
  • Add two optional easier weeks before the standard Couch to 5k plan
  • Rename "Commitments" to "Training settings"
  • Allow passing subjectiveRating with third party activity uploads
  • Ensure we always skip today if yesterday had a completed Couch to 5k run when updating Couch to 5k schedule

TrainAsONE 0.70.4 (2019-01-14)

  • Improve chart colours slightly for colour blind usage
  • Fix scaling of Training String chart

TrainAsONE 0.70.3 (2019-01-10)

  • Fix case of calendar day specific workout not overriding day of the week setting of 'no runs' (the Run Like The Wind fix)

TrainAsONE 0.70.2 (2019-01-09)

  • Option to indicate canicross and stroller runs
  • Option to record footing and footwear for each run
  • Initial scheduling of Couch to 5k (test users only)

TrainAsONE 0.70.1 (2019-01-04)

  • Add Custom (Threshold) workout type
  • Improve display of workout steps slightly
  • Better specification of run/walk workouts (in preparation for Couch to 5k)
  • Expand Chart tooltip on SEF and RE
  • Do not show Training level on Commitment view iff an external schedule is selected

TrainAsONE 0.70.0 (2018-12-19)

  • Add option to ignore any given activity when counting total run days per week - will allow scheduling another run on the same day. Note this does not ignore the effect of the run load on the plan
  • Add training commitment option to switch between active training or maintenance plan
  • Add 'Give the gift of TrainAsONE' option. Allows people to buy gift codes to be used towards TrainAsONE subscriptions
  • Show a "Welcome to TrainAsONE" basic introduction message on the dashboard after onboarding is complete
  • If the user has selected running speeds to be shown in min per km or mile, also show charts and graphs in the same units
  • Always show vRE vLT and vVO2Max in user pace units, not m/s
  • Handle GPX data with out of order TrackPoints, including the start being after the end
  • Enhancements to economy pace low confidence calculation
  • Better handle the case where someone creates an account on a desktop but does not complete onboarding, then tries to link a Garmin watch to TrainAsONE
  • Switch to DarkSky weather forecast/history service for default lookup (Keep OpenWeatherMap as backup)
  • Adjust mail From address to be more friendly, and prefix all email subject lines with [TAO] to make easier to identify
  • Improve handling of very long activity notes on calendar and activity summary popup
  • Avoid regenerating the plan under certain circumstances when a new activity or activity change would not affect the cumulative training history
  • Fix incorrect display of certain custom workouts in calendar
  • Download dropdown box could be cropped in activity summary popup

TrainAsONE 0.69.4 (2018-11-05)

  • Allow setting Parkruns as goals and template workouts
  • Something for Guy Fawkes

TrainAsONE 0.69.3 (2018-10-31)

  • Adjust overlapping activity handling to prioritise Strava TomTom activities similar to direct from Garmin
  • Something for Halloween
  • Allow combining referral credits with other voucher types for payment
  • Improve sanity check of 6 minute vVO2max value
  • Prefer plans which keep workouts on the same days when regenerating due to a training commitment or other change which does not alter which days are eligible for runs
  • Add freestyle tower run activity type

TrainAsONE 0.69.2 (2018-10-16)

  • Better handle odd Fitbit data where cumulative distance resets to zero
  • Improve activity type classifier speedwork workouts differentiation
  • Avoid layout issues with extremely long activity names
  • Fix user chart display in Internet Explorer 11

TrainAsONE 0.69.1 (2018-10-10)

  • Handle badly formatted GPX data which has timestamps but is missing latitude and longitude data
  • Fix issue in connecting to new Runkeeper accounts

TrainAsONE 0.69.0 (2018-10-03)

  • Improve handling of manually entered Garmin FIT activities which show zero elapsed time but store a 'totalTimerTime'
  • Never include "run back step" in Perceived Effort assessments
  • Improve default activity name for Runkeeper activities
  • Automatically adjust activities with future timestamp to end at the time they were received by TrainAsONE

TrainAsONE 0.68.2 (2018-10-02)

  • Fix parse issue with some summary only Garmin FIT activities

TrainAsONE 0.68.1 (2018-09-27)

  • Fix error -400 on Garmin ConnectIQ app related to an interaction with our new server infrastructure

TrainAsONE 0.68.0 (2018-09-27)

  • Allow user defined race distances
  • Initial testing ZWO Zwift Run support
  • Improve weighting of race vVO2max
  • Automatically prefer device elevation where barometric altimeter present
  • Better decoding of Garmin device names and indication of where barometric altimeter present
  • Allow disconnecting Tapiriik and FitnessSyncer from activity list and removing of matching activities
  • Send upcoming subscription notification to all yearly users, send notification to monthly if card has expired
  • Initial UX improvement from work by Naomi Gorlov
  • Make info links clickable on all devices (but not this one)
  • New look dashboard, improve pause/injury display
  • Allow entering race distances during onboarding
  • Skip advanced commitment options during onboarding
  • Improved naming of profile options
  • Switch to Stripe Elements for easier payment card entry
  • A run changed to a cycle would still be counted against the weekly calendar run display totals (analysis was not affected)

TrainAsONE 0.67.0 (2018-09-06)

  • Show Aerobic Quotient and Running Efficiency values and graphs on activity view and charts page
  • Allow 'stealing' a linked workout from an ignored activity
  • Make calendar per day editing more obvious
  • Format metric activity speeds as km/h rather than m/s

TrainAsONE 0.66.10 (2018-08-25)

  • Enable direct Fitbit activity fetch integration for all users
  • Add insight for points from Null Island in middle of activity

TrainAsONE 0.66.9 (2018-08-22)

  • Add option to end Garmin workout steps by distance or duration
  • Initial Fitbit integration (for testing users only)
  • More refinement of pickup pace during injury
  • Include in analysis previously uploaded TCX files that had been marked unparsable before the 0.66.6 changes

TrainAsONE 0.66.8 (2018-08-21)

  • Improved injury pace specifications
  • If activity analysis run without immediate plan generation, some projected values would not be shown on user charts

TrainAsONE 0.66.7 (2018-08-15)

  • Enhance initial pace calculations for new users with no economy runs
  • Recognise the full set of known StravaGPX activity types when parsing GPX data
  • Fix potential for warm-up (very easy) pace to be faster than easy pace, related to handling unusual vRE : vVO2max ratios

TrainAsONE 0.66.6 (2018-08-08)

  • Handle TCX data with unusual (but valid) xmlns attributes (Polar)
  • Improvements to scheduling runs at times of overall low load
  • Improved linking of performed to planned perceived effort assessments
  • Add plan insight when weekly run duration is insufficient to introduce speedwork
  • Indicate on calendar why some workouts only show summary data. Show detail further in the future for premium users
  • Allow setting workoutStepName and includeRunBackStep in profile for free subscription users
  • Show some basic analysis graphs for non-running activities
  • Add hiking activity type
  • Show change plan button and all its options before card details are required
  • Show model names for more Garmin watches
  • Ask for training history for more users
  • Show plan insight if the user has an active linked Garmin account, but no Garmin activities yet

TrainAsONE 0.66.5 (2018-07-24)

  • Improved system for matching exactly which workout data was being followed when analysing completed Garmin activities

TrainAsONE 0.66.4 (2018-07-19)

  • Improved run type classification

TrainAsONE 0.66.3 (2018-07-17)

  • Improve handling for when a user links the same Garmin account to multiple TrainAsONE accounts - notify user and let them decide which to disconnect
  • Extract cadence, heart rate and temperature from GPX extension data if available
  • Adjust formatting of "Garmin app out of date" message so version number fits on watch screen
  • Detect and show device name correctly for Garmin Forerunner 645M

TrainAsONE 0.66.2 (2018-07-10)

  • Add an option to show the workout step pace range as the Garmin step name
  • Improved perceived effort assessment analysis
  • Handle non-standard Android StravaGPX activity types
  • Better explain Garmin 30 day history sync, and recommend Tapiriik for users with more history
  • Detect and show device name correctly for Garmin Fenix 5X plus
  • If a user changed an activity type, some analysis decisions were still being based on original type

TrainAsONE 0.66.1 (2018-07-02)

  • Add Climbing activity type
  • Changes to support Garmin app v0.0.18
  • Graded velocity analysis was being skipped in some unnecessary cases

TrainAsONE 0.66.0 (2018-06-28)

  • Introduce subscription referral credits - introduce other users to TrainAsONE paid plan for credit against your plan
  • Add option for users to directly change their email
  • Allow workout & goal durations up to 36 hours
  • Handle Garmin multisport (Triathlon) activities (analyse Run data only for now)
  • Better run type detection matching of initial perceived effort runs
  • Do not send completed activity notifications for ignored activities
  • Indicate device, version and last used on Profile "Authorised clients" list

TrainAsONE 0.65.5 (2018-06-15)

  • Send warning message to Garmin watch app if nothing has been set up to send activity data back to TrainAsONE
  • Allow access to profile, change password and delete account options even during initial onboarding
  • Password reset email would not be sent if user had not confirmed their email

TrainAsONE 0.65.4 (2018-06-11)

  • Show message on Garmin watch if TrainAsONE account not fully setup
  • Avoid error page if incomplete health question page submitted
  • Training plans were not automatically regenerated after missed runs for some new users who had not yet started a trial

TrainAsONE 0.65.3 (2018-06-07)

  • Show cookie consent message
  • Empty final "custom" step was being included for some workouts

TrainAsONE 0.65.2 (2018-06-06)

  • Easier to understand Perceived Effort Assessments
  • Show update warning on Garmin app if running old version
  • Add option for users to delete their account directly
  • Restrict in app "ask question" button to STANDARD plan users
  • Individual workout steps were not always fully adjusted for Garmin app download
  • UI would not allow users to override planned workout undulation
  • Show message rather than error if user tries to download FIT/TCX workout for race goal

TrainAsONE 0.65.1 (2018-06-04)

  • Activity analysis could incorrectly show "too few cadence points" warning if cadence data cut off before run completed

TrainAsONE 0.65.0 (2018-05-29)

  • Add option to "include run back step" to Garmin download
  • Unconditionally remove all relevant activities if we receive a revoked message from external services such as Strava or Runkeeper

TrainAsONE 0.64.5 (2018-05-24)

  • Handle new Strava API forbidden response when a user has not accepted the updated Strava T&C, but Strava still sends push notifications for new activities

TrainAsONE 0.64.4 (2018-05-15)

  • Add option to use heart rate target for slow workout steps and speed for fast
  • Remember user set temperature and undulation for workouts
  • Include activity names in calendar display
  • Allow selecting any day for calendar week start. Also show day of week commitments in the same order
  • Speed up activity overlap resolution
  • Elevation analysis could be skipped if source device elevation was missing
  • Goal distances could be displayed incorrectly when long target times
  • Goals would not be shown on the calendar if training was paused until after the goal

TrainAsONE 0.64.3 (2018-04-25)

  • Runkeeper sometimes fails to set the activity utc_offset - fallback to using the TrainAsONE account timezone
  • For some users their Racefully upcoming workouts schedule could show past workouts

TrainAsONE 0.64.2 (2018-04-24)

  • Add a Weighted Ratio 7/28 to the loading ratio chart
  • If a user had three or more activities with the same start time the overlap handling could misfile

TrainAsONE 0.64.1 (2018-04-20)

  • Improved grade and grade factor analysis handling of poor data
  • Add additional Analysis Insights for spurious GPS timestamps
  • Additional cadence Analysis Insight for too many zero-valued data points
  • Improved run type detection
  • Activities which straddled days (started on one and finished on the next) would not show up on charts
  • Forecast temperature/undulation could be used in preference to use entered values
  • The "Hide step names" option on the "Download for Garmin watch" dialog did not work on some browsers

TrainAsONE 0.64.0 (2018-04-13)

  • Infrastructure changes in preparation for referral credits
  • Improve handling of TCX files with partial latitude and longitude data
  • The Runkeeper timezone offset fixes in 0.62.5 were incomplete

TrainAsONE 0.63.1 (2018-04-12)

  • Improve registration flow for new user directed from Racefully or FitnessSyncer for OAuth

TrainAsONE 0.63.0 (2018-04-09)

  • Allow toggling temperature or undulation adjustment, and selecting target step from Garmin app
  • Make adjusting per calendar training day rules easier on mobile calendar
  • Indicate whether scheduling runs is permitted on each calendar day
  • Further enhancements to running efficiency analysis
  • Fix issue in exporting distances to FIT files

TrainAsONE 0.62.5 (2018-04-01)

  • Handle unusual UTC timezone offsets from Runkeeper (such as -30 hours)

TrainAsONE 0.62.4 (2018-03-27)

  • Ensure we always ask for all activity data from Strava or Runkeeper (runs were being clipped inside Strava privacy zones)

TrainAsONE 0.62.3 (2018-03-23)

  • Some activity data with external heart rate streams pushed from Garmin was being rejected

TrainAsONE 0.62.2 (2018-03-20)

  • Ensure the currency symbol is shown correctly on subscription page

TrainAsONE 0.62.1 (2018-03-20)

  • A recent update caused Runkeeper activities to be checked for too frequently
  • Tag yoga activities from Garmin as "Yoga" not "Other"

TrainAsONE 0.62.0 (2018-03-16)

  • Add option to send Racefully reminder notification for upcoming runs

TrainAsONE 0.61.24 (2018-03-14)

  • Improvements to TCX generation
  • Enhancements to new running efficiency analysis

TrainAsONE 0.61.23 (2018-03-10)

  • Indicate to users on basic plan when premium plan or activity insights are available
  • Improvements to GPX generation

TrainAsONE 0.61.22 (2018-03-08)

  • Direct integration with Garmin Connect for collecting activities
  • Allow changing which planned workout was followed when editing activities
  • Do not regenerate training plan if calendar entry changes only include day notes

TrainAsONE 0.61.21 (2018-03-06)

  • Additional analysis infrastructure - nothing to see here... yet

TrainAsONE 0.61.20 (2018-03-05)

  • Charts would not display correctly for some non support users

TrainAsONE 0.61.19 (2018-03-04)

  • Adjust spacing to avoid analysis footer potentially blocking form submit buttons
  • Metrics height range checking was incorrect

TrainAsONE 0.61.18 (2018-03-02)

  • Automatic overlap code could mishandle the same activity sent from both Garmin and Strava
  • Enhanced Activity Insights with respect to bad heart rate data
  • Improve precision on some activity graph data
  • Sort answered questions on dashboard by most recently answered first
  • Move height from profile to metrics data

TrainAsONE 0.61.17 (2018-02-26)

  • Previous grade adjusted distance processing changes blocked display of activity map data

TrainAsONE 0.61.16 (2018-02-22)

  • Show explanation message if next week's runs are shorter than might be expected by users
  • Enhancements to grade adjusted distance processing
  • Add link to Fitbit (via FitnessSyncer) on activities wizard page

TrainAsONE 0.61.15 (2018-02-16)

  • Prefer Garmin over other activity sources in case of run overlap
  • Indicate any activity insights on activity summary popup
  • Move the "how to run with TrainAsONE" page into the onboarding wizard
  • Show upload dialog of activity list if "upload" selected in how to run wizard

TrainAsONE 0.61.14 (2018-02-13)

  • Add option to hide Garmin workout step names (for fēnix 3 and similar)
  • Workaround Apple "Add to Home screen" popping out links in mobile Safari
  • Refine plan handling for adhoc runs on rest days
  • Improve tooltip handling for mobile (touch) devices

TrainAsONE 0.61.13 (2018-02-12)

  • Fix time of day edge case issue for Los Angeles
  • Charts load totals were showing target rather than planned load
  • Older Runkeeper and Strava activities were not backfilled for some newer accounts

TrainAsONE 0.61.12 (2018-02-09)

  • Improved user charts - show full data from timeline rather than just days with activities
  • Refine graded cost of running values based on published data
  • Adjust values to reduce effective plan volatility
  • Rework date entry on pause training/injury form to avoid iOS issues
  • Improve some layout spacing on narrow displays (hi iPhone4)
  • Improve Garmin usage notes
  • Improve selection of planned workout when linking performed activity
  • Change "Gender" question to "Sex" as the plan uses the physiological characteristic (and adjust options to match)
  • Direct Garmin Connect integration test phase (Only visible to Garmin for sign off at this time)
  • Archived planned workouts on a given day were not always sorted by creation date for support/coach view
  • Strava activity updates notification were not always processed (system would pickup change later)

TrainAsONE 0.61.11 (2018-01-29)

  • Avoid duplicate metrics records from external services (such as HRV4Training)
  • Add workout version (eg "123D") to workout data for API consumers (such as Racefully)
  • Allow fractional hours for sleep and other hourly metrics

TrainAsONE 0.61.10 (2018-01-26)

  • Ensure linking to Racefully tags the user as having chosen a source of activity data
  • Add links on the main commitments page to quickly reset any day to the default values

TrainAsONE 0.61.9 (2018-01-25)

  • Allow Garmin workout FIT/TCX file download on free as well as paid plan (Garmin app direct download remains on paid plan)
  • For hill/trail races specifically recommend taking economy runs on terrain similar to the target race where possible, but keeping fast assessments, interval and threshold runs on flat road

TrainAsONE 0.61.8 (2018-01-24)

  • Add a set of simpler instructions for using workouts on Garmin watches
  • Users switching TrainAsONE accounts could be caught in a 401 UNAUTHORISED error page

TrainAsONE 0.61.7 (2018-01-22)

  • Specifically support using the Racefully app to guide workouts while recording data on a running watch

TrainAsONE 0.61.6 (2018-01-20)

  • The Racefully iPhone app can now link direct to TrainAsONE and guide you verbally through each workout
  • Tweak TrainAsONE setup for iPhone "Add to Home Screen" option

TrainAsONE 0.61.5 (2018-01-19)

  • Enhancement to granting scheduling of speedwork for users with a low number of target training days

TrainAsONE 0.61.4 (2018-01-18)

  • Add Nordic Skiing, Snowboarding, and Alpine skiing activity types

TrainAsONE 0.61.3 (2018-01-17)

  • Address small issue with Strava's new push notification API

TrainAsONE 0.61.2 (2018-01-12)

  • Update for Strava's new push notification API
  • Fix sanity checking of vVO2max calculation that could result in a high (for user) vVO2max

TrainAsONE 0.61.1 (2018-01-11)

  • Resolve issue with deleting individual Strava activities

TrainAsONE 0.61.0 (2018-01-11)

  • Defer starting free trial until after first completed activity
  • Allow switching to/from free subscription during trial
  • Allow selecting race goal or general fitness during onboarding
  • Make easier to enter date of birth
  • Make easier to select timezone
  • Make weight and height optional during onboarding
  • Allow deferring email confirmation until after onboarding complete
  • Reworked payment system to allow discount coupons

TrainAsONE 0.60.5 (2018-01-10)

  • Some FIT activity data from FitnessSyncer was incorrectly rejected

TrainAsONE 0.60.4 (2017-12-29)

  • Improve classification of runs completed before onboarding. Today's magic variable name is preOnboardingPeakMinimumViableVVO2MaxThreshold

TrainAsONE 0.60.3 (2017-12-22)

  • Generate Garmin workout step data for user specified custom workouts

TrainAsONE 0.60.2 (2017-11-25)

  • If run is missed, run a full unconstrained plan regeneration on the following midnight, as we do not care about trying to keep workouts on existing scheduled days
  • New metric data was not being correctly processed for heart rate specifications

TrainAsONE 0.60.1 (2017-11-22)

  • Use 'km' for Kilometres consistently instead of 'Km'
  • Consistently use variations on a pencil icon for editing calendar training day rules
  • If an invalid training commitment is submitted, ensure a message is shown next to the relevant field or fields
  • Certain activity data could be unnecessarily rejected when sent from external services

TrainAsONE 0.60.0 (2017-11-20)

  • Add endpoint for remote HRV and other metric providers
  • Add HRV, blood pressure and many new subjective metrics
  • Enforce a maximum two-hour duration when checking performed data against assessments & fast sessions
  • Add stride length to activity graphs
  • Switch vertical oscillation from mm to cm
  • Drop excess precision when showing various activity summary values
  • Add a generic illness option to injury form
  • Show a plan warning if there are overdue 6 minute or 3.2K assessments
  • Refreshing activity data from Strava and Runkeeper would reset the activity type
  • If training commitments were changed to make an extra day available, the plan generate would only take advantage of it if there was a significant gain. Now it will use it if there is any gain
  • System could show empty plan if training commitments blocked all running for next few days
  • Graph data could fail to generate if first raw location point was missing distance

TrainAsONE 0.59.1 (2017-11-06)

  • Display issue on activity page
  • Better handle some endOfDayStatistics edge cases

TrainAsONE 0.59.0 (2017-11-06)

  • Add vertical oscillation to graphs and extract average for activity view
  • Parse RunCadence from TCX extension data in addition to basic Cadence
  • Extract and show any existing activity name from Strava, Runkeeper and other services, allow editing
  • OAuth2 authorisation parameters were not url encoded

TrainAsONE 0.58.15 (2017-11-01)

  • Fix some issues with new end of day statistics for some users

TrainAsONE 0.58.14 (2017-11-01)

  • Make it clear that the upcoming run email field can be blanked
  • Over enthusiastic distance check in manual activity prevented adding pilates

TrainAsONE 0.58.13 (2017-11-01)

  • Updates to new end of day statistics, in preparation for improved user charts

TrainAsONE 0.58.12 (2017-10-29)

  • System could schedule a second run on days with more than 24 hours (DST switch)

TrainAsONE 0.58.11 (2017-10-25)

  • Indicate activity distance, time and load +/- percentage compared to workout target
  • Rename "Freestyle" training workouts to "Custom" to make clearer that they are training, just not from the TrainAsONE AI
  • Show activity number on calendar activities as well as workouts
  • Rework the FAQs to make a clear recommendation of Strava, plus Garmin for those who want a watch. Also mention ismoothrun
  • Multiple activities on the same day were not always shown in time order on the calendar
  • Physiological load would be overestimated for runs without any elevation data

TrainAsONE 0.58.10 (2017-10-23)

  • Add cadence to activity graphs (reprocessing of all data required which may... take a while)
  • Store initial "end of day" statistics from plan generation against training schedule in preparation for graphing
  • Extract cadence stream and summary calories/max heart rate from TCX data
  • Make client_id parameter optional in oauth token call (can be set in authorization header) to ease integration
  • Error would be shown if attempting to view a workout which no longer existed after a plan regeneration
  • If an invalid value was entered into the edit activity form the redisplayed page would not show the original source values for reference
  • Subscription status could be set too early while dealing with a subscription change configuration
  • TCX parser could fail to mark some activities as cycling

TrainAsONE 0.58.9 (2017-10-18)

  • Add tooltip to explain run type in quick popup in a few places
  • Improve wording of "confirm run type" widget
  • Extract device name (including optional ANT+ sensors) from FIT files
  • Make it clear Garmin provided temperature is "device temperature", not a reliable environment temperature
  • The cadence adjustment in 0.58.8 should not have been applied to Cycling data

TrainAsONE 0.58.8 (2017-10-16)

  • Default the new activity edit data to values from the source data
  • New activity data was not extracted from some FIT files
  • Garmin and Strava appear to store cadence / 2. Multiply up for display

TrainAsONE 0.58.7 (2017-10-14)

  • Add additional activity data streams: cadence, ground contact time, vertical oscillation, step length, calories and temperature
  • Add initial per activity editable (or maybe edible) diet data
  • Add per activity advanced running dynamics data (test users only - watch this space)
  • Add more optional editable activity data: average candence, average heart rate, max heart rate, total calories, device name, time zone
  • Extract new data from Strava and Garmin FIT activity data where present (reprocessing of all activities queued)
  • Decrease 'Insufficient Recent Activities' sensitivity
  • Out of range data could disable heart rate analysis
  • Editing of activity in miles could sometimes adjust distance due to metres->miles->metres rounding

TrainAsONE 0.58.6 (2017-10-07)

  • Rework Garmin app endpoint to speed up fetch and avoid an issue with Garmins losing response codes

TrainAsONE 0.58.5 (2017-10-06)

  • Mention the Garmin app in a few more places
  • Deep Thought: Fix edge case where userMinimumLoad was undefined
  • Team calendar would not display if user training paused

TrainAsONE 0.58.4 (2017-10-05)

  • We now have a Garmin TrainAsONE app to load workouts directly
  • Deep Thought: enhanced risk-training benefit for returning runners
  • Change status button on view activity could show error

TrainAsONE 0.58.3 (2017-10-03)

  • Recurring planned workouts distances should be input in miles/km not metres
  • DeepThought: Avoid potential NPE for genotype userDesiredMinimumLoad
  • Allow BASIC plan to fetch Garmin planned workout summary data (but not download workout)

TrainAsONE 0.58.2 (2017-10-03)

  • Allow per week day recurring planned workouts
  • Indicate free trial details (if any) after user confirms email
  • Deep Thought: Improve low load scenarios
  • Add option for Garmin app to force logout when switching to different user
  • Add endpoint for Garmin app to request display preferences (initially for miles vs km)
  • After regenerating plan, leave notification visible and include link to view calendar
  • NonMonotonicSequenceException in Standing Heart Rate Analysis

TrainAsONE 0.58.1 (2017-09-27)

  • Improve handling of zero plan horizon
  • New schedule generation approach could over-prefer plan with fewer runs

TrainAsONE 0.58.0 (2017-09-26)

  • New schedule generation approach attempts to adjust the workouts on existing days when possible to reduce movement of workouts to different days
  • Plan horizon and Variation tolerance added to commitments configuration
  • Endpoints to support initial Garmin 2.x ConnectIQ app: Can show workout summary, download and run
  • Add Drills and Strides as Freestyle run types
  • Add "include activity links" option to shared calendar

TrainAsONE 0.57.2 (2017-09-12)

  • Set a limit for the oldest permitted activity (1980). We had some strange data from 1809 and even 0800
  • Chart display can be slow if activities cover too wide a date range. Limit to last five years
  • Deep thought: Minimum run duration (from training commitments) could prevent a custom workout from displaying (v2)

TrainAsONE 0.57.1 (2017-09-07)

  • Fix for 'minimum run duration (from training commitments) could prevent a custom workout from displaying' (0.57.0) triggers side effect for users without active goal (revert for now)

TrainAsONE 0.57.0 (2017-09-07)

  • Improved multi-goal training
  • Show user's activity notes on calendar
  • Show user's trainingDayRule notes on calendar
  • Tweaks to OAuth and workout API in preparation for Garmin changes
  • Adjustable end of day changes can cause upcoming run email to be skipped
  • Deep thought: Minimum run duration (from training commitments) could prevent a custom workout from displaying

TrainAsONE 0.56.2 (2017-08-23)

  • Per user adjustable 'end of day' setting
  • Allow selecting upcoming run email time at any 15 minute interval
  • Default the mobile calendar view to showing expanded workouts
  • Deep Thought: Improvements to reduce run clustering
  • Deep Thought: Another tweak to scheduling of speed workouts

TrainAsONE 0.56.1 (2017-08-22)

  • Automatic plan pause logic could be overenthusiastic for users who had not logged in for a while

TrainAsONE 0.56.0 (2017-08-21)

  • Deep Thought: Improvements to scheduling of speed workouts
  • Deep Thought: Improvements to plan compensation to recent high risk injury rates
  • Calendar: Do not auto scroll to 'today' on desktop view
  • Calendar: Persist mobile/desktop view setting for current browser
  • Calendar: Add summary/expanded view to calendar, persist for current browser
  • Ignore activities with future dates during analysis
  • Show a warning if training commitments do not permit plan generation
  • Pickup activity temperature from Strava and FIT data
  • Automatically pause training plan if no run or interaction for many days
  • Split 'Fitness Equipment' into 'Fitness Equipment (aerobic)' and 'Fitness Equipment (strength)'
  • Allow users to close unanswered questions

TrainAsONE 0.55.4 (2017-08-16)

  • Deep Thought: Improved consideration of time till goal
  • Deep Thought: Enhancements to taper
  • More clearly indicate which features are not available when on basic subscription

TrainAsONE 0.55.3 (2017-08-13)

  • Deep Thought: Minor enhancements to post race recovery
  • Deep Thought: Low max run duration can cause plan build failure
  • Deep Thought: Potential to ignore max run duration

TrainAsONE 0.55.2 (2017-08-11)

  • Speed up upcoming run email processing

TrainAsONE 0.55.1 (2017-08-10)

  • Slight improvement to display of subscription state as free trial ends

TrainAsONE 0.55.0 (2017-08-09)

  • Automatically update page to indicate when plan generation complete
  • Add run/walk run type
  • Add 5 mile and double marathon goal distances
  • Enhance Deep Thought reaction to low volume training
  • Enhance Deep Thought reaction to high volume / high injury
  • Improve initial onobarding plan generation indication
  • Make Garmin workout download dialog clearer

TrainAsONE 0.54.3 (2017-08-03)

  • Add option to target heart rate for recovery workout steps, and speed for others
  • Final mitigation for Runkeeper API rate limits
  • Edge case in Deep Thought's AfterLowestLoadDayRule could reject plan generation

TrainAsONE 0.54.2 (2017-08-02)

  • Additional mitigation for Runkeeper API rate limits
  • Web client could misbehave if it started to process requests before API layer fully running

TrainAsONE 0.54.1 (2017-08-01)

  • Indicate on view activity when linked workout on different day
  • Calendar training day rule form defaulting to plannedWorkout entry

TrainAsONE 0.54.0 (2017-08-01)

  • Show "Analysis Insights" for standing heart rate data
  • Expand template workouts to include settting economy or freestyle run types
  • Split goal and commitments pages in onboarding wizard
  • Allow noting injury state to onboarding wizard
  • Move training history from onboarding wizard to later step suggested when appropriate
  • Move external plan selection to commitments page and add external Couch to 5k
  • Add 'Computation Index' setting to Deep Thought
  • Enhancements to Deep Thought taper & speedwork scheduling
  • Better handle middle clicks on modal links
  • Add optional default team to organisation
  • Move all emails to new TAO styling
  • Minor adjustment to Runkeeper fetching to partially mitigate Runkeeper rate limits
  • Enhanced decision to display PlanRemark "Insufficient Recent Activities
  • Edge case in Marvin running profile generation can fail to generate plan

TrainAsONE 0.53.5 (2017-07-21)

  • Strava occasionally misses pushing an activity - check for and fetch any missed activities more often
  • Enhanced decision on introduction of speedwork by Deep Thought

TrainAsONE 0.53.4 (2017-07-18)

  • TrainingHistory show system error rather than correct feedback message for missing data

TrainAsONE 0.53.3 (2017-07-17)

  • Add option to show/hide heart rate range on calendar workouts
  • Rework TrainingHistory page slightly and add 'runs per week'
  • Teach Deep Thought about time zones
  • Avoid potential for Deep thought to miss rolling master genotype correctly

TrainAsONE 0.53.2 (2017-07-12)

  • Add FitnessSyncer to add activity menu and add activity wizard
  • Add riskTolerance TrainingCommitments setting for Deep Thought AI personality

TrainAsONE 0.53.1 (2017-07-12)

  • Show goal start time (and timezone where appropriate) on calendar
  • Add per trainingDayRule 'min minutes for run' for Deep Thought AI personality

TrainAsONE 0.53.0 (2017-07-10)

  • Subscriptions are live. Many thanks to all our users for helping us continue development
  • Improve the look of some email templates
  • Scheduled goal or template workout on today can be shown on calendar even after run performed
  • A goal on today can be picked as 'next' even when plan generating from tomorrow
  • User template workout without duration can trip economy run specifier

TrainAsONE 0.52.3 (2017-07-07)

  • Our second survey - for Garmin users
  • FIT download fails if ActivityType was missing from original data
  • Analysis fails if weather service returns valid period with null temperature

TrainAsONE 0.52.2 (2017-07-05)

  • Add choice of heartRate/speed target to Garmin workout download
  • In some situations a second run could be scheduled for the current day
  • Hard Assessments could be excluded unnecessarily

TrainAsONE 0.52.1 (2017-07-04)

  • Increase max/min maxRunMinutes range from 20..240 to 5..480
  • Per calendar training day rule entry not working correctly in 0.52.0
  • Wizard would show system error page if entered maxRunMinutes too high or low

TrainAsONE 0.52.0 (2017-07-03)

  • Improved TrainingDayRule run type selection
  • Allow download of more than just the next workout
  • Track user movement during activity for temperature data
  • FIT activity export does not work correctly in 0.51
  • Charts handle multiple activities on the same day poorly

TrainAsONE 0.51.12 (2017-06-24)

  • Our first "help us make TrainAsONE better" survey
  • Adjust plannedWorkout overlapping with day of last activity monitoring alert
  • Some activity processing refactoring

TrainAsONE 0.51.11 (2017-06-21)

  • Handle GPX and TCX files missing activity types as RUN
  • Add 'More options' to bottom of EAP temperature dropdown
  • Add note that we only support GPX v1.1, not v1.0
  • Reprocessing GPX activities would mismatch activity type
  • Reprocessing all activities to pick up additional data

TrainAsONE 0.51.10 (2017-06-21)

  • Do not include heart rate targets on Perceived Effort Assessments
  • Tag activities with excessively long time periods between location points
  • Add monitoring alert for plannedWorkout overlapping with day of last activity
  • Reprocessing activities could create additional ignored copy

TrainAsONE 0.51.9 (2017-06-16)

  • Allow adding arbitrary notes to goals

TrainAsONE 0.51.8 (2017-06-14)

  • Take advantage of increased Strava API request limits (thanks Strava!)
  • Increase max permitted age to 70
  • Profile max age is a hard limit (rejects one day over limit)
  • Edge case can cause Perceived Effort analysis to fail

TrainAsONE 0.51.7 (2017-06-14)

  • Reprocessing activities would incorrectly mark them as invalid

TrainAsONE 0.51.6 (2017-06-13)

  • Indicate activity and workout numbers in shared calendars
  • Add tooltips for various heart rates and elapsed time
  • Estimated workout start time not fully timezone aware

TrainAsONE 0.51.5 (2017-06-13)

  • Disabling External Schedule in profile did not immediately schedule plan generation

TrainAsONE 0.51.4 (2017-06-12)

  • Activities could be unnecessarily refetched from Runkeeper

TrainAsONE 0.51.3 (2017-06-09)

  • Refetching from Strava would skip detailed data if all Strava activity header data matched

TrainAsONE 0.51.2 (2017-06-08)

  • Improve formatting of pace range
  • Revert 0.51.0 fix for activity list state saving for now as edge case with column filters

TrainAsONE 0.51.1 (2017-06-07)

  • Issue with metric summary page display

TrainAsONE 0.51.0 (2017-06-07)

  • Drop min accepted race distances from 2km to just under 1km
  • Handle manually entered run data in FIT upload
  • When editing activity make 'change reason' optional
  • Dashboard Confirm activity type should include more details on run
  • Internal infrastructure date and timezone improvements
  • Email next run skips today if current time after workout start
  • Calendar shows environment adjusted workouts even when preference disabled
  • Calendar keeps resetting to current month after actions
  • Distance min/max warning shows value in metres
  • Activity list forgets paging settings when toggling "show ignore"
  • Speed/Pace display preference swapped in TCX workout download
  • Clicking on map markers on chart page always shows latest activity

TrainAsONE 0.50.2 (2017-05-30)

  • Mobile view calendar was empty

TrainAsONE 0.50.1 (2017-05-28)

  • Adding goal after initial onboarding in 0.50.0 would fail if organisation did not have default goal date

TrainAsONE 0.50.0 (2017-05-26)

  • Remember last adjusted start time, temperature and undulation for workouts
  • Add optional notes field to per calendar day TrainingDayRules
  • Handle plan with out of date primary goal but active secondary goal
  • Infrastructure improvements

TrainAsONE 0.49.17 (2017-05-24)

  • Add FitnessEquipment, Pilates & Yoga activity types

TrainAsONE 0.49.16 (2017-05-19)

  • Add activity stats table breakdown to calendar view for support users
  • Improve selection of running pace calculator

TrainAsONE 0.49.15 (2017-05-19)

  • Shared next workout display fails when active plan without specific goal
  • FitnessSyncer check interferes with Upload activity button

TrainAsONE 0.49.14 (2017-05-18)

  • Time scale on per activity charts not formatted correctly
  • Potential for abnormally slow active rest paces
  • rawVRE not always copied to vRE for new Perceived Effort assessments

TrainAsONE 0.49.13 (2017-05-17)

  • Add test user option to download workout JSON data
  • Make dashboard changelog dismissable by version
  • Physiological load formatted poorly on activity summary

TrainAsONE 0.49.12 (2017-05-16)

  • Accept DOB as YYYY/MM/DD as well as YYYY-MM-DD
  • Better changelog display
  • Allow tester users to download Garmin file for any workout
  • Improve system health monitoring
  • Allow support override of vLT, vRE and vVO2max for any activity
  • Plan in realignment message could be shown twice

TrainAsONE 0.49.11 (2017-05-09)

  • Add support only links to FitnessSyncer on activities wizard and list pages for testing

TrainAsONE 0.49.10 (2017-05-09)

  • Goal with null distance not shown correctly in user listing

TrainAsONE 0.49.9 (2017-05-09)

  • Set ScheduledOn date in TCX workout download
  • Only report activity vLT and vVO2max based on ActivitySubType

TrainAsONE 0.49.8 (2017-05-08)

  • Abstract out common training schedule infrastructure to be used across planner versions

TrainAsONE 0.49.7 (2017-05-07)

  • DistanceProcessor analysis can fail when data missing point distance

TrainAsONE 0.49.6 (2017-05-05)

  • Empty plan generated if plan paused past next primary goal
  • Movement burst processor can unnecessarily reject some data

TrainAsONE 0.49.4 (2017-05-01)

  • Improved consideration of Secondary Goals during scheduling of workout types
  • Tiny tweak to vVO2max calc of Best Effort Road Races
  • FAQ entry on 'target time for race'
  • Add support only strain/monotony regression charts
  • paceAdjustment/allowSpeedSessions column labels swapped in training start info history table
  • Long running plan generations can trigger watchdog timeout

TrainAsONE 0.49 (2017-04-27)

  • Better handle Runkeeper initial activity fetch with zero data
  • Process additional heartrate data in FIT files
  • Add copy to clipboard for shared next run link and html fragments
  • Cannot edit activity to WALK without first clearing ActivitySubType
  • Copy shared calendar to clipboard button does not work in Chrome
  • FIT file distance not parsed correctly GPS-less swimming data

TrainAsONE 0.48 (2017-04-25)

  • Option to download original source data as received where available
  • Activity upload can now default ActivityType from FIT/TCX metadata
  • Move TrainingAlgorithm selection to Training Commitments for testing users
  • Add multiple question review states
  • TrainingDayRule startTime not saved in desktop Chrome and similar browsers
  • FIT activity parser does not correctly map Sport to ActivityType
  • POST request to webclient without valid login shows system error page

TrainAsONE 0.47 (2017-04-19)

  • Option for read only access to team member data
  • Show training pause/injury history under Training Commitments
  • Include activity notes in TCX/GPX download data
  • Add optional start times to day of week commitments and calendar day training day rules
  • Chart labels do not display details when clicked

TrainAsONE 0.46 (2017-04-06)

  • Activity option to ignore heart rate data
  • Option to exclude assessment workouts on specified days
  • User preference for "prefer device elevation"
  • Garmin workout preference to prefer speed vs heart rate target
  • Show dashboard and calendar indication if plan has been paused
  • Show confirmation status and effort rating to view activity page
  • Add PerformedActivity.source and show on view activity
  • User charts page does not show correctly on iPhone
  • Heart rate target not set correctly for some Garmin devices
  • iOS cannot scroll embedded tapiriik page
  • Difficult to view labels on user charts page on mobile devices
  • View profile swaps "show pace as speed" value
  • Garmin TrainingCenter rejects TCX workout files with minimum speed of 0

TrainAsONE 0.45 (2017-03-21)

  • Download workouts in Garmin formats
  • Option to schedule user specified workouts
  • Preference to show and enter weight in lbs
  • Preference to show paces as speed
  • Preference to show paces range on workouts
  • Mobile API call to list upcoming planned workouts
  • Add weekly load/duration charts
  • Add key for pace affecting injury on charts
  • Calculate Euclidean distance for Device vs Official elevations
  • Add regression of Monotony & Training Strain to LoadAlignmentAnalysis
  • Add 7 Days of grace for monotony when coming out of realignment
  • Better consideration of Realignment for scheduling of long runs
  • Add a "Help/change this run" option to next run
  • Copy activity notes when fetching data from Strava
  • Improved consideration of manually entered Freestyle (Intervals)
  • Improved filenames for activity/workout download
  • Indicate in UI if user has unclosed questions
  • Indicate in UI if goal is out of date
  • Show clear message at top of dashboard if activity wizard not completed
  • Show original activity source if available eg: RunKeeper/iCardio
  • Strava activity push not ignored for INACTIVE accounts
  • EAP adjusted PlannedWorkouts lose "onTaper" indicator
  • Fix overzealous reduction of Long runs
  • Under-estimation of loads in fast scheduled workbouts
  • 7 Day TrainingStrain check triggering too much for low volume users

TrainAsONE 0.44 (2017-02-16)

  • Initial user progress charts
  • Enhancements to analysis of Perceived Effort Assessment
  • Improved respect for Training Monotony and Strain, especially for high volume loads
  • Quick activity summary popup added to activity list and calendar
  • Rework add activities wizard for Tapiriik and move to end of onboarding
  • Skip oauth grant page if re-authorising Tapiriik
  • Speed up display of large activity listing
  • Additional monitoring webhooks
  • Out of date email would be sent even if another goal was still valid
  • Missing Heart Rate specification for Easy bouts on 3.2 km assessments
  • Activity listing display issue with unanalysed activities
  • Activities from Strava with inconsistent heart rate data not handled correctly
  • Interval sessions of less than 1 minute would be rounded down to "0 min"

TrainAsONE 0.43 (2017-02-07)

  • Connect to Tapiriik (available from your Activities page)
  • Initial coach support
  • Initial team support including coach view of team calendars
  • Enhanced run specification in lead up to goals (especial non primary)
  • Improved usage of user responses to Training History questions
  • Enhancements to analysis of Perceived Effort Assessments
  • Overzealous downgrading of Hard runs to Economy
  • 3.2 km Assessments with low residual loads potentially displaying zero length easy bouts
  • Total distance for scheduled 6-min Assessments not always shown correctly
  • Plan generation could fail for users with a slow base pace combined with an injury

TrainAsONE 0.42 (2017-01-27)

  • Activity data can now be downloaded in FIT format
  • Simplify training history questions
  • Better vVO2max zone analysis for summary only activities
  • Improved vVO2max from Best Effort Road Races
  • Improved vLT analysis from Best Effort Road Races
  • Store alignment values against Scheduled Runs
  • Normalised Graded Velocities calculation enhancements
  • vVO2max fraction calculation enhancements
  • Anticipate user actual loading against scheduled loading
  • Scheduled Economy runs could be incorrectly labelled as Long
  • On last day of week, hard session could be erroneously dropped

TrainAsONE 0.41 (2017-01-18)

  • Initial support for multiple user goals
  • API for external services to synchronise activity data
  • Indicate activity source (e.g. Strava) and whether ignored on post run emails
  • Improved handling of extended run scheduling/specification following hard runs
  • Minor enhancements to post race training
  • Improvements to vVO2max calculation
  • Introduce training monotony and training strain calculations
  • Add more upcoming email options
  • Do not delete and refetch activities if reauthorising the same Strava or Runkeeper account
  • Use webhooks internally for new question notifications and hourly checks

TrainAsONE 0.40 (2016-12-24)

  • Improve cross-check duration limiting of long runs in far future
  • Enable user triggered Strava/RunKeeper fetch
  • Add per activity analysis remarks and show on view activity page
  • Link to original RunKeeper/Strava activity from view activity page
  • Option to record activities only (for Couch to 5k research)
  • Work on initial mobile API enpoints
  • Goal activity could be awarded training points
  • Attempting to submit a blank manual entry would give generic error page
  • Our traditional easter egg :)

TrainAsONE 0.39 (2016-12-08)

  • Enhanced planning following recent periods of rest (or low level activity)
  • Include any current plan warnings in activity confirmation email
  • Enhance RunTypeClassifier handling of Perceived Effort runs
  • Add more UI clues explaining that Perceived Effort runs need to be confirmed
  • Add FAQ for How to choose the Run Type classification
  • Switch API authentication to OAuth2 token model
  • Rework analysis infrastructure to avoid memory issues when re-analysing entire dataset
  • Maximum training days could be exceeded on Sunday under certain rare circumstances

TrainAsONE 0.38 (2016-11-29)

  • Display activity route on map when viewing activity
  • Graph velocity, heart rate, elevation & distance
  • Allow downloading activity data as TCX
  • Adjust Perceived Effort scheduling after a period of detraining
  • Extend load alignment calculation past 365 days
  • Add weekly training points totals to calendar
  • Perform and display analysis for ignored (and ignoreddue to overlap) activities
  • Allow official race distance entry during creation of manual activities

TrainAsONE 0.37 (2016-11-16)

  • Allow setting Training preferences for specific dates on calendar
  • Option to start calendar week on Sunday (as opposed to Monday)
  • Ability to enter official race distance and time for activities
  • Add "how long can you comfortably run" question to onboarding
  • Add per activity number
  • Distances are now input in kilometres or miles based on user preferences
  • Whether activities are adjusted for temperature and undulation by default now adjustable
  • Warn when collected activity data for assessments has insufficient location data
  • Indicate on dashboard when plan is being adjusted due to injury
  • Faster RunKeeper activity fetching
  • Additional FAQ entries on Workouts, Workbouts, and economy vs speed sessions
  • Allow editing of training history after onboarding is complete

TrainAsONE 0.36 (2016-11-04)

  • Infrastructure to allow live migration of user accounts between TrainAsONE systems
  • Allow analysis of Perceived Effort when no such run scheduled
  • A Guy Fawkes Easter egg for our users

TrainAsONE 0.35 (2016-10-31)

  • Switch to new theme by default
  • Show weekly run totals on calendar
  • Add target time to Goal entry
  • Indicate if next scheduled activity has changed
  • Add option to email next activity from dashboard
  • Include information on how to add shared calendar to different services
  • Tweak next activity email layout
  • Reduce minimum accepted length of Economy, Recovery, Long, Perceived, and Tabata runs to 4min
  • During onboarding wizard allow back navigation for untouched pages
  • Improvements to Specification of Long Runs in the Far-Future
  • Activity confirmation of "Not A Run" leaves activity type as RUN
  • Threshold easy bouts could have negative durations
  • Scheduled activities assosicated with performed activity not cleared when user changes run type
  • A small easter egg for Halloween :)

TrainAsONE 0.34 (2016-10-21)

  • Add new v2 Perceived Effort run
  • Activity data now pushed immediately from Strava
  • Add "Show scheduled activities as whole day on shared calendar" option
  • Allow environment adjustment of activities on calendar
  • Small plan scheduling improvements
  • Rework activity listings data handling for increased performance
  • Adjust dashboard layout
  • When an initial calendar is generated, only show details for the Perceived Effort run and explain why
  • Display activity confirmation subjective ratings on view activity page
  • Disable GPX download for activities without location points
  • Add "Updating TAO" message during deploy

TrainAsONE 0.33 (2016-10-10)

  • Add additional options (Road, Trail, Flat, Hilly) to goal setup
  • Store last shown environment adjustment for scheduled activities and show on view activity page when linked
  • Introduce new UI theme via switcher menu item
  • Refactoring of Strava fetch to speed up onboarding
  • Enhanced intelligence of 6 minute assessment scheduling in low load situations
  • Reworked RunType Classifier based on FFT velocity analysis (faster & better)
  • Run type confirmation feedback on dashboard is now inline using AJAX
  • Additional information for users connecting to Strava and RunKeeper
  • Various miscellaneous bug fixes

TrainAsONE 0.32 (2016-09-23)

  • Allow 12-17 year old users (via parental consent)
  • Support users who do not pass the health questionnaire
  • Minor changes to mobile layout and form widgets
  • Double pass analysis queue and performance enhancements
  • Include Strava activities with impractical data on activity list
  • Better warmup pacing for injury adjusted runs

TrainAsONE 0.31 (2016-09-14)

  • Handle TCX files with full heart rate but no location data
  • Process and analyse Strava manual activities
  • Rework initial activities onboarding page
  • Wind speed from wunderground displayed incorrectly
  • Question input does not handle non ASCII data

TrainAsONE 0.30 (2016-09-10)

  • Add ability to record injury details and automatically adjust plan
  • Rework run confirmation dialog and add workout feedback for certain run types
  • Improvements to run type classifier
  • Add pause training plan and ask question links to upcoming email
  • Make date of birth entry easier
  • Include explanation of current run type on dashboard and upcoming run email
  • Add an explicit "Dashboard" link in top menu
  • Add football (soccer) activity type
  • Default hour for weather forecast not timezone aware
  • Shared calendar does not show time details for Goals
  • 3.2K assessment environmental adjustment adjusts distance

TrainAsONE 0.29 (2016-08-26)

  • Enable plan pause/unpause from dashboard
  • Introduce concept of plan realignment
  • Add 12 hour clock display preference
  • Reduce minimum registration age to 16 years
  • Adjust activities in upcoming email and calendar for temperature and undulation
  • Improvements to mobile layout, particularly for tables

TrainAsONE 0.28 (2016-08-18)

  • Planning: Improved scheduling of assessments in run up to goal
  • Planning: Enhanced load alignment for long-term (life-time) athletes
  • Planning: Minor enhancements to Marathon/Ultra-Marathon taper in final week before goal
  • Planning: Improvements for low frequency / sporadic recent training
  • Calendar: Indicate on training calendar when activities have been adjusted for race tapering
  • Calendar: Show race name on training calendar goal scheduled activity
  • Calendar: Default start time of scheduled activities based on historic data for each day of the week
  • Activity view: Add option to clear distance and duration overrides
  • Activity view: Add option to confirm run type
  • Dashboard: Share my next run widget
  • Dashboard: Switch to improved weather forecast data service
  • Dashboard: Enable environment adjusted pace on dashboard by default
  • Dashboard: Improvements to forecast widget UI
  • Dashboard: Add "reply to" option for question

TrainAsONE 0.27 (2016-08-05)

  • Activity pacing adjustment enhanced to include terrain undulation as well as temperature
  • Weather forecast details now shown for 3 hour windows with min/max temperatures and expected wind
  • Temperatures can be shown in ℉ or ℃ (according to setting in user profile)
  • Improved estimation of vVO2max when no assessments
  • Improved handling of returning to training after training gap
  • Activity distance and duration can now be edited
  • Activity detail page now includes undulation and elevation summary data
  • Historical performed activities could have negative durations on shared calendar
  • Adjusted shared calendar timezone handling to fix time display on Apple Calendar
  • Enhanced knowledge of Run Type Classifier

TrainAsONE 0.26 (2016-07-22)

  • New Feature: Option to adjust pacing of next scheduled activity according to temperature (defaults to the day"s maximum, and available from user Landing page)
  • New Feature: Ability to easily pause and un-pause your training plan (available from Training Calendar)
  • Enhancement: Better initial plans for users with none or sparse run data
  • Enhancement: FAQ entry on "Can I swap my long run? (or any type of run)"
  • Enhancement: FAQ entry on "What is Physiological Load?"
  • Enhancement: FAQ entry on "What are Training Points?"
  • Enhancement: Add Ultimate (Frisbee) activity type
  • Enhancement: Split race types into "Best Effort" and "Casual"
  • Support: Showing of data in target user timezone for admin / support roles
  • Support: Add normalise graded pace to activity listings
  • Support: Quick links for recently reviewed users
  • Various bug fixes

TrainAsONE 0.25 (2016-07-13)

  • Add direct answer feedback mechanism for user questions
  • Further refinement to Economy pacing (increased knowledge datapoints from ~9,000 to ~215,000)

TrainAsONE 0.24 (2016-07-08)

  • Add "Confirm recent runs" feedback to dashboard
  • Show details of next Scheduled activity on dashboard
  • Add "Have a question about your plan?" feedback button
  • Add innate and conversational paces to view activity page
  • Add basic heart rate summary information to view activity page

TrainAsONE 0.23 (2016-06-30)

  • Improved filtering of runs with sporadic GPS data points and insane velocities
  • When viewing a performed activity the relevant scheduled activity data is also shown
  • Plan regeneration due to missed run is now timezone aware
  • Cleanup and improvements to mobile web UI
  • Allow RunKeeper and Strava to optionally be "authorised but inactive"
  • Notes on ativities default to the information from RunKeeper/Strava where relevant, and are retained if an activity is marked "Ignored"

TrainAsONE 0.22 (2016-06-08)

  • Add optional heart rate pacing to runs
  • Improved timezone support
  • Handle activity data with timestamps that sometimes go backwards
  • Handle km/m mismatch seen in some TCX files

TrainAsONE 0.21 (2016-05-16)

  • Enhancements to the analysis of Perceived Effort runs
  • Improvements to the Economy Velocity AI and knowledge-base
  • Additional use of Training History data during initial plan generation
  • Ability to share training calendar (scheduled & performed runs) for use in Apple or Google calendaring apps
  • Capturing of basic heart rate data (during onboarding & erstwhile)
  • Improvements to Support role interface

TrainAsONE 0.20 (2016-04-26)

  • Enhancements to Economy velocity calculation
  • Improved onboarding wizard navigation and progress indication
  • Add page of Run Type explanations (and link to, from calendar and emails)
  • Add Training History during onboarding to improve initial plans for users without recent data
  • Implement Perceived Effort (self paces) assessment runs
  • Better handling of activities with overlarge distance/duration
  • Add print/copy/csv download buttons to activity list
  • Prevent changing an activity status to VALID if it would cause an overlap
  • Show activity status changes in activity change log
  • Allow viewing basic activity data for non analysed activities
  • Tweaks to mobile layout for various pages

TrainAsONE 0.19 (2016-04-14)

  • Improvements to analysis for runs with excessive grades
  • Long runs could be scheduled on non Long Run days
  • Include activity status change history on activity view page
  • Enhancements to six minute assessment scheduling
  • Optional Barnstaple Marathon and Half Marathon 2016 branding

TrainAsONE 0.18 (2016-04-12)

  • Improved economy pacing determination
  • Initial handling of data without latitude/longitude (treadmill)
  • Further performance improvements to plan generation
  • Indicate which activities have had their Run type manually set in the activities list
  • Simplify the "Add Activities" (upload, manual entry, fetch, etc) interface
  • Implement refetch individual Strava activity
  • Autodetect user"s timezone during onboarding
  • Show a history of all activity type / subtypes changes when viewing an activity
  • Enhancements to support interface

TrainAsONE 0.17 (2016-03-15)

  • Automatic Strava activity fetching
  • Allow disconnecting and switching Strava accounts
  • Manual activity entry
  • Provide information on options for adding activities to TrainAsONE
  • Improved goal entry handling
  • Add support role to server
  • Plan generation performance enhancements
  • Improved initial plan scheduling for users with insufficient activity data
  • Enhancements to calculations of user training paces

TrainAsONE 0.16 (2016-03-01)

  • Training plan generation: Speed up by caching performed activity analysis data across entire generation
  • Activity upload: Remove 50-character limit for uploaded filename lengths
  • Goal: Allow setting a start date over 28 days in the future, but show warning if more than 14 days

TrainAsONE 0.15 (2016-02-26)

  • Training Calendar: Fade out entries before/after current month
  • Analysis: Speed up activity analysis and plan generation
  • Goal: Introduce "experimental" training distances - 5km & ultra-marathons (50km to 100Mile)
  • UI: Minor tweaks to onboarding process
  • Revoking RunKeeper access resets goal
  • Training Calendar display not correct for non UTC timezones

TrainAsONE 0.14 (2016-02-12)

  • Training Calendar: Show a warning if there is insufficient recent activity data
  • Training Calendar: Always show exact minutes and seconds for workbouts
  • Training Calendar: Make plan regeneration asynchronous
  • Training Calendar: Indicate whether activity or plan regeneration is underway
  • Algorithm: Improve training algorithm to cater for sparse data better
  • Algorithm: Improve use of 3.2km Assessment by RunningPaceCalculator
  • Algorithm: Implementation of post-rest pace adjustments
  • Training Configuration: Allow any future date for a goal, but show a warning if too close
  • Training Configuration: Adjust current running distance and time to average per run, and allow leaving blank
  • Email: Rework and simplify upcoming activity email selection
  • Email: Add duration and distance to post run email
  • Email: Do not send post run email for non RUN activities
  • Activities: Add option to delete an activity
  • Activities: Default to not showing "ignored" activities in list
  • Activities: Indicate activity source in list
  • Activities: Improved support for non ideal external data

TrainAsONE 0.13 (2016-01-26)

  • Add on demand Strava import button
  • Add FIT to supported upload formats (in addition to TCX & GPX)
  • Include day of week in mobile calendar view
  • Allow setting "max minutes for non long run" for each day of the week
  • Change "Distances in miles" user preference to show feet & miles rather than metres and miles
  • Handle overlapping activities from different services which have incorrect timezone offsets
  • Exclude activities longer than 12 hours from detailed location analysis
  • Add optional "change reason" message when ActivityType or ActivitySubType is modified
  • Analysis performance improvements
  • Post run emails ignoring the preference setting

TrainAsONE 0.12 (2016-01-18)

  • Initial plan creation could fail if no activity data available
  • Economy runs exceeding preferred time could still be scheduled on weekends
  • Non run activities would be reported with a subtype of "(Economy run)"
  • Post run email "View all your activities" not clickable

TrainAsONE 0.11 (2016-01-13)

  • Strava coming soon notice during on-boarding
  • Hard Runs could still be scheduled on Economy only days
  • Automatically clear run type when switching activity to a non run type (e.g. Walk or Swim)
  • Calendar not showing performed activities for different timezones

TrainAsONE 0.10 (2016-01-11)

  • Major enhancements to the underlying training Artificial Intelligence (AI) with further insight based on the ever-increasing dataset making training even more efficient and effective
  • Improved personalisation of vRE Pace - addresses atypical user data (atypical data, not user) which could leed to a slower than desired pace
  • Users can now specify which days of the week they can run, and which class of workout they can do on those days
  • Users can now import activity data using the standard TCX format (previously we only supported GPX files)
  • Minor tweaks to mobile calendar
  • Allowing viewing training calendar for performed activities even without a goal
  • Check for repeated password reset requests too aggressive

TrainAsONE 0.9 (2016-01-05)

  • Introduction of a mobile layout for the training calendar
  • Allow editing of activity status/runType from the view activity page
  • Add editable notes to view activity page
  • Send reminder email when goal more than 48 hours out of date
  • Minor tweaks for desktop calendar display
  • Add html links to relevant activity(ies) in post activity email
  • Uploading GPX files always defaults to activity type "Run"
  • In some cases the final week of the training calendar is not be shown

TrainAsONE 0.8 (2015-12-21)

  • Extend the training calendar to show completed as well as scheduled activities, plus paginate by month
  • Allow editing of existing goals
  • Show a warning after login if goal is out of date
  • Add some tooltips to explain terms
  • Improvements to the on-boarding process
  • Add link to tao website from verification email

TrainAsONE 0.7 (2015-12-15)

  • Initial per activity view page, including vVO2max and vLT values
  • Add salutation for use in emails
  • New email template subsystem - full details of scheduled runs are back
  • New user profile setting - opt in/out of "Feature update" emails

TrainAsONE 0.6 (2015-12-09)

  • Combine multiple completed activities into a single post run email
  • Fix an analysis issue

TrainAsONE 0.5 (2015-12-07)

  • Upload and download GPX from activities list
  • Indicate activities queued for processing on activity list
  • Handle overlapping activities (can mark as ignore)
  • A RunKeeper account is no longer required to use TrainAsONE