Консенсус
Статистика по пулу источников на одной точке в один день. Median, stddev, outlier-detection, фильтры по мазхабу/региону/методу.
Если 335 муфтиятов говорят разное, какое время «правильное»? Правильного нет — есть ваше: выберите пул по мазхабу/региону и смотрите центральную тенденцию.
Эндпоинты
GET /v1/custom-consensus Median и spread по выбранным провайдерам. Параметры: providers=diyanet-turkey,umm-al-qura,muis-singapore или by-madhhab=hanafi.
GET /v1/divergence Базовая разница min–max по всем провайдерам для точки.
GET /v1/divergence/explorer Разбиение по времени (fajr, isha отдельно), топ-3 самых отличающихся источника.
GET /v1/year-stats Статистика divergence за целый год для одной точки. Для планирования.
GET /v1/angle-compare Напрямую сравнить два угла fajr/isha (например, 15° vs 18°).
GET /v1/hijri-compare Сравнение 4 хиджра-вариантов: расхождение в днях.
Outlier detection
Алгоритм: median absolute deviation (MAD). Провайдер считается outlier, если его время отклоняется от медианы пула больше чем на 2.5 × MAD. Типичные outliers:
- Jafari (Иран) — всегда отличается для fajr (16° vs 17–19°) и магриб (+4 мин)
- Umm al-Qura в Рамадан — isha = магриб + 120 мин вместо 90
- Некоторые азиатские муфтияты используют shafaq=ahmar (красный) вместо abyad (белый)
Зачем median, а не average?
Average чувствителен к outliers: если 334 провайдера показали fajr 4:32, а Jafari 4:58, average сместится на 5 секунд — это ОК. Но в пулах из 5–10 провайдеров (например, «только страны Залива») один outlier смещает среднее на 3–5 минут, что уже критично. Median к такому устойчив.
Stddev даёт меру согласованности пула. Если stddev fajr < 2 мин — пул консистентен, доверяй median. Если > 10 мин — признак того, что ты смешал несовместимые школы, пересмотри состав.
Всё это — чистая математика поверх нормализованного каталога провайдеров. Никакой «эталонной» позиции API не навязывает.