A method performed by a prediction device for determining an opportune time for user interaction, the method comprising: receiving a request from a client application (110, 266) for an indication of whether a user is open to participate in a user interaction; obtaining usage information regarding the user's recent activity on a user device (320, 420); applying at least one trained predictive model (172, 174, 276, 338, 434) to the usage information to identify the user's current contextual state, wherein the current contextual state comprises at least one of: an availability measure representative of the user's current ability to perform a physical action associated with the user interaction, and a receptiveness measure representative of the user's current ability to pay attention to the user interaction; determining an opportunity indication based on the user's contextual state; providing the opportunity indication to the client application; and subsequent to providing the opportunity indication to the client application: obtaining feedback information regarding the user's reaction to the client application; discerning from the feedback information a label regarding at least one of availability and receptiveness of the user; generating a training example by associating the label with the usage information; updating an existing training set (274, 334, 428) by at least adding the training example to the existing training set to generate an updated training set; and retraining the at least one trained predictive model based on the updated training set. receiving a request from a client application (110, 266) for an indication of whether a user is open to participate in a user interaction; obtaining usage information regarding the user's recent activity on a user device (320, 420); applying at least one trained predictive model (172, 174, 276, 338, 434) to the usage information to identify the user's current contextual state, wherein the current contextual state comprises at least one of: an availability measure representative of the user's current ability to perform a physical action associated with the user interaction, and a receptiveness measure representative of the user's current ability to pay attention to the user interaction; an availability measure representative of the user's current ability to perform a physical action associated with the user interaction, and a receptiveness measure representative of the user's current ability to pay attention to the user interaction; determining an opportunity indication based on the user's contextual state; providing the opportunity indication to the client application; and subsequent to providing the opportunity indication to the client application: obtaining feedback information regarding the user's reaction to the client application; discerning from the feedback information a label regarding at least one of availability and receptiveness of the user; generating a training example by associating the label with the usage information; updating an existing training set (274, 334, 428) by at least adding the training example to the existing training set to generate an updated training set; and retraining the at least one trained predictive model based on the updated training set. obtaining feedback information regarding the user's reaction to the client application; discerning from the feedback information a label regarding at least one of availability and receptiveness of the user; generating a training example by associating the label with the usage information; updating an existing training set (274, 334, 428) by at least adding the training example to the existing training set to generate an updated training set; and retraining the at least one trained predictive model based on the updated training set.