Skip to content

[Researchers] Passive Data

GeorgiosEfstathiadis edited this page Sep 27, 2023 · 7 revisions

Table of Contents

Accelerometer Data

The app records the phone's accelerometer data, which indicate movement of the phone and can be used as an estimate of how long a participant sat still, when a participant was walking, how many steps the participant took while walking, etc. The units of accelerometer data are in either meters per second squared or gravity units, depending on how the phone's accelerometer device reports units.

timestamp UTC time accuracy x y z
1.5E+12 2017-06-01T23:07:13.940 unknown -0.03641 -0.60576 -0.78812

GPS Data

The Beiwe app can record the phone's GPS location in latitude and longitude, as well as the precision of that measure. The GPS is often accurate to within about 10-20 meters. It can be used to construct a map of where a participant traveled and when a participant was at different places, although it cannot identify the mode of travel. The rate of GPS sampling is customizable to each study, or GPS sampling can be disabled for a particular study if GPS data is not part of the research questions/goals.

timestamp UTC time latitude longitude altitude accuracy
1.5E+12 2017-06-15T14:15:18.675 43.33558 -74.1021 -4.3 19.669

Power State

Apple iOS: Beiwe reports when the participant’s phone screen is locked/unlocked and if the phone is charging, unplugged, the percentage level of available battery, when the battery is full or if there is an unknown charging state.

Android: Beiwe reports screen on/off. Researchers can use Power State data to infer phone usage and if missing data is related to a depleted battery.

Android Power State
timestamp UTC time event
1.5E+12 2017-06-16T13:22:10.642 Screen turned on
iOS Power State
timestamp UTC time event level
1.5E+12 2017-06-05T02:00:00.321 Unlocked 0.68
1.5E+12 2017-06-05T02:34:02.662 Unplugged 0.67
1.5E+12 2017-06-05T02:36:45.742 Locked 0.67

Phone/Screen Usage Data

The app records when the participant turns on or off the phone's screen. For iOS, these events are referred to as the phone being locked/unlocked and for Android it’s screen on/off in the Power State data stream. Tracking when the screen is on provides a proxy for when the participant is using his/her phone. For example, if a participant wakes up at 3:44am, checks his/her phone for 10 seconds, and then goes back to sleep, Beiwe will record that the phone screen turned on for 10 seconds at 3:44am.

Identifiers

The identifiers file is created when a study participant enrolls in a study. The file only appears in the data on the day of enrollment. If for any reason a study participant un-enrolls/re-enrolls in the study (ie they get a new phone) a new identifiers file will be created. This file includes the patient_id, phone number and MAC (if available), device OS type and version, phone manufacturer and model and Beiwe version.

Updated Android Identifier File
timestamp UTC time patient_id MAC phone_number device_id device_os os_version product brand hardware_id manufacturer model

1617916351000

2021-04-08T21:12:31.000

xsivxe9u

-uJZmeWcsTkmCTWBjmqggyWVeWAAK2d5SYJSE7Et8LMhRAim1KCd_7CjF4j6esZf2tEuwrKea5x9T8C0FLSe-w==

iHTAfHe9wxdjJnBaKb7T4LvGseyZw8nYX9tqCczU15FH0ouYbQTyGNoLV5FZ5WR-SeO6xXLWAucXBeEvhdBbWQ==

0o3HT7OFSgicoFKFvX8EOW2U-fDrLBhoszZ68aK1qTk=

Android

9

cv1s_g

lge

cv1s

LGE

LM-X220

googlePlayStore-3.0.3
Android Identifier File
timestamp UTC time patient_id MAC phone_number device_id device_os os_version product brand hardware_id manufacturer model beiwe_version
1.5E+12 2017-06-15T14:14:57.000 43l6b8dp jGR0bVANoSACCD0IynXHyHM5p TS_8prhqsgtr57hDjCUEjIiJY= _xjeWARoRevoDoL9OK= Android 5.0.1 jfltevzw Verizon qcom samsung SCH-I545 16
iOS Identifier File
timestamp UTC time patient_id MAC phone_number device_id device_os os_version product brand hardware_id manufacturer model beiwe_version
1.49E+12 2017-05-15T17:00:34.000 ggsj4e7e none NOT_SUPPLIED EE6KJHN19EB6-EAFB-4241-9EFD-A17B49 iOS 10.3.1 iPhone apple none apple iPhone8 1 1.2.0.12

