def derivable(self):
        """
        Whether the spec (only valid for derived specs) can be derived
        given the inputs and switches provided to the study
        """
        try:
            # Just need to iterate all study inputs and catch relevant
            # exceptions
            list(self.pipeline.study_inputs)
        except (ArcanaOutputNotProducedException,
                ArcanaMissingDataException):
            return False
        return True