Как работает система
Логика, данные и расчёты — простыми словами. У каждой метрики есть ⓘ с формулой и источником.
Идея: «данные — это результат, а не командировка»
Единица измерения — домохозяйство и его путь из бедности. Каждая семья — цифровой двойник с датированными снимками; уровни выше (махалля → район → область) — производные свёртки со своей траекторией. Две панели разделены: менеджер вводит данные в поле, руководство ЦБ видит обзор и может провалиться в логи.
На живой карте двойник виден буквально: каждая семья — безликий силуэт по реальному составу (взрослые · пожилые с тростью · дети, глава — по полу), окрашенный по статусу; семьи складываются в махаллю, махалли — в территорию, и цвет «оздоравливается» по мере выхода семей из бедности. Крошки Область ▸ Город ▸ Махалля ▸ Семья ведут вглубь.
Поток данных — один оборот петли
Где вводят проблемы и как они маршрутизируются
Проблемы и инициативы менеджер фиксирует в командировке (/trips/new), выбирая тип находки — тип определяет маршрут:
Каждая смена статуса пишет историю статусов и уведомление — петля замыкается. Структурная проблема семьи (напр. нет электричества) маршрутизируется в ведомство; после решения риск махалли падает.
Как считаются метрики
Все производные величины вычисляются, не вводятся вручную. Нажмите ⓘ, чтобы увидеть формулу и источник.
Бэкенд, который работает
- • Next.js 14 + Prisma (SQLite→Postgres). Server components — чтение; server actions — запись.
- • Две «оси»: district/travel (S1, без изменений) + household/outcome (S2) под ней.
- • Барьер и скоринг — на сервере (не только в UI); каждое предложение ИИ логируется с обоснованием.
- • Расчёты в чистых функциях (
lib/domain-s2), покрыты юнит-тестами; сквозной сценарий — e2e (Playwright). - • Модели: Mahalla, Household (двойник), HouseholdAssessment (снимок), Intervention, ReadinessGate, MiniPractice, CreditScore, Outcome, FollowUpTask, MentorTask.