Как доказать, что инструмент считает верно: сверяйте ячейки, а не итоги

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

· 4 мин

Сверка на уровне ячеек: как доказать, что ТВ-инструмент считает верно

«Мы считаем точно» — фраза, которую может произнести кто угодно. Смысл в ней появляется только тогда, когда ваше число ставят рядом с чужим и оно выдерживает построчную сверку. В 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 и три контакта. Агрегированные упрощения этой логики дают систематическую ошибку, а не случайный шум.

Что мы проверяем — по порядку

Та же дисциплина проходит через весь остальной стек закупки: лестницы скидок, сплит по прайму, 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.

Запросить демо →