# Тяжесть отчётов: что измерено из копий

Источник: `local/Source/` (снимок 11.09.2026) + статистика посещений из `local/designs/night`.
Считалось скриптом по 11 сохранённым копиям. `Trader Shifts` (8 415 визитов) копии не имеет и в расчёт не вошёл, поэтому все итоги занижены.

## 1. Вес страницы и трафик

| Отчёт | Вес | CSS | JS инлайн | Вшитые данные | Визитов/нед | ≈ Трафик/нед |
|---|---:|---:|---:|---:|---:|---:|
| Trader_Operational | 146 КБ | 18 КБ | 63 КБ | 7 КБ | 15 424 | **2 207 МБ** |
| Affiliate_Dashboard | 842 КБ | 23 КБ | 125 КБ | 13 КБ | 1 334 | **1 098 МБ** |
| Trader_Hourly_Calculator | **23.8 МБ** | 23 КБ | 23.6 МБ | **23.4 МБ** | 39 | **929 МБ** |
| Trader_Detailed | 204 КБ | 15 КБ | 70 КБ | 3 КБ | 2 494 | 499 МБ |
| Weekly_KPI | 109 КБ | 14 КБ | 42 КБ | 0 | 4 476 | 481 МБ |
| Trader_Scoreboard | 70 КБ | 11 КБ | 23 КБ | 4 КБ | 3 439 | 237 МБ |
| Trader_KPI | 223 КБ | 12 КБ | 72 КБ | 17 КБ | 85 | 19 МБ |
| Retention__Churn | 111 КБ | 18 КБ | 47 КБ | 0 | 131 | 14 МБ |
| Affiliate_Weekly_Report | 656 КБ | 6 КБ | 36 КБ | 0 | 16 | 10 МБ |
| Affiliate_Tier_Board | 351 КБ | 22 КБ | 38 КБ | 0 | 0 | 0 |
| Merchant_SLU | 59 КБ | 11 КБ | 19 КБ | 0 | 0 | 0 |

**Итого ≈ 5.5 ГБ исходящего трафика в неделю** только по этим 11 страницам, без учёта `/api/*`, статики и Trader Shifts.

## 2. Нагрузка на бэкенд: вызовы API

Это, судя по цифрам, и есть настоящая причина «halleg на пределе».

| Отчёт | fetch на одну загрузку | Визитов/нед | API-вызовов/нед |
|---|---:|---:|---:|
| **Trader_Operational** | **26** | 15 424 | **401 024** |
| Trader_Detailed | 15 | 2 494 | 37 410 |
| Weekly_KPI | 8 | 4 476 | 35 808 |
| Affiliate_Dashboard | 9 | 1 334 | 12 006 |
| Trader_Scoreboard | 3 | 3 439 | 10 317 |
| остальные шесть | 1-8 | - | < 1 000 каждый |

**Итого ≈ 498 000 вызовов `/api/*` в неделю. Из них 80% даёт один отчёт - Trader_Operational.**

Каждый такой вызов - агрегирующий запрос в базу (`/api/operational/top5`, `/matrix`, `/statement-breakdown` по трём измерениям сразу).

## 3. Пик нагрузки

Почасовое распределение за сутки из макета (IST):

```
304 339 300 302 276 81 78 31 0 0 0 29 17 45 441 889 548 651 556 642 564 768 571 521
```

Пиковый час - 889 посещений против среднего 331, то есть **пик в 2.7 раза выше среднего**. Ночью с 8:00 до 11:00 (IST) активность нулевая.

Оценка пикового часа при доле Trader_Operational в 43% от всех визитов: ≈ 380 загрузок в час × 26 вызовов ≈ **10 000 API-вызовов в час, около 2.7 запроса в секунду** непрерывных агрегаций в базу. Это оценка, а не замер.

## 4. Три разных вида тяжести

Их важно не путать, потому что лечатся они по-разному.

1. **Тяжесть для базы** - Trader_Operational. 26 запросов на загрузку, 400 тысяч в неделю. Лечится кэшем и объединением запросов, не фронтом.
2. **Тяжесть для канала** - Trader_Hourly_Calculator. 23.4 МБ данных вшито прямо в HTML, страница не кэшируется. Лечится выносом данных в отдельный файл. При 39 визитах в неделю это почти гигабайт трафика.
3. **Тяжесть для браузера** - Affiliate_Dashboard (11 624 DOM-узла, 4 095 ячеек таблицы), Affiliate_Weekly_Report (8 670 узлов), Affiliate_Tier_Board (6 656 узлов). Сервер рендерит гигантские таблицы целиком. Лечится виртуализацией или пагинацией, но это уже изменение UX.

## 5. Что этим измерением проверить нельзя

- Время выполнения запросов в базу. Отчёт с двумя вызовами может грузить сервер сильнее, чем отчёт с двадцатью, если эти два - тяжёлые агрегации.
- Есть ли кэш на стороне сервера. Если есть, оценка нагрузки завышена.
- Потребление CPU и памяти при рендеринге страницы на сервере.
- Trader Shifts - второй по популярности отчёт, копии нет.

Эти четыре вещи и надо спрашивать у аналитиков, остальное посчитано.
