                                      siblings)
                                0
                                1)))))))
+              ;
+              (= cat :case-family-variation)
+              (if (not (:print-history argmap))
+                (throw
+                  (Exception.
+                    ":print-history must be true for :case-family-variation"))
+                (if (or (empty? (:parent-uuids ind))
+                        (empty? (rest (:history ind))))
+                  (vec (repeat (count (:errors ind)) 1))
+                  (let [siblings (filter #(and (= (first (:parent-uuids ind))
+                                                  (first (:parent-uuids %)))
+                                               (not (empty? (rest (:history %))))) ; new random sibs don't count
+                                         evaluated-population)]
+                    (vec (for [case-index (range (count (:errors ind)))]
+                           (if (zero? (nth (:errors ind) case-index)) ;; solved
+                             0 
+                             (if 
+                               (some (fn [sib] ;; sibling solved
+                                       (zero? (-> (:history sib)
+                                                  (first)
+                                                  (nth case-index))))
+                                     siblings)
+                               0
+                               (if (some (fn [sib] ;; sib error different than mom's
+                                           (not= (-> (:history sib)
+                                                     (first)
+                                                     (nth case-index))
+                                                 (-> (:history sib)
+                                                     (second)
+                                                     (nth case-index))))
+                                         siblings)
+                                 1
+                                 0))))))))
               ;
               (= cat :washout-mother)
               (if (not (:print-history argmap))

                       (max (sequence-similarity (:genome ind) (:parent1-genome ind))
                            (sequence-similarity (:genome ind) (:parent2-genome ind)))
                       1.0))
              ;
              (= cat :reproductive-convergence)
              (if (and (:parent1-genome ind) (:parent2-genome ind))

                             0 
                             (if 
                               (some (fn [sib]
                                       (or (zero? (-> (:history sib) ;; sib solved
                                                      (first)
                                                      (nth case-index)))
                                           (not= (-> (:history sib) ;; sib error different than mom's
                                                     (first)
                                                     (nth case-index))
                                                 (-> (:history sib)
