GPS can only deliver an approximation of real time speed. Those apps are more accurate a few seconds or minutes after digesting the data, and after a ride is closed and the data is finalized.
I've tried most of the popular apps on iPhone and Android and there's always a lag of several seconds before changes in speed register on the display. This occurs throughout the roller coaster routes I ride where I know I'm blasting downhill at 20-30 mph but the app still shows my slower speed from several seconds earlier while climbing to the crest before the next downhill; and vice versa. After several trial runs with each app I don't even look at the display while riding. The phone is either in my pocket or the display is turned off when mounted on the handlebar.
For accurate real time speed a speedometer would be better. More accurate for distance too.
GPS apps do a lot of guesstimation after an activity session, including calculating distance and route. I've run three apps simultaneously on different devices and each shows slightly different data. Just the nature of the beast. It can get even weirder when the device loses GPS sync and the app tries to guesstimate our probable route. Often Cyclemeter would guess pretty accurately and trace my probable route, while Strava's trace would show straight line leaps across barbed wire fences and through pastures between where sync was dropped and regained.
If you do a lot of moving throughout the day -- standing, walking, sitting, walking, standing, etc. -- which would be common with retail and warehouse jobs, you might consider disabling auto-pause/resume on any app that offers this option. Some cycling apps automatically pause at slow speeds, assuming we don't want to include our slowdowns for traffic lights and stop signs, etc. Unfortunately that means the apps will ignore our time off the bike walking, which might matter if we're doing lots of errands. I get huge differences in distance, route, speed, etc., between various apps when I'm combining casual cycling with errands.
Wahoo Fitness for iPhone has user customizable auto-pause/resume threshold and activity profiles. So I created a "cycling/errands" activity profile and set the auto-pause/resume to a 1 mph threshold. This pauses when I'm actually stationary and resumes when I walk or ride. For my "cycling" activity profile I set the auto-pause/resume threshold to 4 mph.
Unfortunately the Android version of Wahoo Fitness seems to lack this user customizable auto-pause/resume threshold. So I'll continue using my older iPhone for most rides, and it works fine without a data plan just running off GPS during activities and wifi at home.
If I'm recalling correctly Cyclemeter and Strava lack this level of user customization in easily setting up activity profiles that match our real world activities.