observer for incomplete shifts