---
name: hashgraph-online-roistat-reports-api
description: "Чтение отчётов Roistat, воспроизводимая сверка с сырыми сделками и коллтрекингом, а также строго ограждённая запись сохранённых отчётов."
license: "Apache-2.0"
metadata:
  decimalai-skill-id: "26cc9d1f-c829-484e-9e32-d76f8ad3b5b6"
  decimalai-version-id: "404bb567-316c-4726-8733-aeb884a3f469"
  decimalai-version: "1"
  decimalai-body-sha256: "ab1de834be9fc798525ae288c5de0e94e43bd1245353a24bbc2b9c587ea003b8"
  decimalai-name: "hashgraph-online/roistat-reports-api"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "marketing"
  decimalai-source: "https://app.decimal.ai/s/hashgraph-online-roistat-reports-api@1/SKILL.md"
---
# Отчёты Roistat

## Обязательный порядок

1. Доступ бери из `ROISTAT_PROJECT` и `ROISTAT_API_KEY` либо из указанного закрытого файла JSON с правами `0600`. Никогда не передавай ключ аргументом.
2. Точно задай период, окно, модель атрибуции, канал, фильтры и валюту.
3. Считай три источника разными: аналитический отчёт, сырые сделки и коллтрекинг. У каждого есть собственное состояние полноты.
4. Сырые сделки и коллтрекинг запрашивай только с явным `--include-personal-data`; полученные пакеты остаются закрытыми.
5. Проходи всю постраничную выдачу. Статус `partial` не превращай в полный отчёт.
6. Каждое число должно воспроизводиться из сохранённых ответов и `report-context.json`.

## Чтение и сверка

Используй `scripts/build_roistat_report_pack.py`. Он сохраняет исходный ответ аналитики, нормализованные строки, параметры и отдельный расчёт расхождений.

В сверке хранятся обе исходные суммы и разница. Расхождение может быть связано с окном атрибуции, поздним событием CRM, валютой или неполной выгрузкой; причину подтверждай доказательствами.

## Запись

`scripts/save_roistat_report.py` до сетевого вызова проверяет:

- точную контрольную сумму спецификации;
- закрытое подтверждение владельца не старше 24 часов;
- точное совпадение проекта, действия и целевого отчёта;
- `ROISTAT_WRITE_ARMED=1` и отдельный `ROISTAT_WRITE_API_KEY`;
- чтение до записи, чтение после записи, неизменность посторонних отчётов и кандидат на откат.

Без `--apply` выполняется только местная проверка. Любой откат требует нового подтверждения.

## Граница публикации

Не публикуй номера проектов, ключи, выгрузки, телефоны, домены, клиентские названия и местные пути. Публичные примеры должны быть только синтетическими.
