| Дата | День | Об. PayIn | PayOut | Трейдери | Рахунки | CR% | Авто% | Сер/тр | Сетл | Stl/PI% | Вип% |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 09-11 (поточний) | Fri | 1,290,320 ▲ 11.7% | 170,559 ▼ 38.7% | 1 | 37 ▼ 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-10 | Thu | 1,155,478 ▼ 57.0% | 278,247 ▲ 55.8% | 1 | 47 | 63.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-09 | Wed | 2,687,961 ▲ 532.0% | 178,600 ▲ 11.9% | 1 | 47 ▲ 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-08 | Tue | 425,297 ▼ 68.5% | 159,551 ▼ 46.1% | 1 | 22 ▼ 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-07 | Mon | 1,352,084 ▲ 90.8% | 296,000 ▲ 1.1% | 1 | 46 ▲ 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-06 | Sun | 708,609 ▲ 196.5% | 292,779 ▼ 4.4% | 1 | 40 ▲ 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-05 | Sat | 238,964 ▼ 22.3% | 306,100 ▲ 16.6% | 1 | 8 | 57.3% ▼ 4.1pp | 88.4% ▼ 4.2pp | 238,964 ▼ 22.3% | 0 | 0.0% | 50.0% ▼ 25.0pp |
| 09-04 | Fri | 307,580 ▼ 78.9% | 262,460 ▲ 629.1% | 1 | 8 ▼ 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-03 | Thu | 1,455,508 ▲ 7.2% | 36,000 ▼ 79.2% | 1 | 24 ▼ 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-02 | Wed | 1,357,645 ▲ 46.9% | 172,800 ▼ 45.1% | 1 | 41 ▲ 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-01 | Tue | 924,482 ▲ 25.7% | 314,749 ▼ 63.8% | 1 | 37 ▲ 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-31 | Mon | 735,688 ▼ 5.3% | 869,081 ▲ 38.0% | 1 | 26 ▲ 13.0% | 58.9% ▼ 12.0pp | 96.4% ▼ 3.2pp | 735,688 ▼ 5.3% | 0 | 0.0% | 81.8% ▲ 12.6pp |
| 08-30 | Sun | 777,091 ▲ 149.7% | 629,700 ▲ 106.5% | 1 | 23 ▲ 91.7% | 70.9% ▲ 0.3pp | 99.6% ▲ 3.5pp | 777,091 ▲ 149.7% | 0 | 0.0% | 69.2% ▼ 30.8pp |
| 08-29 | Sat | 311,166 ▼ 15.3% | 304,999 ▲ 311.6% | 1 | 12 ▲ 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-28 | Fri | 367,487 ▼ 46.7% | 74,100 ▼ 81.8% | 1 | 10 ▼ 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-27 | Thu | 689,806 ▲ 76.1% | 407,038 ▲ 135.9% | 1 | 19 ▲ 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-26 | Wed | 391,804 ▲ 37.0% | 172,515 ▼ 62.0% | 1 | 14 ▼ 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-25 | Tue | 285,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% | 0 | 0.0% | 66.7% ▲ 16.7pp |
| 08-13 | Thu | 66,801 ▼ 75.3% | 122,767 ▼ 31.7% | 2 ▲ 100.0% | 9 | 51.6% ▼ 10.8pp | 81.3% ▼ 18.8pp | 33,400 ▼ 87.6% | 0 | 0.0% | 50.0% |
| 08-12 | Wed | 270,048 | 179,687 | 1 | 9 | 62.4% | 100.0% | 270,048 | 0 | 0.0% | 50.0% |
| Разом | 15,799,703 | 5,681,476 | 0 | 0 | 65.5% | 97.9% | 0 | 9,564,045 | 60.5% | 71.0% | |
| Година | Об. PayIn | PayOut | Трейдери | Рахунки | CR% | Авто% | Сер/тр | Сетл | Stl/PI% | Виплати в очікуванні, # | Виплати в очікуванні, ₹ | Без рахунку, # | Без рахунку, ₹ |
|---|
workingHoursFrom/To. S1: 06:00–14:00 IST, S2: 13:00–22:00, S3: 20:00–07:00. 24/7 = 00:00–24:00.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'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 = :dtSELECT 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
) subSELECT 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
) subSELECT
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 = :dtSELECT
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 ...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
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
SELECT SUM(settlement) / NULLIF(SUM(payin_volume), 0) AS settle_payin_pct -- settlement: из Expense (category='Settlement') -- payin_volume: из Transaction (operation='payin')
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-- 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)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 (если выбран)-- Добавляется ко всем запросам: WHERE hr <= EXTRACT(HOUR FROM now() AT TIME ZONE 'Asia/Kolkata')::int -- Пример: сейчас 14:30 IST -- → hr <= 14 -- → каждый день: только 00:00–14:00