The AppleWatchDeviceManager exposes information about state of the watch and the phone.

Is the watch ready?

isAvailable is true when WatchConnectivity is supported, a watch is paired, and the companion watch app is installed on it.
isReachable is not part of that check, and should not be. Reachability only matters for live messaging. Data files are queued by the operating system and delivered when the watch comes back into range, so collection works perfectly while the watch is unreachable - in the shower, on a run without the phone, overnight.

AppleWatchStatus

isCollectingData is based on the last status message the watch app sent, so it is only meaningful after the watch app has run at least once. A recently installed watch app that has never been opened reports false.

Reading the state

Connection lifecycle

AppleWatchDeviceManager follows the normal CAMS device status model, with a couple of specifics worth knowing:

Battery level of the watch

Transfer progress

AppleWatchFileTransfer carries table, fileName, chunkIndex, totalChunks, state, and an error message when something failed.

Information about the watch

watchInfo is populated once the watch has sent a device record. The same information is carried into the CAMS AppleWatchDeviceRegistration (watchDeviceId, model, systemVersion, and isWatchAppInstalled), so it is stored with the deployment and is available when analysing the data later.