Technical Paper

Анонимизированный агрегат и B2B-продукт данных

5.8 Анонимизированный агрегат и B2B-продукт данных

Это поверхность, которая будет формировать B2B-продукт данных. Правила преобразования ниже регулируют любую агрегированную публикацию; коммерческий продукт и его API (5.11) — запланированная будущая работа.

Правила преобразования

Переход от receipts + line_items + price observations к анонимизированному агрегату — это одностороннее, разрушительное преобразование:

  1. Заменить user_id и wallet_address. Использовать хэш в рамках сессии, отделённый от идентификаторов пользователя.
  2. Укрупнить географию. Только гранулярность на уровне города; координаты удаляются, если они когда-либо записывались.
  3. Укрупнить время. Дневное ведро для высокочастотных индексов; недельное ведро для отчётности на уровне категорий; месячное для демографических когорт.
  4. Обеспечить k-анонимность. Каждая выпущенная запись должна принадлежать ячейке с минимум контрактно определённым количеством различных участников на квази-идентифицирующих полях (city, merchant_class, time_bucket, category_path). Ячейки ниже порога подавляются или укрупняются до прохождения.
  5. Добавить калиброванный шум дифференциальной конфиденциальности к выходным данным на основе подсчёта.
  6. Строить агрегированную область из проверенного 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 между запросами (каждый запрос генерирует новый сессионный хэш).