Our Sail indoor positioning algorithm calculates positions every second, with the calculations being done on the phone.
Assuming the phone has a network connection, and server connectivity has been enabled (licence dependent), data is shipped from the phone to our servers in batches approximately every minute (there is some variation between iOS and Andriod).
If the phone does not have a network connection then the phone will cache the positions for a period of time and then transmit this data once connectivity resumes.