Как доказать, что инструмент считает верно: сверяйте ячейки, а не итоги
Сверка на уровне ячеек — это сравнение каждого значения таблицы с эталоном по отдельности, а не только по итоговым суммам. Итоги прощают ошибки. Ячейки — нет.

«Мы считаем точно» — фраза, которую может произнести кто угодно. Смысл в ней появляется только тогда, когда ваше число ставят рядом с чужим и оно выдерживает построчную сверку. В Tilsim доверие к расчёту — это процедура: байер повторяет её на своих данных и получает тот же результат.
Что именно мы сверяли?
Мы взяли официальную таблицу аудитории и пересобрали её из необработанных файлов поставки Nielsen (бинарные EVS/RDS/RSP), а не из текстового экспорта. Разница здесь принципиальна. Текстовый экспорт — это уже чей-то готовый результат; воспроизвести его — значит просто скопировать чужие цифры. Необработанная поставка — это исходные записи, поэтому весь путь от записи до готовой таблицы проходит на нашей стороне, и любая ошибка на этом пути обязана всплыть.
Мы сравнивали ячейки, а не итоги: 60 858 ячеек, из них 21 548 непустых. Все 21 548 совпали с точностью до 0,5 человека. Этот допуск задаётся самими данными — Nielsen публикует целые числа, поэтому половина человека — предел точности, и ниже него вы сравниваете уже не расчёты, а решения об округлении. Совпали все 17 из 17 демографических разрезов.
Почему ячейки, а не итоги?
Суммы всё прощают. Две ошибки с противоположным знаком гасят друг друга, и итог получается безупречным. На уровне ячеек спрятаться негде: каждое расхождение остаётся видимым — в той строке и колонке, где оно возникло.
Где такая сверка обычно ломается?
Само совпадение менее интересно, чем три места, где расчёты обычно расходятся.
Агрегация по нескольким дням. Почти любой расчёт сходится в пределах одного дня — там просто нечему ломаться. Разрыв открывается на недельном горизонте, когда ежедневные проценты усредняют арифметически. Universe (база охвата) день ото дня разный, поэтому каждый процент — доля от своей базы, а доли не складываются как обычные числа. Агрегировать нужно с весом по universe — в нашем случае это 2 295 613 человек. Эта ошибка коварна именно тем, что выглядит невинно: формула короче, результат правдоподобен, а расхождение растёт вместе с длиной периода.
Повторные и исправленные поставки. Загрузите один и тот же файл дважды, позвольте строкам молча удвоиться — и таблица поплывёт без единой сломанной формулы. Никакая проверка арифметики этого не поймает: с арифметикой всё в порядке, сдвинулся состав данных. Мы загружаем файлы идемпотентно по SHA-256: повтор пропускается, исправленный день удаляет и заменяет более ранние строки. Повторный запуск загрузки даёт тот же набор данных, что и в первый раз.
Reach и частота. Reach обязательно считается на уровне отдельного человека — иначе никакая аккуратность в остальном не заставит цифры сойтись. Человек, увидевший ролик трижды, — это один reach и три контакта. Агрегированные упрощения этой логики дают систематическую ошибку, а не случайный шум.
Что мы проверяем — по порядку
- Источник — необработанные файлы поставки, а не текстовый экспорт чужого результата.
- Гранулярность — каждая ячейка, включая пустые (60 858 всего, 21 548 непустых).
- Допуск — 0,5 человека, заданный собственным округлением издателя данных.
- Охват — все 17 демографических разрезов, а не удобная выборка.
- Агрегация — с весом по universe, никогда не арифметическое среднее ежедневных долей.
- Загрузка — идемпотентна по хэшу файла, поэтому повторный запуск воспроизводит тот же набор данных.
- Reach — на уровне отдельного человека, поэтому один зритель с тремя контактами остаётся одним reach.
Та же дисциплина проходит через весь остальной стек закупки: лестницы скидок, сплит по прайму, affinity, длительность роликов, post-buy. Разбираем их в чек-листе по софту для ТВ-закупок.
Что это значит — и чего не значит
Мы не «сертифицированы Nielsen» — такого статуса не существует, и заявлять о нём было бы неправдой. Мы воспроизводим цифры Nielsen, и это можно проверить: возьмите свою таблицу и сравните. В TV Planner это означает сверку с официальной таблицей аудитории. TV Budgeting следует той же логике — расхождение с эталонным Excel агентства меньше 0,01%, удерживаемое почти тремя тысячами тестов. Важнее самого числа — именно тесты. Они не дают паритету расползтись при следующем изменении кода — то же самое регрессионное тестирование делает в любой инженерной дисциплине: результат, который нельзя автоматически перепроверить, — это результат, который вы рано или поздно потеряете.
Просить поверить на слово — это слабый вариант того же самого. Положите две таблицы рядом. Инструмент, который считает верно, ничего не теряет от построчной сверки — как раз в ней он и выигрывает. Поставщик, который отказывается сверяться на уровне ячеек, уже дал ответ на вопрос о точности.
FAQ
Что такое сверка на уровне ячеек?
Сравнение каждого отдельного значения в рассчитанной таблице с эталонной таблицей — вместо сравнения итогов. В нашей проверке это 60 858 ячеек, из них 21 548 непустых.
Почему допуск в 0,5 человека — правильный?
Потому что Nielsen публикует целые числа. Ниже половины человека вы сравниваете уже не расчёты, а решения об округлении.
Почему нельзя просто усреднить дневные проценты за неделю?
Universe день ото дня разный, поэтому каждый процент — доля от другой базы. Агрегация должна быть взвешена по universe — в нашем случае 2 295 613 человек, — иначе расхождение растёт вместе с периодом.
Как повторные поставки данных портят таблицу?
Строки молча накапливаются, и ни одна формула при этом не ломается. Мы загружаем данные идемпотентно по SHA-256: повторы пропускаются, исправленные дни удаляют и заменяют более ранние строки.
Возьмите свою таблицу аудитории и сверьте её с TV Planner ячейка за ячейкой — на необработанных файлах поставки Nielsen.
Запросить демо →