# Свёртка по сетке - **Секция:** ядро - **Зачем:** «Шаги за неделю по дням» — базовый запрос трекера и игры, и сегодня его нечем задать - **Теги:** goal:read-api, sprint:2026-08-04 «Шаги за неделю по дням» отвечаются одним запросом `?from&to&bucket`, и род свёртки берётся измеренным, а не угаданным. Род агрегации измерен каталогом (change `2026-08-02-katalog-i-rod-agregacii`): сверка минутного слоя с часовым разложила метрики живого корпуса на накопительные и мгновенные, не сойдясь ни на одной. Свёртка в ответе опирается на это измерение и **только** на него: род неизвестен — свёртки нет. Инвариант, который здесь легче всего нарушить: **нижний слой HAE не суммируется** ни при какой сетке. Это интерполяция, а не сэмплы, и суммирование завышает втрое. Порог неполного ведра и предел размера ответа — соседние задачи; здесь они берутся в том виде, в каком есть на момент мерджа, и не проектируются. ## Критерии приёмки - «шаги за неделю по дням» отвечаются одним запросом, и в ответе названы фактические `bucket` и `aggregation` — оракул: запрос к поднятому сервису на живом архиве - нижний слой HAE не суммируется ни при какой сетке — оракул: тест на накопительной метрике, у которой есть и нижний, и часовой слой - метрика с неизвестным родом не сворачивается вовсе и отвечает отказом с названной причиной, а не значением — оракул: тест ## Рамки Схема не трогается, данные только читаются. Берётся после точек за период.