Трейдер Operational Dashboard

Last: 2026-09-11 17:00 IST
Live
Афіліат
Менеджер
Статус
Група
Трейдер
Від
До
17:18:19 IST (0.9s)
Обсяг PayIn
1,290,320
1,155,478 ▲11.7%
Обсяг PayOut
170,559
278,247 ▼38.7%
Активні трейдери
1
1 ▲0.0%
Активні рахунки
37
47 ▼21.3%
CR %
68.7%
63.2% ▲8.7%
% Авто
97.7%
97.5% ▲0.2%
Сер. PayIn/трейдер
1,290,320
1,155,478 ▲11.7%
Сетлмент
995,258
893,098 ▲11.4%
Settle/PayIn %
77.1%
77.3% ▼0.2%
Statement %
46.9%
60.0% ▼21.9%

Обсяг PayIn за датою

ТОП-5 афіліатів за Обсяг PayIn

ТОП-5 менеджерів за Обсяг PayIn

ТОП-5 трейдерів за Обсяг PayIn

Матриця — Афіліат

Порівняння день-до-дня

ДатаДеньОб. PayInPayOutТрейдериРахункиCR%Авто%Сер/трСетлStl/PI%Вип%
09-11 (поточний)Fri1,290,320
▲ 11.7%
170,559
▼ 38.7%
137
▼ 21.3%
68.7%
▲ 5.5pp
97.7%
▲ 0.2pp
1,290,320
▲ 11.7%
995,258
▲ 11.4%
77.1%
▼ 0.2pp
46.9%
▼ 13.1pp
09-10Thu1,155,478
▼ 57.0%
278,247
▲ 55.8%
14763.2%
▼ 6.4pp
97.5%
▼ 1.9pp
1,155,478
▼ 57.0%
893,098
▼ 64.1%
77.3%
▼ 15.4pp
60.0%
▼ 16.2pp
09-09Wed2,687,961
▲ 532.0%
178,600
▲ 11.9%
147
▲ 113.6%
69.6%
▲ 11.8pp
99.5%
▲ 0.6pp
2,687,961
▲ 532.0%
2,490,697
▲ 1572.3%
92.7%
▲ 57.6pp
76.2%
▼ 3.8pp
09-08Tue425,297
▼ 68.5%
159,551
▼ 46.1%
122
▼ 52.2%
57.8%
▼ 10.8pp
98.9%
▼ 0.1pp
425,297
▼ 68.5%
148,940
▼ 84.9%
35.0%
▼ 37.9pp
80.0%
▼ 7.5pp
09-07Mon1,352,084
▲ 90.8%
296,000
▲ 1.1%
146
▲ 15.0%
68.6%
▲ 4.9pp
99.0%
▼ 0.6pp
1,352,084
▲ 90.8%
985,640
▲ 149.0%
72.9%
▲ 17.0pp
87.5%
▼ 12.5pp
09-06Sun708,609
▲ 196.5%
292,779
▼ 4.4%
140
▲ 400.0%
63.7%
▲ 6.4pp
99.6%
▲ 11.3pp
708,609
▲ 196.5%
395,859
▲ 0.0%
55.9%
▲ 55.9pp
100.0%
▲ 50.0pp
09-05Sat238,964
▼ 22.3%
306,100
▲ 16.6%
1857.3%
▼ 4.1pp
88.4%
▼ 4.2pp
238,964
▼ 22.3%
00.0%50.0%
▼ 25.0pp
09-04Fri307,580
▼ 78.9%
262,460
▲ 629.1%
18
▼ 66.7%
61.5%
▼ 8.7pp
92.5%
▼ 7.5pp
307,580
▼ 78.9%
0
▼ 100.0%
0.0%
▼ 83.5pp
75.0%
▲ 25.0pp
09-03Thu1,455,508
▲ 7.2%
36,000
▼ 79.2%
124
▼ 41.5%
70.2%
▲ 6.7pp
100.0%
▲ 2.4pp
1,455,508
▲ 7.2%
1,215,809
▼ 7.4%
83.5%
▼ 13.2pp
50.0%
▼ 15.4pp
09-02Wed1,357,645
▲ 46.9%
172,800
▼ 45.1%
141
▲ 10.8%
63.5%
▲ 1.7pp
97.6%
▲ 1.6pp
1,357,645
▲ 46.9%
1,312,738
▲ 243.5%
96.7%
▲ 55.4pp
65.4%
▼ 1.3pp
09-01Tue924,482
▲ 25.7%
314,749
▼ 63.8%
137
▲ 42.3%
61.8%
▲ 2.9pp
96.1%
▼ 0.3pp
924,482
▲ 25.7%
382,200
▲ 0.0%
41.3%
▲ 41.3pp
66.7%
▼ 15.2pp
08-31Mon735,688
▼ 5.3%
869,081
▲ 38.0%
126
▲ 13.0%
58.9%
▼ 12.0pp
96.4%
▼ 3.2pp
735,688
▼ 5.3%
00.0%81.8%
▲ 12.6pp
08-30Sun777,091
▲ 149.7%
629,700
▲ 106.5%
123
▲ 91.7%
70.9%
▲ 0.3pp
99.6%
▲ 3.5pp
777,091
▲ 149.7%
00.0%69.2%
▼ 30.8pp
08-29Sat311,166
▼ 15.3%
304,999
▲ 311.6%
112
▲ 20.0%
70.6%
▲ 0.3pp
96.0%
▼ 3.3pp
311,166
▼ 15.3%
0
▼ 100.0%
0.0%
▼ 70.1pp
100.0%
▲ 18.2pp
08-28Fri367,487
▼ 46.7%
74,100
▼ 81.8%
110
▼ 47.4%
70.3%
▼ 2.5pp
99.4%
▼ 0.6pp
367,487
▼ 46.7%
257,543
▲ 5.9%
70.1%
▲ 34.8pp
81.8%
▲ 20.3pp
08-27Thu689,806
▲ 76.1%
407,038
▲ 135.9%
119
▲ 35.7%
72.8%
▲ 6.5pp
100.0%689,806
▲ 76.1%
243,098
▼ 0.0%
35.2%
▼ 26.8pp
61.5%
▼ 29.8pp
08-26Wed391,804
▲ 37.0%
172,515
▼ 62.0%
114
▼ 22.2%
66.3%
▼ 0.8pp
100.0%391,804
▲ 37.0%
243,165
▲ 0.0%
62.1%
▲ 62.1pp
91.3%
▲ 24.6pp
08-25Tue285,884
▲ 328.0%
453,744
▲ 269.6%
1
▼ 50.0%
18
▲ 100.0%
67.1%
▲ 15.5pp
100.0%
▲ 18.8pp
285,884
▲ 755.9%
00.0%66.7%
▲ 16.7pp
08-13Thu66,801
▼ 75.3%
122,767
▼ 31.7%
2
▲ 100.0%
951.6%
▼ 10.8pp
81.3%
▼ 18.8pp
33,400
▼ 87.6%
00.0%50.0%
08-12Wed270,048179,6871962.4%100.0%270,04800.0%50.0%
Разом15,799,7035,681,4760065.5%97.9%09,564,04560.5%71.0%
Дата

