Была подобная задача с поиском средней цены по рынку, с отбрасыванием как вы их называете «шпилек».
Пошел по простому пути: искал отклонение в процентном отношение от среднего значения,
причем среднее значение получал так: сортировал цены по возрастанию, отбрасывал 10% самых дешевых и 10% самых дорогих… и уже среди оставшихся 80% получал обычное среднее арифметическое.