A system comprising: a plurality of client computing devices, each of the plurality of client computing devices in communication with at least one bio-signal sensor (102, 104, 106); and at least one computer server in communication with the plurality of computing devices over a communications network; the at least one computer server configured to: receive time-coded bio-signal data, including brainwave data, from each of the plurality of computing devices, the time-coded bio-signal data associated with a plurality of user identifiers; receive, from a user's input or from an application accessible from one of the plurality of client computing devices, time-coded feature event data representing an event when a user's mental response is observed; identify a pattern in at least part of the time-coded bio-signal data across multiple of the plurality of user identifiers that represents a response to a feature event determined from the time-coded feature event data at at least one respective time code; determine a user-response classification of at least part of the time-coded bio-signal data based on the pattern identified in the at least part of the time-coded bio-signal data and at least part of the time-coded feature event data at at least one respective time code; and update a prediction model based at least in part on the user-response classification, the prediction model for predicting a user's bio-signal response to events. a plurality of client computing devices, each of the plurality of client computing devices in communication with at least one bio-signal sensor (102, 104, 106); and at least one computer server in communication with the plurality of computing devices over a communications network; the at least one computer server configured to: receive time-coded bio-signal data, including brainwave data, from each of the plurality of computing devices, the time-coded bio-signal data associated with a plurality of user identifiers; receive, from a user's input or from an application accessible from one of the plurality of client computing devices, time-coded feature event data representing an event when a user's mental response is observed; identify a pattern in at least part of the time-coded bio-signal data across multiple of the plurality of user identifiers that represents a response to a feature event determined from the time-coded feature event data at at least one respective time code; determine a user-response classification of at least part of the time-coded bio-signal data based on the pattern identified in the at least part of the time-coded bio-signal data and at least part of the time-coded feature event data at at least one respective time code; and update a prediction model based at least in part on the user-response classification, the prediction model for predicting a user's bio-signal response to events. receive time-coded bio-signal data, including brainwave data, from each of the plurality of computing devices, the time-coded bio-signal data associated with a plurality of user identifiers; receive, from a user's input or from an application accessible from one of the plurality of client computing devices, time-coded feature event data representing an event when a user's mental response is observed; identify a pattern in at least part of the time-coded bio-signal data across multiple of the plurality of user identifiers that represents a response to a feature event determined from the time-coded feature event data at at least one respective time code; determine a user-response classification of at least part of the time-coded bio-signal data based on the pattern identified in the at least part of the time-coded bio-signal data and at least part of the time-coded feature event data at at least one respective time code; and update a prediction model based at least in part on the user-response classification, the prediction model for predicting a user's bio-signal response to events.