Консенсус

Статистика по пулу источников на одной точке в один день. 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 не навязывает.