Перейти к основному содержимому

Методология

На чём построены расчёты, как мы следим за честностью документации и какие из опубликованных цифр измерены, а не просто заявлены.

Откуда берутся положения планет

Положения планет рассчитываются по эфемеридам NASA JPL — полному набору данных на 105 МБ, а не сокращённому, с 735 неподвижными звёздами, на диапазоне 500–2999 гг. н. э. Ничего не интерполируется по таблицам заранее посчитанных значений альманаха, и готовых результатов в кеше нет: каждый ответ рассчитывается для точного момента и координат из запроса.

Этот диапазон важен в двух реальных случаях: для исторических карт и для дальних расчётов даш и транзитов, уходящих на десятилетия вперёд. Библиотека, ограниченная современной эпохой, на краях диапазона незаметно теряет точность.

Тот же расчётный движок работает в Yoga Panchang, нашем бесплатном сайте с панчангой и джйотишем, поэтому цифры, которые его читатели видят каждый день, получены кодом, описанным здесь.

Где традиции расходятся, выбор за вами

Главный источник расхождений между двумя ведическими расчётами — не арифметика, а аянамша. Индийские традиции действительно расходятся в ней, а разница в градус переносит планету через границу накшатры.

Поэтому аянамш у нас 48: семейство Сурья-сиддханты, истинная Читра, истинная Ревати, истинная Пушья, Раман, KP, Юктешвар и другие, — и любую можно скорректировать до градуса, минуты и секунды. Мы не выбираем одну, объявляя её правильной. Если наш результат расходится с другим источником, первым делом проверьте, одинаковая ли у вас аянамша.

Как проверяется документация

Этим может похвастаться далеко не всякая документация API. Наш справочник не пишется вручную: его генерирует из самих сериализаторов скрипт build_api_catalogue, а затем скрипт verify_api_catalogue проверяет его на работающем сервере — отправляет каждый задокументированный пример запроса и убеждается, что ответ 2xx.

В результате получается то, ради чего всё затевалось: на 255 из 299 страниц эндпоинтов показан настоящий записанный ответ, а не придуманный, а остальные помечены как ещё не проверенные, а не выдаются за рабочие. Поле не может тихо выпасть из документации, как это бывает с таблицей, которую ведут вручную. Если сериализатор изменился, а документацию не перегенерировали, проверка падает, вместо того чтобы опубликовать неправду.

Из того же каталога генерируются спецификация OpenAPI, коллекция Postman и llms.txt, поэтому все четыре источника по построению описывают один и тот же API.

Тесты

В бэкенде 1 783 тестовые функции в 87 модулях. Плотнее всего покрыт учёт кредитов, потому что ошибка там стоит кому-то денег: успешный вызов списывает ровно столько, сколько стоит эндпоинт; 4xx и 5xx не списывают ничего; одновременная гонка за последний кредит не уводит баланс в минус; а журнал операций сходится с балансом после случайной последовательности начислений и списаний.

Как получена цифра задержки

Мы публикуем медиану 62 мс и 76% ответов быстрее 100 мс. Эти цифры получены так: 22 октября 2026 г. мы вызвали 254 опубликованных примера, каждый со своим образцом запроса, на локально запущенном API — один раз для прогрева, затем один раз с замером. Мы не замеряли один быстрый эндпоинт с округлением. ИИ-чат не учитывается: его время — это время языковой модели.

Поэтому мы говорим и другое: несколько эндпоинтов работают намного медленнее, и это указано в документации. Полный перебор варшапхалы или раши-даша на год занимают секунды, а не миллисекунды, потому что это перебор, а не поиск по таблице. Медиана это скрывает, а распределение рядом с ней — нет.

Что «медиана» говорит, а что нет
медиана   62 мс      половина эндпоинтов быстрее
<100 мс   76%        основная масса обычных запросов
медленно  секунды     глубокие расчёты — указаны в справочнике

Что пока не измерено

Две вещи, которые мы хотели бы опубликовать, но пока не опубликовали. Говорим прямо, чтобы вам не пришлось догадываться:

  • Независимый бенчмарк положений. Мы считаем по эфемеридам JPL, но ещё не опубликовали сравнение наших результатов с JPL Horizons на разных датах и телах — с отклонениями и кодом, чтобы его повторить. Пока его нет, понимайте заявление о точности как «рассчитано по этому источнику», а не «проверено с такой-то погрешностью».
  • Аптайм за долгий срок. Доступность публикуется на странице статуса только с октября 2026 года, поэтому долгой истории, на которую можно сослаться, пока нет. Что мы обещаем, смотрите на странице прозрачности.

Оба пункта в планах. Ни один не сложен, но оба мы лучше сделаем как следует, чем приблизительно.

Проверьте любое из этого

Песочница делает настоящие вызовы с вашим ключом, а неудачный вызов ничего не стоит, так что вы можете сравнить наши результаты с любым источником, которому уже доверяете. Если найдёте расхождение, которое не объясняется аянамшей, — нам очень важно об этом узнать.

Дальше