A pure pipe is only called when Angular detects a change in the value or the parameters passed to a pipe.
An impure pipe is called for every change detection cycle no matter whether the value or parameter(s) changes.
This is relevant for changes that are not detected by Angular
when you pass an array or object that got the content changed (but is still the same instance)
when the pipe injects a service to get access to other values, Angular doesn't recognize if they have changed.