ABC- и XYZ-анализ, который не забирает ваш файл

ABC- и XYZ-анализ, который не забирает ваш файл

Почему выгрузку продаж не хочется никому отдавать

Файл, который нужен для ABC- или XYZ-анализа, — это не «просто табличка». В нём весь ассортимент, объёмы, цены, иногда названия контрагентов или клиентов. По такой выгрузке видно, на чём вы зарабатываете, где у вас провал, какая у вас наценка и насколько вы зависите от одного поставщика. Это ровно тот набор, который не показывают посторонним.

Поэтому у всякого, кто собирается посчитать свой ассортимент в онлайн-сервисе, первый вопрос не «как это работает», а «куда уйдёт мой файл». И это правильный вопрос: в аптеке, медицинском центре или бухгалтерском бюро за него потом отвечать вам.

Обычно ответ длинный: где стоят серверы, как шифруется соединение, через сколько дней всё удаляется, какой договор подписываем. Здесь ответ короче: файл никуда не уходит — он остаётся в вашем браузере, и посчитан будет там же. Дальше по порядку: почему так вообще возможно и как убедиться в этом самому, ничего не принимая на веру.

Куда обычно уезжает файл

У онлайн-инструментов, к которым все привыкли, схема одна: вы выбираете файл, браузер отправляет его на сервер, программа на сервере его читает и считает, а обратно приходит готовая страница с результатом. В этот момент ваша выгрузка лежит на чужом компьютере. Дальше всё зависит от чужой дисциплины: как долго её хранят, кто из сотрудников имеет к ней доступ, что попадает в резервные копии, что останется в журналах.

Настольная программа устроена наоборот: она установлена у вас, считает у вас, файл никуда не двигается. Именно поэтому её проще согласовать — там нечему утекать. Цена известна: установка на каждое рабочее место, обновления, лицензии, «а у меня Mac», «а у бухгалтера старый ноутбук».

Есть третий вариант, и он появился не вчера: к данным приезжает программа, а не данные к программе. Браузер скачивает расчётный модуль — как скачивает картинки и шрифты страницы — и дальше считает у вас. Снаружи это выглядит как обычный сайт. Внутри это ближе к настольной программе, которую не надо устанавливать.

Как это устроено у нас

Браузер уже много лет умеет выполнять не только скрипты страницы, но и настоящие скомпилированные программы. Технология называется WebAssembly; на ней работают, например, онлайн-редакторы фотографий и картографические сервисы, где было бы странно гонять каждое действие на сервер.

Наш расчётный движок написан на языке Rust и собран в такой модуль. Когда вы открываете страницу анализа, браузер скачивает его один раз, вместе с самой страницей. После этого работает только ваше устройство:

  • файл XLSX выбираете вы, и читает его браузер;
  • разбор таблицы, проверка колонок, все вычисления, матрица классов и рекомендации считаются на вашем компьютере;
  • отчёт рисуется там же, и выгрузка XLSX собирается тоже в браузере.

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

Схема потока данных: файл, расчёт и результаты остаются в браузере; наружу уходят только вход в аккаунт, оплата и сообщение из формы связи

Отсюда главное. На наши серверы не уходит ни файл, ни одна его строка, ни названия столбцов, ни результаты — классы, коэффициенты, сводные показатели, матрица, — ни рекомендации, ни выгруженный отчёт. Границу устройства пересекает только то, без чего сайт не работает: вход в аккаунт, оплата и сообщение из формы связи, если вы её отправите. Это и нарисовано на схеме; полный перечень, вплоть до списка адресов, лежит на отдельной странице «Как устроен поток данных».

И следствие, к которому непривычно относиться как к преимуществу: мы не знаем, что вы анализировали, и не знаем даже, запускали ли вы анализ. Метрики «сколько раз выполнен расчёт» у нас нет и быть не может — её нельзя собрать, не получив ваши данные.

Проверка первая: выключите интернет

Это самый простой способ убедиться, и он не требует ни специальных знаний, ни доверия к нашим словам. Программа, которой нужен сервер, без сети не работает — значит, если анализ проходит без сети, сервер ему не нужен.

  1. Войдите в свой аккаунт как обычно.
  2. Откройте страницу нужного анализа и дайте ей полностью загрузиться. Это важно: расчётный модуль приезжает вместе со страницей, и отключать сеть надо после того, как страница открылась, а не до.
  3. Выключите интернет — выньте кабель, отключите Wi-Fi или включите режим полёта.
  4. Выберите файл XLSX, отметьте колонки, нажмите «Сформировать отчет».
  5. Нажмите «Сохранить в xlsx».

