Pulse is only storing the information coming from TM1 sessions. To better understand why many sessions have no context, you could try reaching out to IBM or directly to Hubert.
The Context field is populated by the tool the user is using. Another reason why the Context field is empty is that they might be using other REST API tools that are not sending the Context information to TM1.
If you’re trying to reconcile the pulse-server-state and pulse-tm1-session indices, then it won’t work. The pulse-server-state index stores all sessions, whereas the pulse-tm1-session index only stores sessions with a duration of 60 seconds or more.