﻿---
title: Результативность территорий
description: "Дашборд на Laravel + Filament: закрепление клиентов за территориями, выполнение плана, покрытие воронкой и перераспределение территорий посреди квартала."
---

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

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

Без такого сервиса распределение территорий хранится в таблице, которая устаревает ко второй неделе квартала. Менеджеры с пересекающимися территориями дважды учитывают одних и тех же клиентов, и воронка выглядит больше, чем есть. Руководители сравнивают территории по разным выгрузкам за разные периоды, отстающие регионы замечают на итоговом совещании, когда перераспределять уже поздно, а выполнение плана считают вручную и раз в месяц показывают в презентации.

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

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

- **Ведёт единое распределение.** Каждый клиент закреплён ровно за одной территорией, каждая территория — за менеджером или несколькими менеджерами.
- **Считает выполнение плана.** Воронка и выполнение плана по территориям обновляются ежедневно из живых данных, без противоречащих таблиц.
- **Показывает пробелы в покрытии.** Территории, где воронка или активность ниже порога, отмечаются автоматически.
- **Сравнивает территории честно.** Сводная таблица показывает активность, воронку и закрытую выручку рядом, за один и тот же период.
- **Поддерживает перераспределение.** При смене ответственного посреди квартала история остаётся за исходной территорией, а новые показатели идут к новому владельцу.

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

- **Одна территория на клиента.** Уникальность закрепления проверяется на уровне данных: попытка отнести клиента к двум территориям — ошибка проверки, а не повод для двойного учёта.
- **Клиенты без владельца видны.** Каждый клиент без территории или ответственного попадает в отдельный список, иначе часть рынка выпадает из отчётов.
- **План хранится с версиями.** Корректировка плана посреди квартала создаёт новую запись с датой вступления в силу. Иначе нельзя объяснить, почему выполнение вдруг изменилось.
- **Воронку взвешивают.** Сумму воронки умножают на вероятность этапа, а сделки без активности, например, три недели считают зависшими. Пороги — настройки.
- **Результат рядом с усилиями.** Журнал активности связывают с территориями, чтобы руководитель видел не только выручку, но и объём работы.
- **Гибкие границы территорий.** Территорию можно задать по региону, размеру клиента, отрасли или их сочетанию. Один менеджер может вести несколько территорий, но показатели считаются по каждой отдельно.
- **Доступ и источники.** Региональный руководитель видит свои территории, руководитель продаж — всё. Если распределение ведётся в CRM, сервис читает его оттуда без миграции; если в таблице — её импортируют один раз и дальше ведут в сервисе.

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

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

### 1. Данные и модели

```text
Создай модели и миграции для дашборда территорий: Territory (название,
регион, сегмент, отрасль, руководитель), TerritoryAssignment (территория,
менеджер, дата начала, дата окончания), Account (название, территория —
ровно одна, внешний id), Quota (территория, период, сумма, дата вступления
в силу, версия), Deal (клиент, территория на момент создания, этап,
вероятность, сумма, дата последней активности, дата закрытия). Добавь
фабрики.
```

### 2. Распределение и импорт

```text
Сгенерируй Filament-ресурсы для Territory и Account. Добавь импорт
распределения клиентов из CSV с проверкой: клиент без территории
или с двумя территориями — ошибка строки с понятным сообщением.
Сделай отдельный список клиентов без территории или ответственного.
```

Проверьте, что импорт файла с дублирующимся клиентом не проходит молча.

### 3. Показатели территорий

```text
Сделай страницу сравнения территорий: сводная таблица с взвешенной
воронкой, выполнением плана по действующей версии Quota, закрытой
выручкой и числом активностей за один выбранный период. Сделки без
активности дольше порога из конфига не учитывай во взвешенной воронке.
Добавь фильтры по региону и сегменту и сортировку по любой колонке.
```

### 4. Пробелы и перераспределение

```text
Добавь фоновую задачу, которая ежедневно пересчитывает показатели
и отмечает территории с воронкой или активностью ниже порога. Добавь
действие «Перераспределить территорию»: закрывает текущее назначение
датой и открывает новое; сделки до этой даты остаются за прежним
менеджером в истории.
```

### 5. Доступ и экспорт

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

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

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

- [Активность менеджеров](https://wpcraft.ru/kb/stacks/filament/use-cases/sales/sales-activity-scoreboard.md) — детализация усилий внутри территории.
- [Расчёт комиссионных](https://wpcraft.ru/kb/stacks/filament/use-cases/sales/commission-tracker.md) — как выполнение плана превращается в выплаты.
- [Прибыльность по сегментам](https://wpcraft.ru/kb/stacks/filament/use-cases/finance/profitability-by-segment.md) — маржинальность регионов и сегментов с точки зрения финансов.

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

- [Refine: Territory Performance Dashboard](https://refine.dev/use-cases/sales/territory-performance-dashboard/)
- [Filament 4.x: импорт](https://filamentphp.com/docs/4.x/actions/import)
- [Filament 4.x: таблицы](https://filamentphp.com/docs/4.x/tables/overview)
- [Filament 4.x: виджеты](https://filamentphp.com/docs/4.x/widgets/overview)