Отчёт построится. Файл выгрузки скачается. Если бы для расчёта требовалось отправить данные, ни того, ни другого не случилось бы.

Ровно так сделаны обе картинки ниже: демонстрационная выгрузка в 120 позиций с помесячными продажами за год, анализ XYZ+ABC, интернет выключен сразу после того, как страница открылась.

Матрица XYZ+ABC из отчёта, построенного при выключенной сети: девять ячеек от AX до CZ с числом позиций и долей ассортимента

Матрица — результат двух разрезов сразу. Буква ABC говорит про вклад: сколько позиция дала за весь период. Буква XYZ — про стабильность: насколько ровно она продавалась от месяца к месяцу. Позиция AX даёт много и продаётся ровно, CZ — мало и рывками, и решения по ним противоположные. Как считаются классы A, B и C, подробно разобрано в статье «Что такое ABC-анализ — простыми словами».

Вместе с отчётом без сети собралась и панель рекомендаций — она строится по вашим же данным, и точно так же никуда не отправляется.

Панель рекомендаций в отчёте, собранном без интернета: подсказки по ключевым позициям, хвосту ассортимента и ячейке CZ

Одну вещь стоит знать заранее, чтобы не удивиться. Пока сети нет, сайт остаётся без связи целиком: перейти на другую страницу или перезагрузить текущую не получится — страница приезжает по сети. Расчёт при этом идёт. Когда закончите, включите интернет обратно; отчёт на экране от этого не изменится.

Проверка вторая: вкладка «Сеть»

Если отключать интернет не хочется, есть способ строже — посмотреть, что браузер отправляет, прямо во время анализа. Инструмент для этого встроен в любой браузер, и пользоваться им умеет не только программист.

  1. На странице анализа нажмите F12 (в Safari — включите меню разработчика в настройках).
  2. Откройте вкладку «Сеть» (Network) и очистите список.
  3. Проведите анализ обычным порядком.
  4. Смотрите строки, которые появились между выбором файла и появлением отчёта.

Что вы увидите: обращения счётчика посещений (Google Analytics — он есть на всех страницах сайта, включая эту, и считает просмотры страниц) — и ничего, что относилось бы к вашему файлу. Ни к нашему домену, ни к какому-либо другому. Полезная деталь: у запросов, которые что-то отправляют, ненулевой размер отправленных данных; можно отсортировать список по этой колонке и убедиться, что отправлять было нечего.

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

Оборотная сторона

Честно про то, что из этой же архитектуры следует и чем за неё платят.

Восстановить ваш анализ мы не сможем. Закрытая вкладка уносит его с собой: копии не было нигде, кроме вашего браузера. Поэтому выгружайте отчёт в XLSX, если он вам ещё понадобится.

Мы не видим, что у вас пошло не так. Если файл не разобрался или результат выглядит странно, у поддержки нет вашей выгрузки, чтобы посмотреть, — придётся описывать словами или собирать пример с обезличенными данными.

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

Страница анализа — это всё-таки веб-страница. Она приезжает по сети, на ней работает счётчик посещений, и обновляем мы её так же, как любой сайт. Поэтому мы держим отдельную страницу с описанием потока данных и обновляем её той же выкаткой, которой меняется что-либо из описанного: любое новое обращение к серверу, любой новый сторонний скрипт. Устаревшее описание там — это не неточность в маркетинге, а неверное утверждение, сделанное проверяющему.

Что попробовать

Самая убедительная проверка — та, которую вы сделали сами. Она занимает пять минут и не требует ничего, кроме вашего обычного файла: откройте страницу анализа, дождитесь загрузки, выключите Wi-Fi и посчитайте.

Если после этого захочется разобраться в самих методах, есть отдельные разборы: что такое ABC-анализ и комплексный ABC по двум показателям сразу.

Посчитайте и проверьте сами

Загрузите помесячную выгрузку продаж и получите разбор по вкладу и по стабильности спроса. А потом повторите то же самое с выключенным интернетом — результат будет тот же.

Открыть XYZ+ABC-анализ