Accuracy & Methods
How the Islamic Time Engine computes prayer times, the calculation methods it supports, high-latitude rules, and Hijri conversion methods.
The engine is a clean-room implementation in Go built on a high-precision solar ephemeris. It targets ±30 seconds vs reference algorithms and < 1 minute vs official published schedules.
Solar precision
Two modes are available via the precision parameter:
| Mode | Algorithm | Use |
|---|---|---|
standard (default) | NOAA low-precision (~±1′), very fast | Day-to-day use |
high | Meeus periodic terms + nutation + aberration + ΔT | Verification, sensitive locations |
Delta-T (ΔT)
The engine applies the Espenak–Meeus ΔT polynomials (TT − UT). Without this, dates far from the present drift by minutes — ΔT keeps results valid across a wide historical and future range.
Calculation methods
Pass method=<name> (case-insensitive, alias-aware). Default is Kemenag.
| Method | Fajr | Isha | Notes |
|---|---|---|---|
MWL | 18° | 17° | Muslim World League |
ISNA / NorthAmerica | 15° | 15° | |
Egypt | 19.5° | 17.5° | Egyptian General Authority |
Makkah / UmmAlQura | 18.5° | +90 min | interval after Maghrib |
Karachi | 18° | 18° | |
Tehran | 17.7° | 14° | Maghrib angle 4.5° |
Jafari | 16° | 14° | Maghrib angle 4° |
Kemenag | 20° | 18° | Indonesia |
Singapore (MUIS) | 20° | 18° | |
JAKIM | 20° | 18° | Malaysia |
Turkey (Diyanet) | 18° | 17° | |
Dubai | 18.2° | 18.2° | |
Kuwait | 18° | 17.5° | |
Qatar | 18° | +90 min | |
Gulf | 19.5° | +90 min | |
France | 12° | 12° | UOIF |
Russia | 16° | 15° | |
MoonsightingCommittee | seasonal | seasonal | shafaq, see below |
MoonsightingCommittee + shafaq
This method (Syed Khalid Shaukat) varies Fajr/Isha by latitude and season
rather than a fixed angle, and supports a shafaq parameter:
shafaq=general(default)shafaq=ahmer(red afterglow)shafaq=abyad(white afterglow)
Asr madhab
madhab=shafi (default; shadow ×1, also Maliki/Hanbali) or madhab=hanafi (shadow ×2).
High-latitude rules
Near the poles the sun may never reach the twilight angle. Pass high_lat:
| Value | Behaviour |
|---|---|
none (default) | No adjustment (auto-falls back near poles) |
middle_of_night | Night portion ½ |
seventh_of_night | Night portion 1/7 |
twilight_angle | Night portion = angle/60 |
nearest_latitude | Compute twilight at |lat| ≤ 48.5° |
Elevation
Pass elevation (meters, −500…9000) to correct sunrise/sunset for observer dip.
Hijri methods
The calendar/convert endpoints accept method:
| Method | Description |
|---|---|
tabular | Arithmetic (Kuwaiti) calendar — fast, may differ ±1 day |
umm_al_qura | Saudi Umm al-Qura |
astronomical | Moon-conjunction based (Meeus) — matches Umm al-Qura closely |
Arithmetic and astronomical results can differ by ±1 day from a local moon
sighting. For dates matching most global apps, use astronomical or umm_al_qura.