PayIn Volume by Hour

Погодинні метрики

ГодинаОб. PayInPayOutТрейдериРахункиCR%Авто%Сер/трСетлStl/PI%Виплати в очікуванні, #Виплати в очікуванні, ₹Без рахунку, #Без рахунку, ₹
О дашборде
Оперативный дашборд для ежедневного мониторинга ключевых показателей трейдеров. Данные обновляются каждые 30 минут. Период по умолчанию: последние 30 дней (доступно до 90 дней истории — расширьте поле From).
Вкладка Daily
KPI-карточки — 10 ключевых метрик за сегодня с сравнением со вчерашним днём (% изменения).
График — выбранная метрика по дням. Выходные дни выделены оранжевым. Переключение метрики — кнопками над графиком.
TOP-5 — пять лидеров по выбранной метрике в разрезе Affiliate / Manager / Trader. Пересчитываются при смене метрики.
Матрица — сводная таблица: строки = Affiliate / Manager / Trader (переключатель), столбцы = даты. Сортировка по Total. Переключение разреза — кнопками Affiliate / Manager / Trader.
Day-over-Day — таблица с ежедневным сравнением всех метрик. Зелёные/красные стрелки показывают рост/падение относительно предыдущего дня.
Вкладка Hourly
Почасовая статистика за выбранный день. Выберите дату в выпадающем списке.
KPI-карточки — суммарные/средние значения за день.
График — выбранная метрика по часам. Показывает только часы с данными (будущие часы скрыты).
Таблица — все метрики по каждому часу.
Вкладка Shifts
Контроль смен: кто вышел на смену, кто нет, кто работает вне своей смены.
Смены (Plan) — плановое время работы из workingHoursFrom/To. S1: 06:00–14:00 IST, S2: 13:00–22:00, S3: 20:00–07:00. 24/7 = 00:00–24:00.
Активность (Fact) — трейдер активен в час H, если PayIn > 0 или PayOut > 0 за этот час по IST.
Цвета ячеек: Active in shift, Planned (впереди), Missed (пропуск), Active outside (вне смены).
Coverage % = Active / Plan × 100%. Зелёный ≥80%, жёлтый ≥50%, красный <50%.
Hours in/out — часы активности в смену / вне смены. PayIn in/out — объём PayIn в смену / вне смены.
Клик на имя — детали: смена, менеджер, 24-часовая разбивка, итоги дня.
Фильтры
Affiliate / Manager / Group / Status / Trader — фильтрация данных. Все графики, KPI, матрица и таблицы пересчитываются при изменении фильтра.
Group = P2P — установлен по умолчанию.
Hour to Hour (H2H) — для честного сравнения дней. При включении каждый день показывает данные только до текущего часа IST. Пример: сейчас 14:00 — вчерашний день показывает данные за 00:00–14:00, а не за весь день.
Выбор метрики
Кнопки над графиком (PayIn Volume, CR%, Active Traders и т.д.) переключают:
• График по дням / часам
• TOP-5 панели
• Матрицу (значения в ячейках)
Все 10 метрик доступны для анализа в каждом разрезе.
Обсяг PayIn
Сумма успешных payin транзакций из таблицы Transaction.
SQL-query ▾
SELECT SUM(tran.amount) AS payin_volume
FROM "Transaction" tran
JOIN "BankAccount" ba ON tran."bankAccount" = ba.id
JOIN "AccountProvider" ap ON ba."accountProvider" = ap.id
WHERE tran.operation = 'payin'
  AND (tran."createdAt" AT TIME ZONE 'UTC'
       AT TIME ZONE 'Asia/Kolkata')::date = :dt
  AND ap.name != 'Operation provider'
