﻿---
title: Дашборд выручки
description: "Дашборд на Laravel + Filament: единые MRR, ARR и признанная выручка из биллинга и ERP, отклонения от плана в течение месяца и сводка для руководства."
---

## Что это за сервис

Единый экран выручки для финансового директора, руководителей направлений и собственников. Он собирает данные из биллинга, ERP и оставшихся таблиц, применяет одинаковые правила признания и показывает одну и ту же цифру всем, кому она нужна, с детализацией по уровню доступа.

Без такого сервиса выручка живёт в трёх системах, и цифры в них сходятся только после ручной сверки. Разбор итогов месяца начинается с двадцатиминутного выяснения, какая версия окончательная. MRR и ARR в разных отделах считают по своим формулам. Отклонение от плана замечают после закрытия, а на вопрос руководителя «сколько мы заработали» разные сотрудники дают разные ответы.

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

## Что он делает

- **Сводит выручку из всех источников.** Подписки из биллинга, разовые услуги из ERP и исторические данные из таблиц приводятся к общим потокам выручки.
- **Считает показатели по одной формуле.** MRR, ARR, признанная выручка и удержание выручки рассчитываются один раз и одинаково для всех экранов и выгрузок.
- **Отмечает отклонения в течение месяца.** Поток выручки, который отстаёт от плана сверх порога, попадает в список до закрытия периода.
- **Показывает свежесть данных.** Рядом с каждой цифрой видно, когда последний раз синхронизировался источник.
- **Даёт разные уровни детализации.** Руководство видит карточки показателей и тренды, финансовая служба — таблицы с разбивкой, владелец направления — только свои потоки.

## Нюансы и особенности

- **Правила признания задают один раз.** Выручка признаётся по счёту, по оплате или по оказанию услуги — это решение фиксируется в модели данных для каждого потока. Если две системы считают независимо, цифры снова разойдутся.
- **ARR без ушедших клиентов.** Отменённые и приостановленные подписки исключаются автоматически по статусу в биллинге, а не ручными правками. Иначе показатель выглядит лучше реальности.
- **Синхронизация хотя бы раз в сутки.** Данные биллинга загружаются по расписанию, а время последней загрузки выводится на дашборде. Устаревшие данные помечаются, а не показываются как текущие.
- **Порог отклонения — по потоку.** Для стабильной подписочной выручки 5% — уже сигнал, для проектной — обычная волатильность. Пороги хранятся в настройках.
- **Таблицы можно подключить временно.** Потоки, которые пока ведутся в таблицах, загружают импортом CSV рядом с автоматическими источниками и переводят в базу постепенно.
- **Интеграция без переноса.** Биллинг и ERP остаются главными системами, дашборд читает их через API или подключение только на чтение. Если BI-система компании уже строит эти отчёты по согласованным формулам, отдельное приложение нужно лишь для операционных действий.
- **Доступ ограничивают на сервере.** Руководитель направления не должен видеть выручку чужих направлений ни в виджетах, ни в экспорте.

## Как сгенерировать через ИИ-агентов

Промпты рассчитаны на AI-агента (Claude Code, Cursor и аналоги) в Laravel-проекте с установленным **Filament 4.x**. Отправляйте их по одному: каждый шаг даёт результат, который можно проверить до перехода к следующему.

### 1. Данные и правила признания

```text
Создай модели и миграции для дашборда выручки: RevenueStream (название,
владелец, правило признания: по счёту, по оплате, по оказанию),
RevenueEntry (поток, клиент, период, сумма, валюта, источник, внешний
id), Subscription (клиент, тариф, статус, ежемесячная сумма), RevenuePlan
(поток, месяц, плановая сумма, порог отклонения), SyncRun (источник,
время, статус). Добавь фабрики с демо-данными за год.
```

### 2. Загрузка источников

```text
Сделай фоновые задачи по расписанию для загрузки подписок и счетов из
биллинга и проводок из ERP через API, плюс импорт CSV через Filament
для потоков из таблиц. Каждая загрузка пишет SyncRun, повторная загрузка
той же записи не создаёт дубль.
```

### 3. Расчёт показателей

```text
Сделай сервис расчёта показателей за месяц: MRR и ARR только по
активным подпискам, признанная выручка по правилу потока, удержание
выручки по когортам клиентов. Все экраны и выгрузки должны брать
показатели только из этого сервиса.
```

Отмените подписку в демо-данных и проверьте, что она исчезла из ARR без ручных правок.

### 4. Дашборд и отклонения

```text
Сделай страницу Filament с виджетами: карточки MRR, ARR и выручки
месяца, график по потокам за 12 месяцев, таблица план-факт по потокам
с подсветкой отклонений выше порога и время последней синхронизации
каждого источника. Превышение порога создаёт уведомление в панели
владельцу потока.
```

### 5. Доступ и выгрузка

```text
Настрой роли: руководство видит только карточки и тренды, финансовая
служба — всё с детализацией, владелец потока — только свои потоки.
Примени ограничение к виджетам, таблицам и экспорту. Добавь экспорт
показателей за период в CSV.
```

## Похожие сценарии

- Чем отличается от [маржинальности по сегментам](https://wpcraft.ru/kb/stacks/filament/use-cases/finance/profitability-by-segment.md): дашборд выручки отвечает на вопрос «сколько заработали», а маржинальность вычитает себестоимость и распределённые затраты и показывает, какие сегменты прибыльны.
- Чем отличается от [сводки маркетинговой аналитики](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/analytics-overview.md): там трафик, лиды и конверсии каналов, здесь — признанная выручка и подписочные показатели по данным биллинга и ERP.
- [Прогноз движения денежных средств](https://wpcraft.ru/kb/stacks/filament/use-cases/finance/cash-flow-forecast.md) — когда выручка превратится в деньги на счетах.
- [Сверка подписок](https://wpcraft.ru/kb/stacks/filament/use-cases/finance/subscription-reconciliation.md) — проверка, что выставленное действительно получено.

## Материалы и источники

- [Refine: Revenue Dashboard](https://refine.dev/use-cases/finance/revenue-dashboard/)
- [Filament 4.x: виджеты статистики](https://filamentphp.com/docs/4.x/widgets/stats-overview)
- [Filament 4.x: графики](https://filamentphp.com/docs/4.x/widgets/charts)
- [Filament 4.x: импорт](https://filamentphp.com/docs/4.x/actions/import)
- [Filament 4.x: экспорт](https://filamentphp.com/docs/4.x/actions/export)