во первых такие классы придется создавать на каждую выборку на каждый репорт
Не на каждый репорт. На группу репортов. "сколько продано за месяц, сколько продано по регионам, средняя цена и т.д." - это всё могут быть методы одного класса. Возвращать они могут по-разному, или число, или объект класса "данные для графика" или что-то еще, что нужно.
во вторых ООП предполагает что за объектами лежат некие сущности. В данном случае это не обхект по сути а просто структура данных. Либо это класс с одним методом потому как на другую выборку для другого отчета нужен другой набор полей
Итак получаем стопицот классов большинство из которых не соответствует реальным бизнес сущностям причем классы только на выборку.
Таких классов-сервисов "без сущности" в любом проекте полно. В них может быть мало методов или много - это уж как повезет.
Например, сервис отправки письма. Ты можешь назвать класс PochtaRossii, если тебе нужна именно сущность реального мира. Но вообще говоря и SendMailService тоже подойдет.
Так же как SalesAnalService можно переименовать в SalesAnalytic, тогда можно себе представлять чувака-аналитика, который выдает тебе инфу