Why Canvas peer reviews and group assignments show odd dates

A standard Canvas peer review has no due date of its own. The date shown next to it on your To Do list and planner is the day reviews were set to be handed out, or, if none was set, your own due date for the assignment. Instructure's own guide says that date does not show when the review is due. Canvas picks which peer reviews to list by your own due date, so the To Do sidebar stops asking for a review two weeks after your due date, and the planner never asks for one on an undated assignment. If Canvas assigns reviews automatically, only students who had submitted by then get one. In a group assignment, one member's submission is recorded for every member, so it leaves everyone's list at once, and a later submission by anyone replaces it for all. "Grade individually" changes the grading, not that.

What you see

A peer review sits on your To Do list with a date that has already passed, the day you first see it. Or it shows the same date as the essay itself. Or it was there last week and is gone now, and you have not done it. Or a classmate has two reviews to do and you have none.

In a group project, the assignment vanishes from your list though you never touched it. Or the file you submitted is not the one Canvas shows any more.

Why it happens

A standard peer review has no due date. If the instructor has Canvas assign reviews automatically, the one date field is labeled "Assign Reviews": the day Canvas hands the reviews out. Left blank, it uses the assignment's due date. With reviews assigned by hand, there is no date field at all. Canvas's code stores this date in a field named for a due date, and a comment in the code says it should be renamed. The planner and the To Do sidebar show a peer review on that date, or, if none is set, on your own due date for the assignment. So the date next to a peer review is when it was assigned, not when it is due. Instructure's student guide says the same: the due date in the To Do list "does not accurately display the due date for completing your peer review."

Canvas lists peer reviews by your own due date. When the planner or sidebar asks Canvas for peer reviews, Canvas filters them by your due date for the assignment being reviewed, not by the date it shows. The To Do sidebar asks for items from two weeks back onward. So a review you have not finished drops out of the sidebar once your due date for that assignment is more than two weeks past. An assignment with no due date for you gives no date to filter on, so its peer reviews never come back from the planner at all. (For the same effect on ordinary work, see assignments with no due date.)

Apps that read Canvas's To Do API see no peer reviews. The API that lists a student's to-do items returns assignments to submit and quizzes, and nothing for peer reviews. Of Canvas's to-do lists, only the planner carries peer reviews.

Automatic reviews go to students who had already submitted. With automatic peer reviews, Canvas runs once on the Assign Reviews date, or on each due date if none is set. It hands out reviews only among students who have a submission at that moment. Submit after that, and you get no review to do and nobody reviews yours, unless the instructor assigns one by hand. Instructure's guide says the run can take up to an hour. If the instructor changes the Assign Reviews date, or the due date when no Assign Reviews date is set, Canvas schedules a new run.

A review is done when Canvas says so. Without a rubric, leaving a comment on the submission completes the review. With a rubric, a comment is not enough: the review counts as done once you fill in the rubric.

One group submission counts for every member. In a group assignment, when any member submits, Canvas writes the same submission, with the same time, into every group member's record. Your own record now says submitted, so the assignment leaves your To Do list and counts as done in your planner. If another member submits again later, Canvas clears what was there and writes the new submission for everyone. The latest one is what Canvas shows and grades.

"Grade individually" does not change this. That setting lets the instructor give each member their own grade. The submission is still shared. Canvas's submit step looks up the group and writes to every member, and never reads that setting.

If you are not in a group, you submit alone. Canvas looks for your group in the group set the assignment uses. If you are not in one, your submission counts only for you.

Canvas has a newer peer review option, Peer Review Allocation and Grading, that gives reviews their own due dates. In the source we read it is a hidden feature, turned on course by course, so a course uses the standard reviews this page describes unless that feature is turned on for it.

What you can check

What an instructor or admin can do

Evidence

canvas-lms, lib/api/v1/planner_item.rb:125 (master at 1c9f0bb, retrieved 2026-11-03), the date the planner gives a peer review:

hash[:plannable_date] = item.asset.assignment.peer_reviews_due_at || item.assessor_asset.cached_due_date

app/models/abstract_assignment.rb:3327-3331, what that first field holds:

# TODO: on a future deploy, rename the column peer_reviews_due_at
# to peer_reviews_assign_at
def peer_reviews_assign_at
  peer_reviews_due_at
end

The edit form labels it "Assign Reviews", with the note "If blank, uses due date." (ui/shared/assignments/jst/PeerReviewsSelector.handlebars:75-96). Instructure's student guide "How do I know if I have a peer review assignment to complete?" (Instructure Community article 661216, retrieved 2026-11-03): "Currently the Due Date in the To Do List does not accurately display the due date for completing your peer review."

app/models/user_learning_object_scopes.rb:369-375, which peer reviews are listed, filtered by the reviewer's own due date (assessor_asset.cached_due_date):

if due_before
  ar_scope = ar_scope.where(assessor_asset: { cached_due_date: ..due_before })
end

if due_after
  ar_scope = ar_scope.where("assessor_asset.cached_due_date > ?", due_after)
end

The planner always passes both dates (app/controllers/planner_controller.rb:589-600, defaults at :434-449), and the To Do sidebar asks from two weeks back (ui/shared/planner/actions/sidebar-actions.js:81-90). The To Do API, app/controllers/users_controller.rb:961-1055, builds its list from assignments to grade and submit, checkpoints and quizzes, with no peer reviews.

app/models/abstract_assignment.rb:3238-3239, who gets automatic reviews:

submissions = self.submissions.having_submission.include_assessment_requests
submissions = submissions.due_in_past if automatic_peer_reviews? && peer_reviews_assign_at.blank?

The run dates are at :3304-3325, and a changed date reschedules it (:1245-1251). Instructure's guide "How do I automatically assign peer reviews for an assignment?" (article 660698, retrieved 2026-11-03) agrees: a student who has not submitted, or submits after the due date, "will not automatically be assigned a peer review."

app/models/assessment_request.rb:182-184, when a comment completes a review:

def comment_added
  self.workflow_state = "completed" unless active_rubric_association? && rubric_association.rubric
end

A filled-in rubric completes it instead (app/models/rubric_assessment.rb:183-187).

app/models/abstract_assignment.rb:2768-2799, a group submission. Canvas finds the group (group_students, :2297-2311), then for each member's submission:

SUBMIT_HOMEWORK_ATTRS.each { |attr| homework[attr] = nil }
homework.attributes = homework_attributes
homework.submitted_at = homework_submitted_at

The To Do API drops an assignment once the student's own submission has a type (app/models/abstract_assignment.rb:3494-3501), and the planner counts it done once it has a submitted time (lib/plannable.rb:45-77). The "grade individually" setting is read when grading (app/models/abstract_assignment.rb:2364), not when submitting. Instructure's guide "How do I submit an assignment on behalf of a group?" (article 661215, retrieved 2026-11-03): "Only one group member needs to submit the assignment on behalf of the group."

The newer peer reviews are the peer_review_allocation_and_grading feature (config/feature_flags/engage_release_flags.yml:47-55, state: hidden, applied per course): "separate due dates and grading".