Анонимизированный агрегат и B2B-продукт данных
5.8 Анонимизированный агрегат и B2B-продукт данных
Это поверхность, которая будет формировать B2B-продукт данных. Правила преобразования ниже регулируют любую агрегированную публикацию; коммерческий продукт и его API (5.11) — запланированная будущая работа.
Правила преобразования
Переход от receipts + line_items + price observations к анонимизированному агрегату — это одностороннее, разрушительное преобразование:
- Заменить user_id и wallet_address. Использовать хэш в рамках сессии, отделённый от идентификаторов пользователя.
- Укрупнить географию. Только гранулярность на уровне города; координаты удаляются, если они когда-либо записывались.
- Укрупнить время. Дневное ведро для высокочастотных индексов; недельное ведро для отчётности на уровне категорий; месячное для демографических когорт.
- Обеспечить k-анонимность. Каждая выпущенная запись должна принадлежать ячейке с минимум контрактно определённым количеством различных участников на квази-идентифицирующих полях (
city,merchant_class,time_bucket,category_path). Ячейки ниже порога подавляются или укрупняются до прохождения. - Добавить калиброванный шум дифференциальной конфиденциальности к выходным данным на основе подсчёта.
- Строить агрегированную область из проверенного PoE. Чеки со страниц заказов и другие записи с ожидающей верификацией остаются в слое памяти.
Запланированные продукты
| Продукт | Гранулярность | Обновление | Ориентировочная цена |
|---|---|---|---|
| Импульс инфляции TR | Категория × регион × неделя | Ежедневно | $X / мес (подписка) |
| Панель корзин | Канонический продукт × город × неделя | Ежедневно | $Y / мес |
| Бенчмарки продавцов | Сеть × категория × месяц | Еженедельно | $Z / мес |
| Пользовательский когортный запрос | API на запрос, соблюдение порога k-анонимности | По требованию | $Q / запрос |
Цены и точные гранулярности являются заполнителями; производственный каталог будет финализирован до коммерческого запуска.
Пример B2B-ответа (планируемая форма)
json
// GET /inflation-pulse?region=istanbul&category=food.dairy&from=2026-05-01&to=2026-05-17
{
"region": "istanbul",
"category": "food.dairy",
"series": [
{ "week_start": "2026-05-04", "index": 100.0, "n_observations": "<n>", "n_distinct_contributors": "<n>" },
{ "week_start": "2026-05-11", "index": 101.7, "n_observations": "<n>", "n_distinct_contributors": "<n>" }
],
"k_anonymity_floor_met": true,
"methodology_version": "1.0.0"
}Каждый B2B-ответ содержит n_distinct_contributors, чтобы покупатель мог проверить, что порог k-анонимности был достигнут. Ячейки, которые оказались бы ниже порога, возвращаются как suppressed: true без значений. Конкретное пороговое значение управляется во внутреннем операционном слое.
Поля вне области
- Любое поле, привязанное к одному пользователю.
- Любая запись ниже порога k-анонимности для запрошенной ячейки.
- Координаты, адреса, телефонные номера.
- Метаданные платёжного инструмента.
- Анонимизированные, но связываемые ID между запросами (каждый запрос генерирует новый сессионный хэш).