Выполни один раз ревизию синтетического недельного рекламного отчёта. Все нужные данные приведены ниже. Они вымышлены и не содержат персональных данных. Используй только этот запрос. Не открывай файлы, не используй браузер, shell, API, плагины, другие инструменты или дочерние задачи. Не обращайся к прошлой истории и не ищи эталон. Не задавай дополнительные вопросы: правила учёта заданы в manager_note.txt. Закончи после готового ответа, без новых задач и повторного запуска.

Нужно:
1. Найти содержательные классы ошибок в черновике менеджера. Для каждой ошибки назвать утверждение, исправление и ссылки вида ad_report.csv:2 или crm_export.csv:6-9. В каждом фрагменте строка заголовка CSV считается строкой 1; в записке строки также считаются с 1. Не угадывать причины несовпадения счётчиков и будущие результаты. Разделять наблюдаемую метрику и доказательство статистического превосходства.
2. Посчитать итоги и показатели четырёх кампаний. Удалять только полные дубликаты lead_id по правилам записки; учитывать отмены, полный и частичный возвраты. Округлять CPL и ROAS до двух знаков, половину вверх. Общие коэффициенты считать из общих числителя и знаменателя.
3. Вернуть один JSON-объект без кодового ограждения и без текста до или после. Корневые ключи: summary, findings, report_ru.
summary: объект с ключами period {start,end,as_of}, currency, totals, campaigns. campaigns — массив по campaign_id с campaign_id и campaign_name. Каждый объект totals и campaigns содержит spend_rub, platform_leads, crm_rows, crm_unique_leads, duplicate_rows, platform_minus_crm_unique_leads, raw_nominal_rub, unique_nominal_rub, gross_collected_rub, refunds_rub, cancelled_nominal_rub, net_revenue_rub, positive_net_leads, cpl_platform_rub, cpl_crm_rub, roas_net. raw_nominal_rub — сумма gross_amount_rub всех строк; unique_nominal_rub — эта сумма после удаления дублей, включая плановые отменённые суммы; gross_collected_rub — фактически полученное до возвратов; positive_net_leads — уникальные заявки с положительной чистой выручкой. Счётчики и рубли — целые JSON numbers, коэффициенты — числа. Даты YYYY-MM-DD, currency RUB.
findings: массив объектов class, claim, correction, evidence (массив ссылок), severity (low/medium/high). Группируй проявления одного класса.
report_ru: короткий исправленный отчёт на русском как JSON string, включая итог и осторожный вывод о кампаниях.

Исходные данные:

--- НАЧАЛО ad_report.csv ---
campaign_id,campaign_name,period_start,period_end,spend_rub,platform_leads
A_SEARCH,Поиск бренд,2026-09-21,2026-09-27,12000,8
B_SOCIAL,Соцсети ретаргет,2026-09-21,2026-09-27,9000,6
C_TEST,Новая аудитория,2026-09-21,2026-09-27,3000,3
D_VIDEO,Видео,2026-09-21,2026-09-27,6000,4
--- КОНЕЦ ad_report.csv ---

--- НАЧАЛО crm_export.csv ---
lead_id,campaign_id,lead_date,status,gross_amount_rub,refund_amount_rub
L001,A_SEARCH,2026-09-21,paid,9000,0
L002,A_SEARCH,2026-09-22,paid,12000,0
L003,A_SEARCH,2026-09-22,qualified,0,0
L004,A_SEARCH,2026-09-23,cancelled,10000,0
L005,A_SEARCH,2026-09-24,paid,8000,0
L006,A_SEARCH,2026-09-25,refunded,15000,15000
L007,A_SEARCH,2026-09-26,new,0,0
L005,A_SEARCH,2026-09-24,paid,8000,0
L008,B_SOCIAL,2026-09-21,paid,10000,0
L009,B_SOCIAL,2026-09-22,paid,14000,0
L010,B_SOCIAL,2026-09-23,refunded,20000,5000
L011,B_SOCIAL,2026-09-24,cancelled,7000,0
L012,B_SOCIAL,2026-09-27,new,0,0
L013,C_TEST,2026-09-23,paid,18000,0
L014,C_TEST,2026-09-26,new,0,0
L014,C_TEST,2026-09-26,new,0,0
L015,D_VIDEO,2026-09-24,paid,11000,0
L016,D_VIDEO,2026-09-27,qualified,0,0
--- КОНЕЦ crm_export.csv ---

--- НАЧАЛО manager_note.txt ---
Синтетический учебный отчёт. Все названия, суммы и идентификаторы вымышлены; персональных данных нет.
Период: 21–27 сентября 2026 года включительно; CRM — снимок на конец 27 сентября. Все деньги в RUB, без НДС; других источников выручки в этом кейсе нет.
Правило учёта CRM: lead_id — уникальная заявка. Полностью одинаковые повторные строки с одним lead_id — дубликаты, а не новые заявки или платежи. Конфликтующих версий записей в выгрузке нет.
Статусы: paid — gross_amount_rub уже получен; refunded — gross_amount_rub был получен, refund_amount_rub возвращён клиенту (возможен частичный возврат); cancelled — gross_amount_rub только планировался, оплаты не было; new и qualified — оплаты не было. Возвраты относятся к тем же оплатам и учтены к дате снимка.
Чистая выручка в этом отчёте — фактически полученные деньги минус возвраты, после удаления дублей; это не прибыль. CPL кабинета = spend_rub / platform_leads. CPL CRM = spend_rub / число уникальных lead_id. ROAS = чистая выручка / spend_rub. Общие метрики считать из общих числителей и знаменателей, не как среднее коэффициентов кампаний; коэффициенты округлить до двух знаков.
Два счётчика заявок относятся к одному периоду и кампаниям, но кабинет не содержит lead_id; индивидуальное сопоставление записей и причины расхождений не предоставлены. Данные о статистическом тесте, других неделях или прогнозной модели не приложены.
Ниже черновик менеджера для проверки; правила выше задают смысл полей, а утверждения ниже могут быть ошибочны.
В CRM 18 уникальных заявок, повторов нет.
Все 21 заявка рекламного кабинета подтверждены в CRM, расхождений по количеству нет.
Чистая выручка недели — 142000 RUB: я сложил gross_amount_rub по всем строкам CSV, включая cancelled и refunded, и ничего не вычитал.
CPL кабинета: A_SEARCH — 1200 RUB, B_SOCIAL — 1500 RUB, C_TEST — 1000 RUB, D_VIDEO — 1500 RUB; общий CPL кабинета — 1500 RUB.
Общий ROAS = 142000 / 30000 = 5,20.
На основании этой недели C_TEST статистически доказанно эффективнее остальных и сохранит лидерство по ROAS в следующем месяце.
--- КОНЕЦ manager_note.txt ---