Обсяг PayOut
Абсолютная сумма payout транзакций.
SQL-query ▾
SELECT ABS(SUM(tran.amount)) AS payout_volume
FROM "Transaction" tran
JOIN "BankAccount" ba ON tran."bankAccount" = ba.id
WHERE tran.operation = 'payout'
  AND (tran."createdAt" AT TIME ZONE 'UTC'
       AT TIME ZONE 'Asia/Kolkata')::date = :dt
Активні трейдери
Количество уникальных провайдеров, у которых суммарный payin > 0. Группируется по провайдеру, фильтруется по SUM > 0 (не по каждой транзакции отдельно).
SQL-query ▾
SELECT COUNT(*) AS active_traders
FROM (
  SELECT ba."accountProvider" AS pid
  FROM "Transaction" tran
  JOIN "BankAccount" ba ON tran."bankAccount" = ba.id
  WHERE tran.operation = 'payin'
    AND (tran."createdAt" ...)::date = :dt
  GROUP BY ba."accountProvider"
  HAVING SUM(tran.amount) > 0
) sub
Активні рахунки
Сумма уникальных банковских аккаунтов по каждому часу и трейдеру. Один аккаунт, активный в 5 часах, считается 5 раз (аналог Power BI SUM(active_accounts)).
SQL-query ▾
SELECT SUM(accts) AS active_accounts
FROM (
  SELECT dt, hr, ap.id AS tid,
    COUNT(DISTINCT ba.id) AS accts
  FROM "ClientPayin" cp
  JOIN "BankAccount" ba ON cp."bankAccount" = ba.id
  JOIN "AccountProvider" ap ON ba."accountProvider" = ap.id
  WHERE (cp."createdAt" ...)::date = :dt
  GROUP BY dt, hr, ap.id
) sub
CR, % (Conversion Rate)
Конверсия — доля успешных заявок от общего числа. Успешная заявка: status IN ('completed','successed_by_partner') — новый статус 'completed' замінив 'successed_by_partner' у червні 2026.
SQL-query ▾
SELECT
  SUM(CASE WHEN cp.status IN ('completed','successed_by_partner')
      THEN 1 END)::float
  / NULLIF(COUNT(cp.id), 0) AS cr_pct
