# Анализ выгрузок Obmenka — финальный **Дата:** 2026-05-17 **Источники:** `Coin_Change_Liman.xlsx` (91 лист, ~5.6 МБ), `Crypto_Dom.xlsx` (52 листа, ~2.8 МБ) **Период данных:** декабрь 2022 — май 2026 (3.5 года) **Заменяет:** `xlsx-analysis-preliminary.md` --- ## 0. TL;DR **Что в файлах** — операционная история двух подразделений за 2.5–3.5 года в формате Excel-таблиц: - **Liman** (Анталья, физический офис): 13 543 сделки, 3 003 уникальных клиента, оборот ~77.7M USDT, профит ~465k USDT за 24 месяца - **Crypto_Dom** (онлайн глобальный обмен через сеть партнёров): 4 554 сделки, 2 506 клиентов, оборот ~121.8M USDT, профит ~770k USDT за 38 месяцев - **Всего:** ~18 100 сделок, ~5 500 клиентов, ~200M USDT оборот, ~1.24M USDT профит **Чего не хватает в нашей CRM** — 13 новых сущностей/полей нужно добавить. Главные дыры: 1. Партнёры-исполнители выдачи (Liberty/Shilov/Финики — для Crypto_Dom) 2. Город операции (28 городов в данных) 3. Источник привлечения клиента + реферал 4. Категоризированные расходы компании (юристы, налоги, аренда, реклама) 5. Депозиты учредителей и долги 6. Политика мотивации управляющего + автоматический расчёт премии 7. ФОП-операции (UAH↔USDT через украинские ИП) --- ## 1. Архитектура файлов | Файл | Листов | Период | Структура | |---|---:|---|---| | **Coin_Change_Liman** | 91 | май 2024 — май 2026 (24 мес) | 4 справочника + триплет на месяц (Сделки / Касса / Сводная) + ежемесячная «Оплата Счетов Компании» | | **Crypto_Dom** | 52 | дек 2022 — май 2026 (38 мес) | 8 справочников + 1 «комбайн»-лист на месяц (сделки + сводка + кассы в одном) | **06.2026 и 07.2026 в Crypto_Dom — пустые шаблоны** (только #DIV/0!), реально данные до мая 2026. --- ## 2. Что есть на справочных листах ### Liman | Лист | Назначение | Объём | |---|---|---| | Финансовая политика компании | Формула ЗП управляющего: до $20k чистой прибыли → $300 + 7%; $20–40k → 10%; $40–60k → 13% | 11 строк | | **Клиенты** | Реестр **103 клиентов** с источником привлечения и реферером. Топ-источники: Google maps (32 клиента, 41% доля), Наружная реклама (17, 23%), Рекомендация (11, 15%), Бывший клиент (11, 15%), Реклама ТГ (3, 4%), Реклама Инст (2, 3%), Yandex (1) | 103 строки | | Оплата Компании | Черновик с разовыми платежами при открытии: 100k депозит, 12k оплата компании, и т.п. | ~15 строк | | Затраты компания | Разовые затраты при ребрендинге сентября 2024: адвокат, лицензия Money Gram, нотариус, монтаж рекламы (~$8k) | 6 строк | ### Crypto_Dom | Лист | Назначение | Объём | |---|---|---| | **Сбор данных клиентов** | Лог OTC-операций с партнёрами: дата, клиент, контакт, тип (Прием/Выдача/Б/Н/Paypal/Перестановка), валюта, сумма, **город**, **партнёр**, ставка %. 11 валют, 28 городов, 15 партнёров | 86 реальных строк (252 строк всего) | | Клиенты | Новые клиенты после переноса со старого учёта (с № 150): город (Анталия 35, Фетхие 1, Алания 1), TG/телефон, **тип преференции** (покупает 21 / продаёт 16) | 37 строк | | **Офисы** | Сеть партнёрских пунктов: 13 точек (Киев 3, Одесса, Днепр, Харьков, Стамбул, Прага, Варшава, Милан, Берлин, Дубай, Любляна) | 13 строк | | Отчет денежный | Стартовый журнал кассы при открытии (декабрь 2022): USD/TL/EUR с running balance | 18 строк | | **ФОП** | Операции через украинские ФОП (физлица-предприниматели) как платёжный шлюз UAH↔USDT. Парная схема (приём UAH через ФОП → выплата UAH через другой ФОП). 145 выплат | 157 строк | | ФОП июль / ФОП сентябрь | Помесячные срезы того же лога | дубликаты | | Политика компании ЗП | Та же формула что в Liman | 3 строки | --- ## 3. Структура листа «Сделки» **Одинакова в обоих файлах:** | Колонка | Тип | Содержание | |---|---|---| | Дата | datetime | На первой строке дня; ниже — null (тянется в парсере) | | Имя клиента | text | Свободный текст, часто с маркерами канала (`Феел`, `Сокол ФОП Д`, `Татьяна WB`, `Карты`) | | Валюта give | text | Всегда `USDT` | | Сумма give | float | В USDT-эквиваленте | | % | float | Наша наценка (0.01 = 1%) | | Валюта get | text | Всегда `USDT` | | Сумма get | float | В USDT-эквиваленте | | Прибыль | float | give − get в USDT | | Статус | text | «Завершен» 99.5%, «В процессе» <0.1%, «Перенос» 1 раз | | Реферал | float | **сумма комиссии реферу** в USDT, НЕ имя | **В Liman справа** (cols L-R) — статичная справочная таблица курсов дня (USDT↔TL/USD/EUR/UAH). **В Crypto_Dom справа** — отдельный микрожурнал безналичных (БН client / from / to / amount / currency / inv date / Status), почти всегда пустой. **Поля «менеджер», «откуда пришёл», «отделение» ОТСУТСТВУЮТ.** Все сделки представлены как USDT↔USDT — реальная фиатная пара учитывается отдельно в листе «Касса». --- ## 4. Реальные объёмы ### Liman | Метрика | Значение | |---|---:| | **Всего сделок** за 24 месяца | **13 543** | | Сделок за последние 3 месяца (мар-май 2026) | **1 201** (489 / 440 / 272) | | Уникальных клиентов (по имени) | **3 003** | | Топ-5 клиентов по числу сделок | `Feel` (552), `Artem` (279), `Baran` (279), `Oleg` (256), `Alla` (221) | | Диапазон сумм USDT | min 11 / max 700 000 / median 760 / mean 5 737 | | Оборот за период | **~77.7M USDT** | | Профит | **465 497 USDT** (≈19 400 USDT/мес) | | Источников привлечения | 7 (Google maps доминирует — 41%) | | Менеджеров/кассиров | **поле отсутствует** | ### Crypto_Dom | Метрика | Значение | |---|---:| | **Всего сделок** за 38 месяцев | **4 554** | | Сделок за последние 3 месяца (мар-май 2026) | **435** (165 / 170 / 100) | | Уникальных клиентов | **2 506** (в именах закодирован канал, реальных меньше) | | Уникальных партнёров-исполнителей | **15** (Duck Talez, Финики, Gro, Liberty, ОАЭ 101 кл, 001k.Exchange, Shilov, QUIMON, Wite Bit, Rawad, Geron, TrEX, R 21, RUB, Партнер) | | Уникальных городов | **28** (Киев, Дублин, Online, Питер, Стамбул, Одесса, Москва, Харьков, Дубай, Прага, Варшава, Милан, Берлин, Любляна, ...) | | Уникальных физических офисов | **13** | | Уникальных валют (OTC) | **11** (USD, EURO, RUB, UAH, AED, Юань, PLN, USDT, TL, GBP, KZT) | | Топ-5 клиентов | `Карты` (64), `Мисевра` (60), `Rawad` (53), `Островский` (51), `Татьяна инвойс` (42) | | Диапазон сумм USDT | min 6 / max 1 576 801 / median 6 716 / mean 26 739 | | Оборот | **~121.8M USDT** | | Профит | **769 768 USDT** (≈20 250 USDT/мес) | | Типы операций (OTC) | Выдача 45 / Прием 19 / Б/Н 18 / Paypal 3 / Перестановка 1 | ### Совокупно | | Значение | |---|---:| | Сделок | **18 097** | | Уникальных клиентов | **~5 500** | | Оборот | **~199.5M USDT** | | Профит | **~1 235 000 USDT** | | Средний профит/месяц | **~32k USDT** (объединённо) | --- ## 5. Структура «Касса» (Liman) **5 параллельных кассовых журналов** в одном листе: USDT, USD, EUR, TL, UAH. Шапка: ``` КАССА USDT | КАССА USD | КАССА EUR | КАССА TL | КАССА UAH Дата|Приход|Расход|Итого| Дата|Приход|Расход|Итого| ... ``` - Первая строка после шапки = **начальный остаток на 1-е число** (например 01.05.2026: USDT 17 127, USD 36 540, EUR 13 050, TL 568 600, UAH 0) - Каждая строка = одна операция движения с пересчётом running balance - UAH-касса всегда пустая (Liman не работает с гривной) - В Crypto_Dom — общий лист «Отчет денежный» с теми же колонками (Дата/Валюта/Получил/Отдал/Остаток), но один поток без разбивки по валютам → Точно ложится на нашу `CashMovement` + `Wallet`. --- ## 6. Структура «Сводная» (Liman) **Месячный финансовый отчёт-карточка:** | Блок | Что | |---|---| | **ВХОД** | Начальные остатки на 1-е по валютам (USDT, USD, EUR, TL) | | **ПРИБЫЛЬ** | Сумма колонки H из «Сделки» (например, март 2026: 14 065 USDT) | | **ЗАТРАТЫ** | Из правого блока «Затраты на офис» (например, март 2026: 6 751 USDT) | | **ВХОД + ПРИБЫЛЬ − ЗАТРАТЫ** | По 4 валютам | | **В Сумме** | Конвертация в USDT (~114k USDT за март 2026) | | **ОСТАТОК КАССЫ** | Финальные остатки на конец месяца | | **Депозиты учредителей** | Снимок: `Собственник 106 936`, `Adil 50`, `Olya 40 000`, `Inara 200`, `Dima 0`, `ST 500`, `Anastasiya 22 000`, `Feel`, `DK` | | **Затраты на офис** (правый блок) | Уборка, Кофе, Реклама, Сервер, Налоги, ЗП сотрудникам | | **Отчётная таблица компания** | **Премия Hakkı**: 1200 USDT, **Премия Роман**: 1000 USDT | | **Должники** | `Roma zaym 0`, `Adil 5500`, `Adil USD % 2000`, `Adil Остаток долга 1960` | | **COINCHANGE LIMAN DEPOSIT** | Журнал движений по депозитному счёту: «Ремонт Офис Виталик 150 000 TL», «Kristina ZP 600», «Продюсер Ютуб 500», «Оплата обучения Кадыгроб 4466» | | **Курсы валют** | Eвро 1.158, Лира 44.5, UAH 41.0 | --- ## 7. Структура «Оплата Счетов Компании» (Liman) **Помесячный бюджет расходов** с 4 категорий: | Блок | Примеры | |---|---| | **ОПЛАТА КОМПАНИИ** (legal/tax) | Нотариус, Печать фирмы, Налоги, Страховка Роман, Страховка Хаккы+Фахры, Бухгалтер УФУК, Юрист ИНАРА (разово/ежемесячно) | | **ОПЛАТА ОФИСА** (utilities) | Айдат, Интернет, Вода, Электричество, Уборка (1600 TL × 2р/нед), Кофе/чай/канц, Камеры | | **ОПЛАТА МЕДИА/СОФТ** (marketing/IT) | Instagram SMM (700–800 USDT/мес), Сервер, Визитки/флаера/наклейки, Брендирование стаканов | | **СПИСАНИЯ единоразово** | Затраты Алания (открытие точки), Ledger Nano X, Телевизор Лиман | **Итог за апрель 2026:** 7 360 USDT. --- ## 8. Структура «Сбор данных клиентов» (Crypto_Dom) **Это самая богатая метаданными таблица** — OTC-журнал: | Колонка | Пример | |---|---| | Дата | 2026-04-24 | | Имя клиента | `Denis Dublin`, `Eugen Savenkov` | | Контакт | `@Denis_lawyer_UA` / `+90 532 ...` | | **Тип операции** | Прием / Выдача / Б/Н / Paypal / Перестановка | | Валюта | EURO / USD / RUB / UAH / AED / Юань / PLN / USDT / TL / GBP / KZT | | Сумма | 38 590 | | **Город** | Дублин / Питер / Online / Москва / ... | | **Партнёр** | Liberty / Gro / 001k.Exchange / Финики / Shilov / Duck Talez / ... | | Ставка % | 3.2% / 1.0% / 0% | | Примечание | `бартер`, `100 пп`, `доплата` | **Один клиент Denis за месяц получил €235k через 4 разных партнёра** в Дублине — Crypto_Dom выбирает кого использовать в зависимости от ликвидности. --- ## 9. Структура «ФОП» (Crypto_Dom) **Двойная схема через украинские ФОП-счета:** **Левая половина — Прием:** | Дата | ФОП | Валюта | Сумма UAH | Курс | USDT | Статус | |---|---|---|---|---|---|---| | 27.03.25 | ЧИСТОХИНА Я.М 20250327... | UAH | 35 100 | 43.75 | 802.29 | Завершен | | 01.04.25 | Гузеенко | UAH | 698 647 | 44.2 | 15 806.49 | Завершен | **Правая половина — Выплата:** те же поля + прибыль. 145 выплат. Профит за период листа ~6 364 USDT. **Логика:** клиент даёт UAH через ФОП-приём → CryptoDom выдаёт USDT клиенту → второй клиент платит USDT → CryptoDom выдаёт UAH через ФОП-выплату → прибыль на разнице курсов. → Это **отдельный канал**, который должен быть выделен в учёте (метка типа operations). --- ## 10. Маппинг xlsx → CRM-модель ### Прямые соответствия (наша модель уже покрывает) | xlsx | CRM-поле | |---|---| | Дата сделки | `Deal.created_at` | | Имя клиента | `Client.name` → `Deal.client_id` | | Контакт TG/телефон | `Client.tg_username` / `Client.phone` | | Валюта/сумма give | `Deal.give_asset`, `Deal.give_amount` | | Валюта/сумма get | `Deal.get_asset`, `Deal.get_amount` | | % наценка | вычисляется → можно сохранять как `Deal.markup_pct` (нет поля сейчас) | | Прибыль | `Deal.profit_usdt` | | Статус | `Deal.status` (расширить enum: `Завершен`/`В процессе`/`Перенос`) | | Касса валюта/приход/расход | `CashMovement(cash_in/out)` | | Остаток | `Wallet.balance` (через агрегацию) | ### Что нужно ДОБАВИТЬ в CRM (13 дельт) | # | Что | Где в xlsx | Зачем | |---|---|---|---| | 1 | **`Partner`** (контрагент-партнёр для OTC) | CD «Сбор данных», «Офисы» | 15 партнёров уже в данных, без этого Crypto_Dom не имеет смысла импортировать | | 2 | **`PartnerOffice`** (физическая точка партнёра) | CD «Офисы» | 13 точек: адрес + график. ≠ наш `Branch` | | 3 | **`Operation.city`** или FK на `City` | CD «Сбор данных» col Город | 28 городов в данных | | 4 | **`Operation.partner_id`** | CD «Сбор данных» col Партнёр | Кто фактически выдал/принял | | 5 | **`Client.acquisition_source`** (enum) | Liman «Клиенты» col D | google_maps / tg_ad / instagram_ad / outdoor_ad / recommendation / former_client / yandex / direct | | 6 | **`Client.referrer_id`** (self-FK) + `ReferralPayout` | Liman «Клиенты» col Реф. + Сделки col J | Имя реферера + сумма выплат рефералу | | 7 | **`Client.city` / `Client.country`** | CD «Клиенты» col Город | Анталия/Фетхие/Алания | | 8 | **`Client.preferred_operation`** | CD «Клиенты» col Операция | покупает/продаёт | | 9 | **`Expense`** + категории | Liman «Оплата Счетов» | 4 категории: legal/utilities/marketing/one_time | | 10 | **`OwnerDeposit`** | Liman «Сводная» блок Депозиты | Учёт долей учредителей | | 11 | **`Receivable`** (долги) | Liman «Сводная» блок Должники | Adil 5500, Roma zaym и т.п. | | 12 | **`Employee` + `SalaryPolicy` + `MonthlyBonus`** | Liman «Финансовая политика» + «Сводная» Премия Hakkı | Авторасчёт премии управляющего от прибыли | | 13 | **`FopOperation`** (или `Operation.kind='fop_in/out'`) | CD «ФОП» | Отдельный канал UAH↔USDT через украинские ИП | ### Что наша CRM имеет, чего нет в xlsx - ✅ Real-time on-chain парсинг балансов (TronGrid) - ✅ Auto-reconcile сделок ↔ блокчейн-tx - ✅ RBAC + audit log - ✅ Карточка клиента с историей - ✅ Workflow статусов сделки - ✅ Кассовые смены (хотя в xlsx running balance без смен — это упрощение в их учёте) --- ## 11. Особенности импорта (предостережения) 1. **Liman сделки всегда USDT↔USDT** в листе «Сделки». Реальная фиатная пара (TL/USD/EUR) учитывается отдельно в листе «Касса». Это значит при импорте мы либо теряем валютную пару, либо склеиваем `Deal` + парный `CashMovement` по дате+сумме (эвристика). 2. **Дата проставляется только на первой строке дня** — нужно forward-fill в парсере. 3. **Текстовые поля `"43 000"` с пробелом, `"-"` вместо 0** — нужна санитизация. 4. **Имена клиентов в Crypto_Dom часто содержат маркеры канала** (`Мисевра ФОП К`, `Мисевра ФОП Д`, `Мисевра руб`) — это **один клиент через разные каналы**. При импорте нужна нормализация: либо склеивать в одного клиента + помечать канал отдельным полем, либо оставлять как разные записи (риск дубликатов). 5. **«Шаблонные» пустые строки в конце листов** Сделки нужно фильтровать. 6. **Crypto_Dom 06.2026 и 07.2026 — пустые шаблоны** (только #DIV/0!). 7. **Колонка `Реферал` в Сделках = числовая сумма**, не имя. Имя реферера — только в листе «Клиенты» Liman. 8. **«Колонка J Прибыль (вторая)» в Crypto_Dom** иногда дублирует col I, иногда содержит маркер «1.5» или «45» — назначение непонятное. --- ## 12. План работы (предложение) ### Этап A: Расширение схемы (3–5 дней) Минимально необходимое для импорта без потери данных: - Миграция: `Partner`, `PartnerOffice`, `AcquisitionSource` (справочник), `Client` + `acquisition_source`, `referrer_id`, `city`, `country`, `preferred_operation`, `external_number` для миграции - `Deal` + `markup_pct`, `partner_id`, `operation_city`, `operation_kind` (расширить enum) - `Expense` + категории + связь с `CashMovement` - `OwnerDeposit`, `Receivable`, `Employee`, `SalaryPolicy`, `MonthlyBonus`, `MonthlyClosure` ### Этап B: Импорт исторических данных (2–3 дня) - **Liman:** 1 201 сделка за март–май 2026 + 103 клиента из «Клиенты» + балансы кассы на 01.05 + 4–5 категорий расходов - **Crypto_Dom:** 435 сделок за март–май 2026 + 37 клиентов + 13 партнёрских офисов + 15 партнёров + ФОП-операции - Парсеры: один-в-один для каждого типа листа, с логированием конфликтов ### Этап C: UI (1–2 недели) - Карточка клиента: блок с источником, рефералом, городом, преференциями - Страница `/partners` для OTC (партнёры и их офисы) - Страница `/expenses` (расходы по категориям + регулярные) - `/payroll` (политика ЗП + текущая премия + история) - `/monthly-closure` (закрытие месяца с фиксацией KPI) ### Этап D: Импорт за весь период (опционально) Если потребуется аналитика за 2–3 года — повторный прогон импортёров на старые месяцы. Историю кассы лучше игнорировать (running balance не имеет смысла без живых смен), импортировать только агрегаты в `MonthlyClosure`. --- ## 13. Открытые вопросы (требуют ответа) ### 13.1. Бизнес-стратегия 1. **Liman и Crypto_Dom — одна компания или две?** Это влияет на multi-tenancy: одна БД с фильтром по `tenant_id` или две независимых установки CRM? 2. **Главный сценарий использования** — какие модули важнее в первую очередь: - (a) Расходы + ЗП управляющих → закрытие месяца с авторасчётом премии - (b) Партнёры OTC → маршрутизация выдач по городам - (c) Источник лида + рефералы → маркетинговая аналитика - (d) ФОП-операции → UA-канал 3. **За какой период импортировать сделки** — последние 3 месяца / 6 месяцев / весь период (3 года)? 4. **Liquidity Provider vs Branch** — это две разные сущности (`Partner` + `PartnerOffice` отдельно от `Branch`) или `Branch.type='partner_office'`? ### 13.2. Данные 5. **«Татьяна WB», «Карты», «Мисевра ФОП К/Д/руб»** — один клиент через разные каналы или разные? Логика нормализации? 6. **«Колонка J вторая Прибыль»** в Crypto_Dom — что означает (1.5, 45, 0)? 7. **Лист «Оплата Компании» Liman** (3 разорванных колонки с черновыми пометками) — структура непонятна. Удалить или восстановить? ### 13.3. Имплементация 8. **Сохранять running balance кассы из xlsx или пересчитывать?** Я бы пересчитал — может быть точнее. 9. **Импорт «как есть» через скрипт** или через UI с возможностью править? 10. **Дубликаты клиентов** (одно и то же имя в разных вариантах) — автоматическое склеивание или ручная модерация? --- ## 14. Что нужно от тебя 1. Ответ на 10 открытых вопросов выше — даже короткими «да/нет» / порядок приоритетов 2. Третий файл (обещанный) — если структура другая, всё перепроверим 3. Готов ли что мы расширяем схему до импорта (правильный путь) или хочешь сначала импортировать что есть в текущей модели (быстрый путь, но 7+ полей теряются) После ответов — могу делать миграцию схемы и парсеры для импорта.