Wi-Fi Router Data (Android Only)

The Beiwe app can record a list of all Wi-Fi routers with which the phone can communicate, and the signal strength of each of those routers.ii This serves as a proxy for location; when the phone has a very strong, clear signal from a Wi-Fi router, it is probably in the same room as that router. The Wi-Fi scans cover both the 2.4 GHz and the 5 GHz frequencies. The Beiwe app records the hashed MAC address of the Wi-Fi router (using the industry-standard SHA-256 hashing algorithm), described in section 1.4.

Hashed MAC addresses of Wi-Fi routers are necessary to collect in certain pilot studies (can be disabled for any study if this is not part of the scientific question) because we are interested in indoor mobility of patients (such as those recovering from surgery). For some patient groups, it is of interest to monitor movement inside buildings, and GPS is not reliable to monitor indoor movement.

The MAC addresses are hashed, so it is impossible to work backward from the hashed MAC address to the real address. Wi-Fi routers change in signal strength with mobility patterns, so the collection of Wi-Fi signals allows researchers to learn about changes in a person’s movement in a building, as opposed to the exact location within the building. From our testing at HSPH, hundreds of Wi-Fi signals are available in the Longwood area. One of the goals of the Beiwe Research Platform is to determine the clinical relevance of certain data collected from smartphones, so it is necessary to collect to ultimately analyze a person’s indoor mobility to determine if this may be clinically important for specific studies. If indoor mobility is not a critical part of the research question for that study, the collection of this data stream can be disabled prior to the start of the study within the Beiwe Research Administration website by unchecking a box in that specific study’s device settings section.

timestamp UTC time hashed MAC frequency RSSI
1.5E+12 2017-06-15T17:00:21.464 MNMdDDePZ5now3vP4ZtDZFvhhjVbz4l4kQWTklr-TDo= 2437 -72

Bluetooth Data (Android Only)

In some instances, the Beiwe app can record the hashed MAC address of nearby Bluetooth devices. Because the Bluetooth MAC address is hashed, it is not possible to learn the identities of devices from the Bluetooth data (see Data Anonymity Section of this document). Beiwe can record Bluetooth in the standard 2.4 to 2.485 GHz frequency band. Due to limitations imposed in Bluetooth on Android 6+, Beiwe will no longer report the device's true MAC address although some devices will continue to report it anyway. Instead, all devices now return the same default address when queried for the MAC address in the Identifiers data stream. When possible, Beiwe will report the correct MAC address for the Identifiers data stream.

Phone Call Log Data (Android Only)

Beiwe records metadata on all incoming, outgoing, and missed calls to and from the phone. It records the time of each call, the length of the call in seconds, and the hash of the phone number on the other end. It does not record the audio of the calls, and does not record the identity (or actual phone number) of the person called.

timestamp UTC time hashed phone number call type duration in seconds
1.5E+12 2017-07-03T16:54:40.961 tE6XkkmChr4Md3mypsZ1wqGMrndhDK4mGqs0kPrfXE4= Incoming Call 489

Text Message Log Data (Android Only)

Beiwe records metadata on all text messages sent from and received by the phone. It records the time each message was sent or received, the length of the message (in number of characters), and the hash of the phone number the message was to or from. It does not record the content of text messages, and does not record the identity (or actual phone number) of the person called.

timestamp UTC time hashed phone number sent vs received message length time sent
1.5E+12 2017-06-15T14:19:03.843 3WqwQJ9SBvSQaq8jmVLAQy9n4YryXfFLJFLJhY2WZ0k= sent SMS 18
1.5E+12 2017-06-15T14:19:04.979 3WqwQJ9SBvSQaq8jmVLAQy9n4YryXfFLJFLJhY2WZ0k= sent SMS 18