FROM "ClientPayin" cp
JOIN "BankAccount" ba ON cp."bankAccount" = ba.id
JOIN "AccountProvider" ap ON ba."accountProvider" = ap.id
WHERE (cp."createdAt" ...)::date = :dt
% Авто
Доля автоматически обработанных заявок — без ручного вмешательства поддержки (editedBySupport = false).
SQL-query ▾
SELECT
  SUM(CASE WHEN cp.status IN ('completed','successed_by_partner')
      AND cp."editedBySupport" = false
      THEN 1 END)::float
  / NULLIF(SUM(CASE WHEN cp.status IN ('completed','successed_by_partner')
      THEN 1 END), 0) AS auto_pct
FROM "ClientPayin" cp ...
Сер. PayIn/трейдер
Средний объём PayIn на одного активного трейдера.
SQL-query ▾
SELECT SUM(payin_volume) / NULLIF(active_traders, 0)
  AS avg_payin_trader
-- payin_volume: SUM из Transaction
-- active_traders: COUNT(DISTINCT provider)
--   GROUP BY provider HAVING SUM(amount) > 0
Сетлмент
Сумма settlement расходов. Источник: Transaction → Expense → ExpenseCategory, где category = 'Settlement'.
SQL-query ▾
SELECT SUM(tran.total) * (-1) AS settlement
FROM "Transaction" tran
JOIN "Expense" e ON e.id = tran."expenseId"
JOIN "ExpenseCategory" ec ON e."category" = ec.id
WHERE tran.operation = 'expense'
  AND ec.label = 'Settlement'
  AND (tran."createdAt" ...)::date = :dt
Сетл/PayIn, %
Доля settlement от PayIn Volume. Показывает, сколько средств возвращается трейдерам.
SQL-query ▾
SELECT SUM(settlement) / NULLIF(SUM(payin_volume), 0)
  AS settle_payin_pct
-- settlement: из Expense (category='Settlement')
-- payin_volume: из Transaction (operation='payin')
Виписка, %
Доля аккаунтов с банковской выпиской. Volume-weighted: крупный трейдер с 2000 аккаунтов правильно доминирует над мелким с 1 аккаунтом. Без двойного AVG.
SQL-query ▾
SELECT
  SUM(has_statement)::float
  / NULLIF(SUM(total_accounts), 0)
  AS statement_pct
