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

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

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

Без такого сервиса дублирующий платёж поставщику может неделями оставаться незамеченным, если его разнесли по двум центрам затрат. Контролёр раз в неделю вручную сравнивает факт с бюджетом в таблице и находит отклонения с опозданием на несколько дней. Одна и та же трата по-разному выглядит в отчётах ERP и биллинга. Закрытие месяца растягивается на пару дней, потому что команда разбирает полтора-два десятка спорных строк, которые можно было поймать раньше.

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

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

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

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

- **Правила понятны и настраиваемы.** Аномалия определяется порогами и окнами, которые задаёт финансовая служба, а не непрозрачным алгоритмом. Каждая отметка показывает, какое правило сработало.
- **Начинать лучше с узкого охвата.** Строгие пороги на десятке крупнейших центров затрат и расширение после месяца наблюдений. Широкие пороги сразу по всем статьям порождают поток ложных сигналов, и их перестают читать.
- **Дубли ищут не только по точной сумме.** Совпадение поставщика, суммы и даты в пределах нескольких дней ловит разбитые и повторно отправленные счета. Точное совпадение пропускает большинство реальных случаев.
- **Законная операция закрывается одним действием.** Отметка снимается с обязательной причиной, решение пишется в журнал, а доля ложных срабатываний видна по каждому правилу.
- **Скорость зависит от источника.** Если ERP выгружает данные раз в сутки, отметки появляются в тот же день; при потоковой синхронизации — почти сразу. Обещать мгновенность без потоковой интеграции нельзя.
- **Сервис наблюдает, а не заменяет учёт.** ERP остаётся главной системой, мониторинг читает её данные через API или подключение на чтение. Если в ERP уже есть настраиваемые контрольные процедуры, начните с них.
- **Доступ по центрам затрат.** Руководитель видит свои операции и отметки, контролёр — все; ограничение действует и в выгрузках.

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

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

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

```text
Создай модели и миграции для мониторинга расходов: CostCenter (бюджет
на месяц, руководитель), SpendCategory (основной справочник),
Transaction (центр затрат, поставщик, категория, сумма, дата, источник,
внешний id), AnomalyRule (тип: превышение бюджета, возможный дубль,
неизвестная категория; параметры: порог, окно в днях, охват центров
затрат; активность), AnomalyFlag (операция, правило, причина,
ответственный, срок, решение, комментарий). Добавь фабрики.
```

### 2. Загрузка и проверка

```text
Сделай фоновую задачу, которая загружает операции из ERP через API по
расписанию и после сохранения каждой новой операции прогоняет активные
AnomalyRule. Для дублей сравнивай поставщика, сумму и дату в пределах
окна по всем центрам затрат. Операцию с категорией вне справочника не
включай в отчёты до сопоставления.
```

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

### 3. Очередь разбора

```text
Сгенерируй Filament-ресурс для AnomalyFlag с вкладками по типу правила
и фильтрами по центру затрат, ответственному и сроку. Добавь действия
«Подтвердить проблему» и «Закрыть как законную» с обязательной причиной.
В карточке покажи операцию, сработавшее правило и похожие операции.
```

### 4. Эскалация и ежедневный отчёт

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

### 5. Качество правил и доступ

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

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

- [Контроль бюджета по центрам затрат](https://wpcraft.ru/kb/stacks/filament/use-cases/finance/budget-tracker.md) — план и факт по статьям, от которых отсчитываются пороги.
- [Согласование расходов сотрудников](https://wpcraft.ru/kb/stacks/filament/use-cases/finance/expense-approval.md) — дубли и дробление заявок на этапе подачи.
- [Темп расходования рекламного бюджета](https://wpcraft.ru/kb/stacks/filament/use-cases/marketing/paid-spend-pacing-dashboard.md) — контроль скорости трат на рекламу.

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

- [Refine: Spend Anomaly Monitor](https://refine.dev/use-cases/finance/spend-anomaly-monitor/)
- [Filament 4.x: ресурсы](https://filamentphp.com/docs/4.x/resources/overview)
- [Filament 4.x: фильтры таблиц](https://filamentphp.com/docs/4.x/tables/filters/overview)
- [Filament 4.x: уведомления в базе данных](https://filamentphp.com/docs/4.x/notifications/database-notifications)
- [Filament 4.x: экспорт](https://filamentphp.com/docs/4.x/actions/export)