diff --git a/analyze_grades.py b/analyze_grades.py
index 3eaa57fb576d85c5b53b45f6a823968b2c550974..37c9ffa7fa67fedb9199d48ffa07d46e6263a8b8 100755
--- a/analyze_grades.py
+++ b/analyze_grades.py
@@ -104,13 +104,13 @@ def print_sample_scores(assignment: CanvasAssignment,
                         major_partitions: Dict[Major, Set[CanvasUser]],
                         students: Optional[List[CanvasUser]] = None) -> None:
     points_possible: float = assignment.get_points_possible()
-    a_student: Optional[CanvasUser] = None
-    b_student: Optional[CanvasUser] = None
-    c_student: Optional[CanvasUser] = None
     for major in majors:
         student_subset: Set[CanvasUser] = major_partitions[major].copy() if students is None \
             else major_partitions[major].intersection(students)
         selected_students: Set[CanvasUser] = set()
+        a_student: Optional[CanvasUser] = None
+        b_student: Optional[CanvasUser] = None
+        c_student: Optional[CanvasUser] = None
         if len(student_subset) == 0:
             print(f'{major.name}: no students.')
         elif len(student_subset) <= 30:
@@ -150,17 +150,17 @@ def print_statistics_for_some_majors(assignment: CanvasAssignment,
                                      students: Optional[List[CanvasUser]] = None) -> None:
     points_possible: float = assignment.get_points_possible()
     for major in majors:
-        student_subset: Set[CanvasUser] = major_partitions[major] if students is None \
+        student_subset: Set[CanvasUser] = major_partitions[major].copy() if students is None \
             else major_partitions[major].intersection(students)
         valued_scores: List[float] = [scores[student] for student in student_subset
                                       if scores[student] is not None]
         try:
             average_score: float = statistics.mean(valued_scores)
             scaled_average_score: float = 100 * average_score / points_possible
-            print(f'{major.name:27}students:{len(major_partitions[major]):>3}   '
+            print(f'{major.name:27}scored students:{len(valued_scores):>3}   '
                   f'scaled mean score: {scaled_average_score:.2f}%')
         except statistics.StatisticsError as exception:
-            print(f'{major.name:27}students:{len(major_partitions[major]):>3}   no mean score computed: {exception}')
+            print(f'{major.name:27}scored students:{len(valued_scores):>3}   no mean score computed: {exception}')
 
 
 def print_statistics(assignment: CanvasAssignment,