FROM (
  SELECT dt, tid,
    SUM(has_stmt) AS has_statement,
    COUNT(DISTINCT account_number) AS total_accounts
  FROM (
    SELECT DATE(cp."createdAt" + '5h30m') AS dt,
      ba."accountProvider" AS tid,
      ba."account" AS account_number,
      MAX(CASE WHEN baf.id IS NOT NULL
          THEN 1 ELSE 0 END) AS has_stmt
    FROM "ClientPayin" cp
    JOIN "BankAccount" ba ON ...
    LEFT JOIN LATERAL (
      SELECT f.id FROM "BankAccountFile" f
      WHERE f."bankAccount" = ba.id
        AND cp."createdAt" BETWEEN
            f."beginDateTime" AND f."endDateTime"
      LIMIT 1
    ) baf ON TRUE
    GROUP BY dt, tid, account_number
  ) raw
  GROUP BY dt, tid
) agg
Out Pending (только Hourly)
Сколько payout-заявок было в статусе 'pending' в момент HH:mm — реконструкция через таблицу History. Снапшот в моменте, как если бы бот делал запрос в это время. Для каждого получаса отдельно. ВНИМАНИЕ: pending payout не имеет accountProvider (ещё не назначен трейдеру), поэтому метрика ГЛОБАЛЬНАЯ и уважает только фильтр Pmt Method. Остальные фильтры (Affiliate/Manager/Status/Group/Trader) на эту колонку не влияют.
SQL-query ▾
-- 1) Найти в History моменты выхода из статуса 'pending'
WITH payout_pending_end AS (
  SELECT "recordId" AS payout_id,
         MIN("createdAt") AS pending_end
  FROM "History"
  WHERE "table" = 'ClientPayout'
    AND "logJson"->'data'->'status'->>'old' = 'pending'
  GROUP BY "recordId"
)
-- 2) Для каждого payout: pending_start=createdAt, pending_end
-- 3) Для каждого получаса T:
--    был pending в момент T ⇔
--    pending_start <= T AND (pending_end IS NULL OR pending_end > T)
Unassigned (только Hourly)
ClientPayin созданные в этом получасе с bankAccount IS NULL — заявки которые не получили счёт. Колонки: # (количество) и ₹ (сумма). Уважает ТОЛЬКО фильтр Pmt Method — остальные фильтры (Affiliate/Manager/Group/Status/Trader) недоступны, потому что без bankAccount нет связи с трейдером.
SQL-query ▾
SELECT 
  COUNT(*) AS unassigned_count,
  COALESCE(SUM(amount), 0) AS unassigned_amount
FROM "ClientPayin"
WHERE "bankAccount" IS NULL 
  AND ("prevPendingClientPayinId" IS NULL
       OR "prevPendingClientPayinId" = '')
  -- + фильтр по получасу createdAt
  -- + фильтр paymentMethodType (если выбран)
Hour-to-Hour (H2H)
Фильтр для честного сравнения дней. При включении каждый день показывает данные только до текущего часа IST. Если сейчас 14:00 — все дни показывают 00:00–14:00.
SQL-query ▾
-- Добавляется ко всем запросам:
WHERE hr <= EXTRACT(HOUR FROM
  now() AT TIME ZONE 'Asia/Kolkata')::int

-- Пример: сейчас 14:30 IST
-- → hr <= 14
-- → каждый день: только 00:00–14:00
Матрица
Сводная таблица: строки = Affiliate / Manager / Trader, столбцы = даты, значения = выбранная метрика. Сортировка по Total убыванию. Total для процентных метрик (CR, Auto, Settle/PayIn) — средневзвешенное, не простая сумма.
TOP-5
Пять лидеров по выбранной метрике в разрезе Affiliate / Manager / Trader. Пересчитывается при смене метрики. Для процентных метрик используется взвешенный расчёт.
Источник данных
ClickHouse hermes. Грейн: date × hour × trader. Период: по умолчанию последние 30 дней, доступно до 90 дней истории. Часовой пояс: IST (UTC+5:30). Данные обновляются каждые 30 минут.
Planned shift
Active in shift
Active outside shift
PayOut in shift
PayOut outside shift
Enabled account (BankAccount work)

Трейдер