Proximity (Apple iOS Only)

Beiwe can report proximity information from iOS devices. Proximity indicates when the device's proximity sensor is "near" (usually very near, centimeters) the user. This is the sensor that turns off the phone screen when you put the phone up to your ear during a call. You will not see this consistently and you won't see it at all if the person never put the phone to their ear during a phone call (ex. they may be using a headset or speakerphone). This sensor should be present on all iOS devices capable of running the Beiwe app, but its implementation and exact location may differ between models and generations. Historically the sensor is next-to/integrated-with the selfie camera. Access to this data stream is architecturally limited to times when the Beiwe app is in the foreground.

timestamp UTC time event
1.51E+12 2017-12-01T15:45:56.969 NearUser
1.51E+12 2017-12-01T15:45:58.741 NotNearUser

Gyro (Apple iOS and select Android phone models)

Beiwe reports rotation or twist on a phone via the gyroscope (gyro). This data can be used together with other collected data to determine various activities. The sign follows the right hand rule: If the right hand is wrapped around the axis such that the tip of the thumb points toward positive, a positive rotation is one toward the tips of the other four fingers.

Note: Some android phone models may not include a gyroscope sensor. You can check if a given phone has a gyroscope sensor at a website such as this one

timestamp UTC time x y z
1.51E+12 2017-12-04T19:01:54.442 0.007534 -0.00846 0.00107

Magnetometer (Apple iOS Only)

Beiwe can be configured to collect the uncalibrated magnetic field of the phone in each direction. This data can be used together with accelerometer data to determine the orientation of the phone.

timestamp UTC time x y z
1.49E+12 2017-04-17T12:08:36.637 -118.817 -103.967 28.25653

DeviceMotion (Apple iOS Only)

Bewie collects this calculated information to determine information about the motion of the participants’ phone. The acceleration, magnetometer, and gyro sensors influence each other and are used to determine things such as what part of the phones acceleration is due to gravity, and what part is due to the user exerting force on the phone. Some variables in DeviceMotion (roll, pitch, and yaw) are not found in any other data streams, but other variables are duplicated from accelerometer, gyroscope, and magnetometer data streams.

timestamp UTC time roll pitch yaw rotation_rate_x rotation_rate_y rotation_rate_z gravity_x gravity_y gravity_z user_accel_x user_accel_y user_accel_z magnetic_field_calibration_accuracy magnetic_field_x magnetic_field_y magnetic_field_z
1.49E+12 2017-04-17T20:01:44.178 -1.80147 0.18687 0.235159 0.004084 0.026402 -0.06429 -0.95656 -0.18578 0.224656 0.015539 -0.00918 -0.00345 uncalibrated 0 0 0

Reachability (Apple iOS Only)

Beiwe reports whether and how the phone is connected to the internet, either via Wi-Fi or a cellular data connection or if the Internet is not reachable. Events are reported when the phone changes it's connection. For example, switching to WiFi, switching to cellular, or switching to airplane mode. If a user remains in one of those states for a day (for example, they are on cellular the whole day without ever switching to WiFi or airplane mode) you will not see Reachability data that day. It is common to see gaps in Reachability data.

timestamp UTC time event
1.5E+12 2017-06-04T04:48:55.927 wifi
1.5E+12 2017-06-04T02:21:48.870 unreachable
1.5E+12 2017-06-04T02:21:56.482 cellular

Accuracy Column (Present in Android data)

In Android columns, an "Accuracy" column is provided for data streams such as accelerometer and gyroscope. Accuracy values can be interpreted using the following table:

Accuracy Value Interpretation
unknown Android does not see fit to provide an accuracy reading
0 Unreliable: The values returned by this sensor cannot be trusted, calibration is needed or the environment doesn't allow readings
1 Low: This sensor is reporting data with low accuracy, calibration with the environment is needed
2 Medium: This sensor is reporting data with an average level of accuracy, calibration with the environment may improve the readings
3 High: This sensor is reporting data with maximum accuracy
Clone this wiki locally