anchor.diff:      Avgs = lists:map(fun(#series{values=Values}) -> statser_calc:safe_average(Values) end, Series),
       LowPerc = percentile(Avgs, 100 - N),
       HighPerc = percentile(Avgs, N),
  -    lists:filter(fun(#series{values=Values}) ->
  +    filter_named(fun(#series{values=Values}) ->
                            Avg = statser_calc:safe_average(Values),
                            Avg =< LowPerc orelse Avg >= HighPerc
  -                 end, Series);
  +                 end, Series, "averageOutsidePercentile");
   
   % derivative
   evaluate_call(<<"derivative">>, [Series], _From, _Until, _Now) ->
  
positive.code: 
  average_above_test_() ->
      Series = [pseudo_series([5.0, 7.0])],
      [?_assertEqual(Series, evaluate_call(<<"averageAbove">>, [Series, 6.0], 0, 0, 0)),
       ?_assertEqual([], evaluate_call(<<"averageAbove">>, [Series, 6.5], 0, 0, 0))
      ].
  
  average_below_test_() ->
      Series = [pseudo_series([5.0, 7.0])],
      [?_assertEqual([], evaluate_call(<<"averageBelow">>, [Series, 5.5], 0, 0, 0)),
       ?_assertEqual(Series, evaluate_call(<<"averageBelow">>, [Series, 6.0], 0, 0, 0)),
       ?_assertEqual(Series, evaluate_call(<<"averageBelow">>, [Series, 10], 0, 0, 0))
      ].
  
  npercentile_test_() ->
  
negative.code: 
  % averageAbove
  evaluate_call(<<"averageAbove">>, [Series, Avg], _From, _Until, _Now) ->
      filter_named(fun(#series{values=Values}) -> statser_calc:safe_average(Values) >= Avg end, Series, "averageAbove");
  
  % averageBelow
  evaluate_call(<<"averageBelow">>, [Series, Avg], _From, _Until, _Now) ->
      filter_named(fun(#series{values=Values}) -> statser_calc:safe_average(Values) =< Avg end, Series, "averageBelow");
  
  % averageOutsidePercentile
  evaluate_call(<<"averageOutsidePercentile">>, [Series, N0], _From, _Until, _Now) when is_number(N0) ->
  