Now that Muted/Unmuted field is depreciated in the database, how I can find out if a grade is visible to a student based on the data only ? More specifically, how can I know when a submission's grade is released to a student ?
Are you talking about Canvas Data or through the API?
In Canvas Data, there is a submission_dim.posted_at timestamp that is described as "The date this submission was posted to the student, or null if it has not been posted."
If you're using the API, there is a posted_at property of the submission object that functions the same as described in Canvas Data.
In my exploration, the posted_at field returns the most recent time that the results were posted, not the earliest. The timestamp gets updated even if the status doesn't change. For example, let's say that John is in section 1. The instructor goes through and manually releases John's score and then later goes through and releases the grades for section 1. John's timestamp will be that for the entire section, not the earlier date when it became available to him individually. It's been a month or two since I looked at it, so it may have changed. but I haven't seen anything in the documentation that suggests it has.
Retrieving data ...