Дашборд ГК Альфа-Центр. Войдите через Google или по почте и паролю — доступ открывает администратор.
млн ₽ · по дням месяца
млн ₽ · факт за день
| Дата | Выручка за день, ₽ | Нарастающим итогом, ₽ |
|---|
нарастающим итогом, млн ₽
тыс ₽ · с начала месяца
| Сотрудник | Задел на начало месяца, тыс ₽ | Прирост, тыс ₽ | Факт, тыс ₽ | Текущий задел, тыс ₽ | Выручка нараст., млн ₽ |
|---|
Таблицу можно листать вбок →
млн ₽ · 2026 год
млн ₽ · по месяцам года
нарастающим итогом за все месяцы, млн ₽
| Сотрудник | Факт за год, тыс ₽ | Выручка за год, млн ₽ | Доля в выручке, % |
|---|
Таблицу можно листать вбок →
Шесть способов показать одно и то же — как задел пришёл от начала месяца к сегодняшнему дню. Ступени везде одинаковые: задел на начало → прирост → факт → задел сегодня, и они связаны тождеством «задел сегодня = задел на начало + прирост − факт». Отличаются варианты только тем, сколько они берутся утверждать о том, какие именно деньги закрылись — старые или новые. Это из четырёх чисел строго не выводится, выводятся лишь границы.
Задел на начало 100, прирост 150, факт 200, задел сегодня 50. Одни и те же числа во всех шести видах, чтобы разница была видна сразу. Виды 4 и 6 строятся по дням, поэтому к примеру приложен выдуманный подневный ряд — он сходится ровно к этим же итогам.
Ничего не домыслено. Видно только движение остатка: откуда вышли, что добавили, что забрали, чем закончили.
Цвет показывает происхождение денег: оранжевое пришло из старого задела, фиолетовое — из новых оплат месяца. Сами ступени точные, разбиение внутри них — допущение.
Честнее всех: снизу гарантированно старое, сверху гарантированно новое, между ними заштрихованная зона — там данные не позволяют провести границу. Чем шире штриховка, тем меньше мы знаем.
Не водопад, а его развёртка во времени. Приход и расход считаются по каждому дню из ежедневных строк, поэтому вилка почти схлопывается. Цвет — когда деньги пришли: до месяца, 1–10, 11–20, 21–31. Растёт нижний слой — задел стареет.
Столбцы окрашены по своему показателю: задел оранжевый, прирост фиолетовый, факт зелёный. Штриховки нет вовсе. Вместо неё лентами соединено только то, что известно точно, — градиент идёт от цвета источника к цвету приёмника, как в «Потоке». Читать так: что лента не закрыла, то не определено. Пустой столбец означает, что про его состав нельзя сказать ничего.
Тоже по дням, но логика другая. Столбик каждого дня складывается снизу вверх: задел, на него прирост, на него факт. Видно сразу все три показателя и то, как они расходятся в течение месяца. Общая высота столбика смысла не имеет: задел — это остаток на дату, а прирост и факт — накопленные потоки, складывать их в одну сумму нельзя. Смотреть надо на слои по отдельности.
Сводка продаж отдела: сколько сделал каждый сотрудник и отдел целиком — по дням, по месяцам и за год. Это те же цифры, что вы ведёте в Google Таблицах, просто показанные наглядно.
Наш сервер сам читает месячные Google Таблицы — одна таблица на месяц — и держит свежую копию у себя. Страница берёт у него готовые данные и рисует графики.
Правка в таблице доедет до дашборда в течение нескольких минут. В обратную сторону ничего не пишется: изменить данные через дашборд нельзя, он только показывает.
Google подтверждает только одно: что вы — это вы. Никакого доступа к вашей почте, файлам или календарю дашборд не получает и не просит.
А пускать вас или нет, решает список, который ведёт администратор. Поэтому бывает так, что вход прошёл, а дашборд не открылся: значит вас ещё не добавили в список. Передайте администратору адрес, которым вошли.
Вход запоминается надолго — заново входить каждый день не придётся.
Это одна цепочка, а не четыре отдельных числа. Клиент оплачивает сделку — деньги видны в выручке, а прибыль по ней уходит в задел и ждёт закрытия сделки. Сколько такой прибыли добавилось за месяц с новых оплат — это прирост. Когда сделка закрыта, её прибыль переходит в факт. Отсюда и правило, по которому считает дашборд: задел сегодня = задел на начало месяца + прирост − факт.
Выручка, факт и прирост за год — это суммы за все месяцы, тут всё привычно.
А задел — не сумма. Это не «сколько заработали», а «сколько прямо сейчас висит незакрытого». Если складывать его по месяцам, одна и та же сделка посчитается столько раз, сколько месяцев она висела, и цифра раздуется в разы. Поэтому на вкладке «Год» задел показан на последнюю дату, а не сложен.
«Поток», «Орбиты» и «Лепестки» — это одни и те же числа, нарисованные по-разному. Выбирайте тот вид, который вам удобнее читать: выбор запоминается и в следующий раз откроется тот же.
Размер элемента на карточке — это доля от лучшего результата в команде по этому показателю, а точные суммы всегда написаны под графиком.
Страница в браузере ничего не считает и никуда, кроме нашего сервера, не ходит. Сервер читает Google Таблицы от своего имени, держит готовый снимок данных и отдаёт его тем, кому разрешено. Google отвечает только на вопрос «кто это», а «пускать ли» решает наш список.
Раньше было иначе: таблицы читал браузер токеном самого сотрудника. Отсюда росли экран согласия при каждом входе, перелогин раз в час и доступ, привязанный к шарингу таблиц. Всё это ушло вместе с той схемой.
/api/ на
службу; HTTPS — Let’s Encrypt с автопродлением.Параллельно и независимо от посетителей служба раз в несколько минут перечитывает таблицы: находит месячные файлы в папке, забирает все вкладки каждой книги и обновляет снимок. Полный проход занимает около 20 секунд — поэтому он и вынесен в фон. Если очередное обновление не удалось, отдаётся прошлый снимок и страница честно пишет, на какой он момент.
Самое хрупкое место любой интеграции с таблицами — привязка к конкретным ячейкам. Здесь этого нет:
HttpOnly, Secure,
SameSite=Lax; изменяющие запросы требуют отдельного
заголовка, который нельзя подставить формой с чужого сайта.Страница собирается из десяти небольших модулей в один самодостаточный файл — разработка по частям, выкладка одной командой. Сборка сверяет контрольную сумму и проверяет синтаксис. Служба на сервере поставлена отдельным пользователем без права входа, с доступом на запись только к своему каталогу данных.
ETag и Last-Modified, без
Cache-Control, поэтому после выкладки иногда нужен
жёсткий перезагруз.